Skip to content

Commit 643a601

Browse files
committed
add utility for making admins
1 parent 9e2601a commit 643a601

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

lib/algora/accounts/schemas/user.ex

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,10 @@ defmodule Algora.Accounts.User do
301301
|> unique_constraint([:provider, :provider_id])
302302
end
303303

304+
def is_admin_changeset(user, is_admin) do
305+
cast(user, %{is_admin: is_admin}, [:is_admin])
306+
end
307+
304308
def validate_timezone(changeset) do
305309
validate_inclusion(changeset, :timezone, Tzdata.zone_list())
306310
end

lib/algora/admin/admin.ex

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,13 @@ defmodule Algora.Admin do
6565
end
6666
end
6767

68+
def make_admin!(user_handle, is_admin) when is_boolean(is_admin) do
69+
user_handle
70+
|> Algora.Accounts.get_user_by_handle()
71+
|> Algora.Accounts.User.is_admin_changeset(is_admin)
72+
|> Algora.Repo.update()
73+
end
74+
6875
defp update_tickets(url, repo_id) do
6976
Repo.update_all(from(t in Ticket, where: fragment("?->>'repository_url' = ?", t.provider_meta, ^url)),
7077
set: [repository_id: repo_id]

0 commit comments

Comments
 (0)