aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/admin_api
diff options
context:
space:
mode:
authorMaxim Filippov <colixer@gmail.com>2019-10-07 15:41:41 +0300
committerMaxim Filippov <colixer@gmail.com>2019-10-07 15:41:41 +0300
commit35068baf65f1be9ac4e5ae8d08222244ae823fcc (patch)
tree0ed0b88fd100fb3df83400c147ab9a6a88d53c73 /lib/pleroma/web/admin_api
parent7aceaa517be7b109a9acc15fb4914535b536b66c (diff)
parent0a99f1e8c5551dcf170722e5087a0401b2d907af (diff)
downloadpleroma-35068baf65f1be9ac4e5ae8d08222244ae823fcc.tar.gz
Merge branch 'develop' into feature/reports-groups-and-multiple-state-update
Diffstat (limited to 'lib/pleroma/web/admin_api')
-rw-r--r--lib/pleroma/web/admin_api/admin_api_controller.ex62
1 files changed, 62 insertions, 0 deletions
diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex
index 463dd327a..a556ab050 100644
--- a/lib/pleroma/web/admin_api/admin_api_controller.ex
+++ b/lib/pleroma/web/admin_api/admin_api_controller.ex
@@ -6,6 +6,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
use Pleroma.Web, :controller
alias Pleroma.Activity
alias Pleroma.ModerationLog
+ alias Pleroma.Plugs.OAuthScopesPlug
alias Pleroma.User
alias Pleroma.UserInviteToken
alias Pleroma.Web.ActivityPub.ActivityPub
@@ -27,6 +28,67 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
require Logger
+ plug(
+ OAuthScopesPlug,
+ %{scopes: ["read:accounts"]}
+ when action in [:list_users, :user_show, :right_get, :invites]
+ )
+
+ plug(
+ OAuthScopesPlug,
+ %{scopes: ["write:accounts"]}
+ when action in [
+ :get_invite_token,
+ :revoke_invite,
+ :email_invite,
+ :get_password_reset,
+ :user_follow,
+ :user_unfollow,
+ :user_delete,
+ :users_create,
+ :user_toggle_activation,
+ :tag_users,
+ :untag_users,
+ :right_add,
+ :right_delete,
+ :set_activation_status
+ ]
+ )
+
+ plug(
+ OAuthScopesPlug,
+ %{scopes: ["read:reports"]} when action in [:list_reports, :report_show]
+ )
+
+ plug(
+ OAuthScopesPlug,
+ %{scopes: ["write:reports"]}
+ when action in [:report_update_state, :report_respond]
+ )
+
+ plug(
+ OAuthScopesPlug,
+ %{scopes: ["read:statuses"]} when action == :list_user_statuses
+ )
+
+ plug(
+ OAuthScopesPlug,
+ %{scopes: ["write:statuses"]}
+ when action in [:status_update, :status_delete]
+ )
+
+ plug(
+ OAuthScopesPlug,
+ %{scopes: ["read"]}
+ when action in [:config_show, :migrate_to_db, :migrate_from_db, :list_log]
+ )
+
+ plug(
+ OAuthScopesPlug,
+ %{scopes: ["write"]}
+ when action in [:relay_follow, :relay_unfollow, :config_update]
+ )
+
@users_page_size 50
action_fallback(:errors)