Skip to content

Commit 09e6d50

Browse files
committed
refactor: replace admin_emails config with is_admin user field
1 parent 66d9eb1 commit 09e6d50

File tree

6 files changed

+13
-8
lines changed

6 files changed

+13
-8
lines changed

config/config.exs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ config :algora,
1111
title: "Algora",
1212
description:
1313
"Algora is a developer tool & community simplifying bounties, hiring & open source sustainability.",
14-
admin_emails: ["[email protected]", "[email protected]"],
1514
ecto_repos: [Algora.Repo],
1615
generators: [timestamp_type: :utc_datetime_usec]
1716

lib/algora/accounts/accounts.ex

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,6 @@ defmodule Algora.Accounts do
194194
Repo.all(from u in User, where: u.id in ^user_ids, select: {u.id, u})
195195
end
196196

197-
def admin?(%User{} = user) do
198-
user.email in Algora.config([:admin_emails])
199-
end
200-
201197
def update_settings(%User{} = user, attrs) do
202198
user |> User.settings_changeset(attrs) |> Repo.update()
203199
end

lib/algora/accounts/schemas/user.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ defmodule Algora.Accounts.User do
3939
field :activated, :boolean, default: false
4040
field :max_open_attempts, :integer, default: 3
4141
field :manual_assignment, :boolean, default: false
42+
field :is_admin, :boolean, default: false
4243

4344
field :hourly_rate_min, Money
4445
field :hourly_rate_max, Money

lib/algora_web/controllers/user_auth.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ defmodule AlgoraWeb.UserAuth do
3131
def on_mount(:ensure_admin, _params, session, socket) do
3232
case get_authenticated_user(session, socket) do
3333
{:ok, user} ->
34-
if not Accounts.admin?(user) do
34+
if not user.is_admin do
3535
raise(AlgoraWeb.NotFoundError)
3636
end
3737

@@ -166,7 +166,7 @@ defmodule AlgoraWeb.UserAuth do
166166
def require_authenticated_admin(conn, _opts) do
167167
user = conn.assigns[:current_user]
168168

169-
if user && Algora.Accounts.admin?(user) do
169+
if user && user.is_admin do
170170
assign(conn, :current_admin, user)
171171
else
172172
conn
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
defmodule Algora.Repo.Migrations.AddIsAdminToUsers do
2+
use Ecto.Migration
3+
4+
def change do
5+
alter table(:users) do
6+
add :is_admin, :boolean, default: false, null: false
7+
end
8+
end
9+
end

priv/repo/seeds.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ erich =
5353
upsert!(
5454
:user,
5555
[:provider, :provider_id],
56-
%{provider_id: github_id, last_context: pied_piper.handle}
56+
%{provider_id: github_id, last_context: pied_piper.handle, is_admin: true}
5757
)
5858

5959
upsert!(

0 commit comments

Comments
 (0)