Show privileges to FE
I added an extra key We already had is_admin and is_moderator, now we have an extra privileges key
This commit is contained in:
parent
143ea7b80a
commit
211e561e2a
4 changed files with 212 additions and 6 deletions
|
|
@ -371,6 +371,28 @@ defmodule Pleroma.User do
|
|||
|
||||
defp privileged_for?(_, _, _), do: false
|
||||
|
||||
@spec privileges(User.t()) :: [atom()]
|
||||
def privileges(%User{local: false}) do
|
||||
[]
|
||||
end
|
||||
|
||||
def privileges(%User{is_moderator: false, is_admin: false}) do
|
||||
[]
|
||||
end
|
||||
|
||||
def privileges(%User{local: true, is_moderator: true, is_admin: true}) do
|
||||
(Config.get([:instance, :moderator_privileges]) ++ Config.get([:instance, :admin_privileges]))
|
||||
|> Enum.uniq()
|
||||
end
|
||||
|
||||
def privileges(%User{local: true, is_moderator: true, is_admin: false}) do
|
||||
Config.get([:instance, :moderator_privileges])
|
||||
end
|
||||
|
||||
def privileges(%User{local: true, is_moderator: false, is_admin: true}) do
|
||||
Config.get([:instance, :admin_privileges])
|
||||
end
|
||||
|
||||
@spec invisible?(User.t()) :: boolean()
|
||||
def invisible?(%User{invisible: true}), do: true
|
||||
def invisible?(_), do: false
|
||||
|
|
|
|||
|
|
@ -369,19 +369,22 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
|
|||
defp maybe_put_chat_token(data, _, _, _), do: data
|
||||
|
||||
defp maybe_put_role(data, %User{show_role: true} = user, _) do
|
||||
data
|
||||
|> Kernel.put_in([:pleroma, :is_admin], user.is_admin)
|
||||
|> Kernel.put_in([:pleroma, :is_moderator], user.is_moderator)
|
||||
put_role(data, user)
|
||||
end
|
||||
|
||||
defp maybe_put_role(data, %User{id: user_id} = user, %User{id: user_id}) do
|
||||
data
|
||||
|> Kernel.put_in([:pleroma, :is_admin], user.is_admin)
|
||||
|> Kernel.put_in([:pleroma, :is_moderator], user.is_moderator)
|
||||
put_role(data, user)
|
||||
end
|
||||
|
||||
defp maybe_put_role(data, _, _), do: data
|
||||
|
||||
defp put_role(data, user) do
|
||||
data
|
||||
|> Kernel.put_in([:pleroma, :is_admin], user.is_admin)
|
||||
|> Kernel.put_in([:pleroma, :is_moderator], user.is_moderator)
|
||||
|> Kernel.put_in([:pleroma, :privileges], User.privileges(user))
|
||||
end
|
||||
|
||||
defp maybe_put_notification_settings(data, %User{id: user_id} = user, %User{id: user_id}) do
|
||||
Kernel.put_in(
|
||||
data,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue