diff options
| author | eugenijm <eugenijm@protonmail.com> | 2020-01-31 21:07:46 +0300 | 
|---|---|---|
| committer | eugenijm <eugenijm@protonmail.com> | 2020-03-16 20:42:37 +0300 | 
| commit | 13cce9c0debbf9a80ed5da26cb34ca563e5e1417 (patch) | |
| tree | 184a0af539dfa151e14a24302475f07cd581d664 /test/web/admin_api | |
| parent | d198e7fa2a0c92be4e99c5a765de85096d318bfe (diff) | |
| download | pleroma-13cce9c0debbf9a80ed5da26cb34ca563e5e1417.tar.gz pleroma-13cce9c0debbf9a80ed5da26cb34ca563e5e1417.zip | |
Admin API: `PATCH /api/pleroma/admin/users/:nickname/credentials`, `GET /api/pleroma/admin/users/:nickname/credentials`.
Diffstat (limited to 'test/web/admin_api')
| -rw-r--r-- | test/web/admin_api/admin_api_controller_test.exs | 57 | 
1 files changed, 50 insertions, 7 deletions
| diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index 0c1214f05..0a317cf88 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -3389,30 +3389,73 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end    end -  describe "PATCH /users/:nickname/change_password" do -    test "changes password", %{conn: conn, admin: admin} do +  describe "GET /users/:nickname/credentials" do +    test "gets the user credentials", %{conn: conn} do +      user = insert(:user) +      conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/credentials") + +      response = assert json_response(conn, 200) +      assert response["email"] == user.email +    end + +    test "returns 403 if requested by a non-admin" do +      user = insert(:user) + +      conn = +        build_conn() +        |> assign(:user, user) +        |> get("/api/pleroma/admin/users/#{user.nickname}/credentials") + +      assert json_response(conn, :forbidden) +    end +  end + +  describe "PATCH /users/:nickname/credentials" do +    test "changes password and email", %{conn: conn, admin: admin} do        user = insert(:user)        assert user.password_reset_pending == false        conn = -        patch(conn, "/api/pleroma/admin/users/#{user.nickname}/change_password", %{ -          "new_password" => "password" +        patch(conn, "/api/pleroma/admin/users/#{user.nickname}/credentials", %{ +          "password" => "new_password", +          "email" => "new_email@example.com", +          "name" => "new_name"          })        assert json_response(conn, 200) == %{"status" => "success"}        ObanHelpers.perform_all() -      assert User.get_by_id(user.id).password_reset_pending == true +      updated_user = User.get_by_id(user.id) -      [log_entry1, log_entry2] = ModerationLog |> Repo.all() |> Enum.sort() +      assert updated_user.email == "new_email@example.com" +      assert updated_user.name == "new_name" +      assert updated_user.password_hash != user.password_hash +      assert updated_user.password_reset_pending == true + +      [log_entry2, log_entry1] = ModerationLog |> Repo.all() |> Enum.sort()        assert ModerationLog.get_log_entry_message(log_entry1) == -               "@#{admin.nickname} changed password for users: @#{user.nickname}" +               "@#{admin.nickname} updated users: @#{user.nickname}"        assert ModerationLog.get_log_entry_message(log_entry2) ==                 "@#{admin.nickname} forced password reset for users: @#{user.nickname}"      end + +    test "returns 403 if requested by a non-admin" do +      user = insert(:user) + +      conn = +        build_conn() +        |> assign(:user, user) +        |> patch("/api/pleroma/admin/users/#{user.nickname}/credentials", %{ +          "password" => "new_password", +          "email" => "new_email@example.com", +          "name" => "new_name" +        }) + +      assert json_response(conn, :forbidden) +    end    end    describe "PATCH /users/:nickname/force_password_reset" do | 
