Quellcode durchsuchen

lib/pleroma/web/admin_api/admin_api_controller.ex: An admin cannot un-admin themselves

tags/v0.9.9
Haelwenn (lanodan) Monnier vor 5 Jahren
Ursprung
Commit
f9d05902fe
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden GPG-Schlüssel-ID: D5B7A8E43C997DEE
1 geänderte Dateien mit 21 neuen und 9 gelöschten Zeilen
  1. +21
    -9
      lib/pleroma/web/admin_api/admin_api_controller.ex

+ 21
- 9
lib/pleroma/web/admin_api/admin_api_controller.ex Datei anzeigen

@@ -68,19 +68,31 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
|> json(%{error: "No such right"})
end

def right_delete(conn, %{"right" => right, "nickname" => nickname})
def right_delete(
%{assigns: %{user: %User{:nickname => admin_nickname}}} = conn,
%{
"right" => right,
"nickname" => nickname
}
)
when right in ["moderator", "admin"] do
user = User.get_by_nickname(nickname)
if admin_nickname == nickname do
conn
|> post_status(403)
|> json(%{error: "You can't revoke your own admin status."})
else
user = User.get_by_nickname(nickname)

info =
user.info
|> Map.put("is_" <> right, false)
info =
user.info
|> Map.put("is_" <> right, false)

cng = User.info_changeset(user, %{info: info})
{:ok, user} = User.update_and_set_cache(cng)
cng = User.info_changeset(user, %{info: info})
{:ok, user} = User.update_and_set_cache(cng)

conn
|> json(user.info)
conn
|> json(user.info)
end
end

def right_delete(conn, _) do


Laden…
Abbrechen
Speichern