diff options
author | William Pitcock <nenolod@dereferenced.org> | 2018-05-28 18:19:20 +0000 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2018-06-11 22:15:53 +0000 |
commit | 993312cdb3ec219f1cf29e14be97f2b98bc90a9c (patch) | |
tree | 53d869f4f18113d6221375fdb0c0614b295611f4 | |
parent | a0c5b42e293959c7bc448f171fc38c2c26f91d18 (diff) | |
download | pleroma-993312cdb3ec219f1cf29e14be97f2b98bc90a9c.tar.gz |
twitterapi: add profile setting for locked/unlocked accounts
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api_controller.ex | 14 | ||||
-rw-r--r-- | test/web/twitter_api/twitter_api_controller_test.exs | 32 |
2 files changed, 46 insertions, 0 deletions
diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex index d53dd0c44..b078c447e 100644 --- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -357,6 +357,20 @@ defmodule Pleroma.Web.TwitterAPI.Controller do params end + user = + if locked = params["locked"] do + with locked <- locked == "true", + new_info <- Map.put(user.info, "locked", locked), + change <- User.info_changeset(user, %{info: new_info}), + {:ok, user} <- User.update_and_set_cache(change) do + user + else + _e -> user + end + else + user + end + with changeset <- User.update_changeset(user, params), {:ok, user} <- User.update_and_set_cache(changeset) do CommonAPI.update(user) diff --git a/test/web/twitter_api/twitter_api_controller_test.exs b/test/web/twitter_api/twitter_api_controller_test.exs index 68f4331df..6a29d583c 100644 --- a/test/web/twitter_api/twitter_api_controller_test.exs +++ b/test/web/twitter_api/twitter_api_controller_test.exs @@ -762,6 +762,38 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do assert json_response(conn, 200) == UserView.render("user.json", %{user: user, for: user}) end + + test "it locks an account", %{conn: conn} do + user = insert(:user) + + conn = + conn + |> assign(:user, user) + |> post("/api/account/update_profile.json", %{ + "locked" => "true" + }) + + user = Repo.get!(User, user.id) + assert user.info["locked"] == true + + assert json_response(conn, 200) == UserView.render("user.json", %{user: user, for: user}) + end + + test "it unlocks an account", %{conn: conn} do + user = insert(:user) + + conn = + conn + |> assign(:user, user) + |> post("/api/account/update_profile.json", %{ + "locked" => "false" + }) + + user = Repo.get!(User, user.id) + assert user.info["locked"] == false + + assert json_response(conn, 200) == UserView.render("user.json", %{user: user, for: user}) + end end defp valid_user(_context) do |