aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Filippov <colixer@gmail.com>2019-03-12 22:15:28 +0300
committerMaxim Filippov <colixer@gmail.com>2019-03-12 22:15:28 +0300
commit25eb6cf1cbbfe78618f13a7218238a69807a051c (patch)
tree4acbcb48fb4aebb016129d2d72d9f3e7b7ec1747
parentc231ed610a8ebf95d9fb0a4bfa9e557ebf050a92 (diff)
downloadpleroma-25eb6cf1cbbfe78618f13a7218238a69807a051c.tar.gz
Add "roles" to users admin API
-rw-r--r--lib/pleroma/user/info.ex9
-rw-r--r--lib/pleroma/web/mastodon_api/views/admin/account_view.ex4
-rw-r--r--test/web/admin_api/admin_api_controller_test.exs27
3 files changed, 30 insertions, 10 deletions
diff --git a/lib/pleroma/user/info.ex b/lib/pleroma/user/info.ex
index 818b64645..e3fd65a6e 100644
--- a/lib/pleroma/user/info.ex
+++ b/lib/pleroma/user/info.ex
@@ -6,6 +6,8 @@ defmodule Pleroma.User.Info do
use Ecto.Schema
import Ecto.Changeset
+ alias Pleroma.User.Info
+
embedded_schema do
field(:banner, :map, default: %{})
field(:background, :map, default: %{})
@@ -250,4 +252,11 @@ defmodule Pleroma.User.Info do
cast(info, params, [:pinned_activities])
end
+
+ def roles(%Info{is_moderator: is_moderator, is_admin: is_admin}) do
+ %{
+ admin: is_admin,
+ moderator: is_moderator
+ }
+ end
end
diff --git a/lib/pleroma/web/mastodon_api/views/admin/account_view.ex b/lib/pleroma/web/mastodon_api/views/admin/account_view.ex
index 74ca13564..66ad20ec4 100644
--- a/lib/pleroma/web/mastodon_api/views/admin/account_view.ex
+++ b/lib/pleroma/web/mastodon_api/views/admin/account_view.ex
@@ -6,6 +6,7 @@ defmodule Pleroma.Web.MastodonAPI.Admin.AccountView do
use Pleroma.Web, :view
alias Pleroma.Web.MastodonAPI.Admin.AccountView
+ alias Pleroma.User.Info
def render("index.json", %{users: users, count: count, page_size: page_size}) do
%{
@@ -19,7 +20,8 @@ defmodule Pleroma.Web.MastodonAPI.Admin.AccountView do
%{
"id" => user.id,
"nickname" => user.nickname,
- "deactivated" => user.info.deactivated
+ "deactivated" => user.info.deactivated,
+ "roles" => Info.roles(user.info)
}
end
end
diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs
index 1b8b4d4b7..0470a439b 100644
--- a/test/web/admin_api/admin_api_controller_test.exs
+++ b/test/web/admin_api/admin_api_controller_test.exs
@@ -348,12 +348,14 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
%{
"deactivated" => admin.info.deactivated,
"id" => admin.id,
- "nickname" => admin.nickname
+ "nickname" => admin.nickname,
+ "roles" => %{"admin" => true, "moderator" => false}
},
%{
"deactivated" => user.info.deactivated,
"id" => user.id,
- "nickname" => user.nickname
+ "nickname" => user.nickname,
+ "roles" => %{"admin" => false, "moderator" => false}
}
]
}
@@ -391,7 +393,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
%{
"deactivated" => user.info.deactivated,
"id" => user.id,
- "nickname" => user.nickname
+ "nickname" => user.nickname,
+ "roles" => %{"admin" => false, "moderator" => false}
}
]
}
@@ -414,7 +417,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
%{
"deactivated" => user.info.deactivated,
"id" => user.id,
- "nickname" => user.nickname
+ "nickname" => user.nickname,
+ "roles" => %{"admin" => false, "moderator" => false}
}
]
}
@@ -431,7 +435,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
%{
"deactivated" => user2.info.deactivated,
"id" => user2.id,
- "nickname" => user2.nickname
+ "nickname" => user2.nickname,
+ "roles" => %{"admin" => false, "moderator" => false}
}
]
}
@@ -455,7 +460,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
%{
"deactivated" => user.info.deactivated,
"id" => user.id,
- "nickname" => user.nickname
+ "nickname" => user.nickname,
+ "roles" => %{"admin" => false, "moderator" => false}
}
]
}
@@ -479,12 +485,14 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
%{
"deactivated" => admin.info.deactivated,
"id" => admin.id,
- "nickname" => admin.nickname
+ "nickname" => admin.nickname,
+ "roles" => %{"admin" => true, "moderator" => false}
},
%{
"deactivated" => user.info.deactivated,
"id" => user.id,
- "nickname" => user.nickname
+ "nickname" => user.nickname,
+ "roles" => %{"admin" => false, "moderator" => false}
}
]
}
@@ -504,7 +512,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
%{
"deactivated" => !user.info.deactivated,
"id" => user.id,
- "nickname" => user.nickname
+ "nickname" => user.nickname,
+ "roles" => %{"admin" => false, "moderator" => false}
}
end
end