aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/admin_api
diff options
context:
space:
mode:
authorkaniini <ariadne@dereferenced.org>2019-09-26 03:00:38 +0000
committerkaniini <ariadne@dereferenced.org>2019-09-26 03:00:38 +0000
commit48a82c46096a560fe9331a63f19ace6faaf98c3d (patch)
tree02c6216dbcb3814115aa64de0ef5a171121b527e /lib/pleroma/web/admin_api
parent59ae9255fbf7abd6efe46799b19c094724f5d51b (diff)
parent035f22f7849815c5f77a734c56f409c0f08ac853 (diff)
downloadpleroma-48a82c46096a560fe9331a63f19ace6faaf98c3d.tar.gz
Merge branch 'refactor/user' into 'develop'
Simplify updating user's `info` See merge request pleroma/pleroma!1712
Diffstat (limited to 'lib/pleroma/web/admin_api')
-rw-r--r--lib/pleroma/web/admin_api/admin_api_controller.ex59
1 files changed, 22 insertions, 37 deletions
diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex
index 6761c32b9..9f85f0292 100644
--- a/lib/pleroma/web/admin_api/admin_api_controller.ex
+++ b/lib/pleroma/web/admin_api/admin_api_controller.ex
@@ -254,18 +254,12 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
"nickname" => nickname
})
when permission_group in ["moderator", "admin"] do
- user = User.get_cached_by_nickname(nickname)
-
- info =
- %{}
- |> Map.put("is_" <> permission_group, true)
-
- info_cng = User.Info.admin_api_update(user.info, info)
+ info = Map.put(%{}, "is_" <> permission_group, true)
- cng =
- user
- |> Ecto.Changeset.change()
- |> Ecto.Changeset.put_embed(:info, info_cng)
+ {:ok, user} =
+ nickname
+ |> User.get_cached_by_nickname()
+ |> User.update_info(&User.Info.admin_api_update(&1, info))
ModerationLog.insert_log(%{
action: "grant",
@@ -274,8 +268,6 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
permission: permission_group
})
- {:ok, _user} = User.update_and_set_cache(cng)
-
json(conn, info)
end
@@ -293,40 +285,33 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
})
end
+ def right_delete(%{assigns: %{user: %{nickname: nickname}}} = conn, %{"nickname" => nickname}) do
+ render_error(conn, :forbidden, "You can't revoke your own admin status.")
+ end
+
def right_delete(
- %{assigns: %{user: %User{:nickname => admin_nickname} = admin}} = conn,
+ %{assigns: %{user: admin}} = conn,
%{
"permission_group" => permission_group,
"nickname" => nickname
}
)
when permission_group in ["moderator", "admin"] do
- if admin_nickname == nickname do
- render_error(conn, :forbidden, "You can't revoke your own admin status.")
- else
- user = User.get_cached_by_nickname(nickname)
-
- info =
- %{}
- |> Map.put("is_" <> permission_group, false)
-
- info_cng = User.Info.admin_api_update(user.info, info)
+ info = Map.put(%{}, "is_" <> permission_group, false)
- cng =
- Ecto.Changeset.change(user)
- |> Ecto.Changeset.put_embed(:info, info_cng)
+ {:ok, user} =
+ nickname
+ |> User.get_cached_by_nickname()
+ |> User.update_info(&User.Info.admin_api_update(&1, info))
- {:ok, _user} = User.update_and_set_cache(cng)
-
- ModerationLog.insert_log(%{
- action: "revoke",
- actor: admin,
- subject: user,
- permission: permission_group
- })
+ ModerationLog.insert_log(%{
+ action: "revoke",
+ actor: admin,
+ subject: user,
+ permission: permission_group
+ })
- json(conn, info)
- end
+ json(conn, info)
end
def right_delete(conn, _) do