[#1427] Fixes / improvements of admin scopes support. Added tests.

This commit is contained in:
Ivan Tashkinov 2019-12-06 20:33:47 +03:00
commit 40e1817f70
6 changed files with 162 additions and 58 deletions

View file

@ -30,13 +30,13 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
plug(
OAuthScopesPlug,
%{scopes: Pleroma.Config.oauth_admin_scopes("read:accounts")}
%{scopes: ["read:accounts"], admin: true}
when action in [:list_users, :user_show, :right_get, :invites]
)
plug(
OAuthScopesPlug,
%{scopes: Pleroma.Config.oauth_admin_scopes("write:accounts")}
%{scopes: ["write:accounts"], admin: true}
when action in [
:get_invite_token,
:revoke_invite,
@ -58,37 +58,37 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
plug(
OAuthScopesPlug,
%{scopes: Pleroma.Config.oauth_admin_scopes("read:reports")}
%{scopes: ["read:reports"], admin: true}
when action in [:list_reports, :report_show]
)
plug(
OAuthScopesPlug,
%{scopes: Pleroma.Config.oauth_admin_scopes("write:reports")}
%{scopes: ["write:reports"], admin: true}
when action in [:report_update_state, :report_respond]
)
plug(
OAuthScopesPlug,
%{scopes: Pleroma.Config.oauth_admin_scopes("read:statuses")}
%{scopes: ["read:statuses"], admin: true}
when action == :list_user_statuses
)
plug(
OAuthScopesPlug,
%{scopes: Pleroma.Config.oauth_admin_scopes("write:statuses")}
%{scopes: ["write:statuses"], admin: true}
when action in [:status_update, :status_delete]
)
plug(
OAuthScopesPlug,
%{scopes: Pleroma.Config.oauth_admin_scopes("read")}
%{scopes: ["read"], admin: true}
when action in [:config_show, :migrate_to_db, :migrate_from_db, :list_log]
)
plug(
OAuthScopesPlug,
%{scopes: Pleroma.Config.oauth_admin_scopes("write")}
%{scopes: ["write"], admin: true}
when action in [:relay_follow, :relay_unfollow, :config_update]
)