aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/admin_api/controllers
diff options
context:
space:
mode:
authorAlexander Strizhakov <alex.strizhakov@gmail.com>2020-05-27 09:42:28 +0300
committerAlexander Strizhakov <alex.strizhakov@gmail.com>2020-05-27 10:14:22 +0300
commit3249141588c8f73f1958f782041798fbde05e69f (patch)
tree7cd661650f8b99db16da23a5de5d6d4cf1395c9b /lib/pleroma/web/admin_api/controllers
parentcf139b06a3761983f877ac0dd5839689485cae94 (diff)
downloadpleroma-3249141588c8f73f1958f782041798fbde05e69f.tar.gz
validate actor type
Diffstat (limited to 'lib/pleroma/web/admin_api/controllers')
-rw-r--r--lib/pleroma/web/admin_api/controllers/admin_api_controller.ex13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex
index 6b1d64a2e..6aedccec6 100644
--- a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex
+++ b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex
@@ -693,7 +693,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
%{assigns: %{user: admin}} = conn,
%{"nickname" => nickname} = params
) do
- with {_, user} <- {:user, User.get_cached_by_nickname(nickname)},
+ with {_, %User{} = user} <- {:user, User.get_cached_by_nickname(nickname)},
{:ok, _user} <-
User.update_as_admin(user, params) do
ModerationLog.insert_log(%{
@@ -715,11 +715,16 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
json(conn, %{status: "success"})
else
{:error, changeset} ->
- {_, {error, _}} = Enum.at(changeset.errors, 0)
- json(conn, %{error: "New password #{error}."})
+ errors =
+ Enum.reduce(changeset.errors, %{}, fn
+ {key, {error, _}}, acc ->
+ Map.put(acc, key, error)
+ end)
+
+ json(conn, %{errors: errors})
_ ->
- json(conn, %{error: "Unable to change password."})
+ json(conn, %{error: "Unable to update user."})
end
end