diff options
author | lain <lain@soykaf.club> | 2020-01-20 12:07:12 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-01-20 12:07:12 +0000 |
commit | c814f22030c1341ec337bdd1c446536597e683e2 (patch) | |
tree | 2c8032dbcbccb2532ed90d6721809b9c4074f4a1 | |
parent | e8759cb5baba85709607b167d27bd54cf4822366 (diff) | |
parent | 385356aad0dd7eac0695bb1597ba1e52b5f17b40 (diff) | |
download | pleroma-c814f22030c1341ec337bdd1c446536597e683e2.tar.gz |
Merge branch 'fix-admin-api-scope' into 'develop'
fix oauth scopes for AdminApi#reports_update
See merge request pleroma/pleroma!2087
-rw-r--r-- | lib/pleroma/web/admin_api/admin_api_controller.ex | 2 | ||||
-rw-r--r-- | test/web/admin_api/admin_api_controller_test.exs | 24 |
2 files changed, 25 insertions, 1 deletions
diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index 529169c1b..c9d7ab867 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -75,7 +75,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do plug( OAuthScopesPlug, %{scopes: ["write:reports"], admin: true} - when action in [:report_update_state, :report_respond] + when action in [:reports_update] ) plug( diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index a3fbb6041..12077135c 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -1363,6 +1363,30 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do } end + test "requires write:reports scope", %{conn: conn, id: id, admin: admin} do + read_token = insert(:oauth_token, user: admin, scopes: ["read"]) + write_token = insert(:oauth_token, user: admin, scopes: ["write:reports"]) + + response = + conn + |> assign(:token, read_token) + |> patch("/api/pleroma/admin/reports", %{ + "reports" => [%{"state" => "resolved", "id" => id}] + }) + |> json_response(403) + + assert response == %{ + "error" => "Insufficient permissions: admin:write:reports | write:reports." + } + + conn + |> assign(:token, write_token) + |> patch("/api/pleroma/admin/reports", %{ + "reports" => [%{"state" => "resolved", "id" => id}] + }) + |> json_response(:no_content) + end + test "mark report as resolved", %{conn: conn, id: id, admin: admin} do conn |> patch("/api/pleroma/admin/reports", %{ |