Add "roles" to users admin API
This commit is contained in:
parent
c231ed610a
commit
25eb6cf1cb
3 changed files with 30 additions and 10 deletions
|
@ -6,6 +6,8 @@ defmodule Pleroma.User.Info do
|
||||||
use Ecto.Schema
|
use Ecto.Schema
|
||||||
import Ecto.Changeset
|
import Ecto.Changeset
|
||||||
|
|
||||||
|
alias Pleroma.User.Info
|
||||||
|
|
||||||
embedded_schema do
|
embedded_schema do
|
||||||
field(:banner, :map, default: %{})
|
field(:banner, :map, default: %{})
|
||||||
field(:background, :map, default: %{})
|
field(:background, :map, default: %{})
|
||||||
|
@ -250,4 +252,11 @@ def remove_pinnned_activity(info, %Pleroma.Activity{id: id}) do
|
||||||
|
|
||||||
cast(info, params, [:pinned_activities])
|
cast(info, params, [:pinned_activities])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def roles(%Info{is_moderator: is_moderator, is_admin: is_admin}) do
|
||||||
|
%{
|
||||||
|
admin: is_admin,
|
||||||
|
moderator: is_moderator
|
||||||
|
}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,6 +6,7 @@ defmodule Pleroma.Web.MastodonAPI.Admin.AccountView do
|
||||||
use Pleroma.Web, :view
|
use Pleroma.Web, :view
|
||||||
|
|
||||||
alias Pleroma.Web.MastodonAPI.Admin.AccountView
|
alias Pleroma.Web.MastodonAPI.Admin.AccountView
|
||||||
|
alias Pleroma.User.Info
|
||||||
|
|
||||||
def render("index.json", %{users: users, count: count, page_size: page_size}) do
|
def render("index.json", %{users: users, count: count, page_size: page_size}) do
|
||||||
%{
|
%{
|
||||||
|
@ -19,7 +20,8 @@ def render("show.json", %{user: user}) do
|
||||||
%{
|
%{
|
||||||
"id" => user.id,
|
"id" => user.id,
|
||||||
"nickname" => user.nickname,
|
"nickname" => user.nickname,
|
||||||
"deactivated" => user.info.deactivated
|
"deactivated" => user.info.deactivated,
|
||||||
|
"roles" => Info.roles(user.info)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -348,12 +348,14 @@ test "renders users array for the first page" do
|
||||||
%{
|
%{
|
||||||
"deactivated" => admin.info.deactivated,
|
"deactivated" => admin.info.deactivated,
|
||||||
"id" => admin.id,
|
"id" => admin.id,
|
||||||
"nickname" => admin.nickname
|
"nickname" => admin.nickname,
|
||||||
|
"roles" => %{"admin" => true, "moderator" => false}
|
||||||
},
|
},
|
||||||
%{
|
%{
|
||||||
"deactivated" => user.info.deactivated,
|
"deactivated" => user.info.deactivated,
|
||||||
"id" => user.id,
|
"id" => user.id,
|
||||||
"nickname" => user.nickname
|
"nickname" => user.nickname,
|
||||||
|
"roles" => %{"admin" => false, "moderator" => false}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -391,7 +393,8 @@ test "regular search" do
|
||||||
%{
|
%{
|
||||||
"deactivated" => user.info.deactivated,
|
"deactivated" => user.info.deactivated,
|
||||||
"id" => user.id,
|
"id" => user.id,
|
||||||
"nickname" => user.nickname
|
"nickname" => user.nickname,
|
||||||
|
"roles" => %{"admin" => false, "moderator" => false}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -414,7 +417,8 @@ test "regular search with page size" do
|
||||||
%{
|
%{
|
||||||
"deactivated" => user.info.deactivated,
|
"deactivated" => user.info.deactivated,
|
||||||
"id" => user.id,
|
"id" => user.id,
|
||||||
"nickname" => user.nickname
|
"nickname" => user.nickname,
|
||||||
|
"roles" => %{"admin" => false, "moderator" => false}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -431,7 +435,8 @@ test "regular search with page size" do
|
||||||
%{
|
%{
|
||||||
"deactivated" => user2.info.deactivated,
|
"deactivated" => user2.info.deactivated,
|
||||||
"id" => user2.id,
|
"id" => user2.id,
|
||||||
"nickname" => user2.nickname
|
"nickname" => user2.nickname,
|
||||||
|
"roles" => %{"admin" => false, "moderator" => false}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -455,7 +460,8 @@ test "only local users" do
|
||||||
%{
|
%{
|
||||||
"deactivated" => user.info.deactivated,
|
"deactivated" => user.info.deactivated,
|
||||||
"id" => user.id,
|
"id" => user.id,
|
||||||
"nickname" => user.nickname
|
"nickname" => user.nickname,
|
||||||
|
"roles" => %{"admin" => false, "moderator" => false}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -479,12 +485,14 @@ test "only local users with no query" do
|
||||||
%{
|
%{
|
||||||
"deactivated" => admin.info.deactivated,
|
"deactivated" => admin.info.deactivated,
|
||||||
"id" => admin.id,
|
"id" => admin.id,
|
||||||
"nickname" => admin.nickname
|
"nickname" => admin.nickname,
|
||||||
|
"roles" => %{"admin" => true, "moderator" => false}
|
||||||
},
|
},
|
||||||
%{
|
%{
|
||||||
"deactivated" => user.info.deactivated,
|
"deactivated" => user.info.deactivated,
|
||||||
"id" => user.id,
|
"id" => user.id,
|
||||||
"nickname" => user.nickname
|
"nickname" => user.nickname,
|
||||||
|
"roles" => %{"admin" => false, "moderator" => false}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -504,7 +512,8 @@ test "PATCH /api/pleroma/admin/users/:nickname/toggle_activation" do
|
||||||
%{
|
%{
|
||||||
"deactivated" => !user.info.deactivated,
|
"deactivated" => !user.info.deactivated,
|
||||||
"id" => user.id,
|
"id" => user.id,
|
||||||
"nickname" => user.nickname
|
"nickname" => user.nickname,
|
||||||
|
"roles" => %{"admin" => false, "moderator" => false}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue