diff options
author | kaniini <nenolod@gmail.com> | 2018-12-01 22:11:52 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2018-12-01 22:11:52 +0000 |
commit | 371d96b1da85960dafea9665b8bc32ba553b1555 (patch) | |
tree | 43b665e9cb10ee18ba9f8bbe63803265e6582f7f /lib/pleroma/web/admin_api/admin_api_controller.ex | |
parent | a836d7b93a1e00cac0f0ffa5aed0b71d0c715ecf (diff) | |
parent | f18b86fd5f01653dd6e860b2d67021bdce684d6d (diff) | |
download | pleroma-371d96b1da85960dafea9665b8bc32ba553b1555.tar.gz |
Merge branch 'validate-user-info' into 'develop'
Validate user info
See merge request pleroma/pleroma!465
Diffstat (limited to 'lib/pleroma/web/admin_api/admin_api_controller.ex')
-rw-r--r-- | lib/pleroma/web/admin_api/admin_api_controller.ex | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index bcdb4ba37..2c67d9cda 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -45,21 +45,29 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do user = User.get_by_nickname(nickname) info = - user.info + %{} |> Map.put("is_" <> permission_group, true) - cng = User.info_changeset(user, %{info: info}) + info_cng = User.Info.admin_api_update(user.info, info) + + cng = + Ecto.Changeset.change(user) + |> Ecto.Changeset.put_embed(:info, info_cng) + {:ok, user} = User.update_and_set_cache(cng) conn - |> json(user.info) + |> json(info) end def right_get(conn, %{"nickname" => nickname}) do user = User.get_by_nickname(nickname) conn - |> json(user.info) + |> json(%{ + is_moderator: user.info.is_moderator, + is_admin: user.info.is_admin + }) end def right_add(conn, _) do @@ -84,14 +92,19 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do user = User.get_by_nickname(nickname) info = - user.info + %{} |> Map.put("is_" <> permission_group, false) - cng = User.info_changeset(user, %{info: info}) + info_cng = User.Info.admin_api_update(user.info, info) + + cng = + Ecto.Changeset.change(user) + |> Ecto.Changeset.put_embed(:info, info_cng) + {:ok, user} = User.update_and_set_cache(cng) conn - |> json(user.info) + |> json(info) end end |