summaryrefslogtreecommitdiff
path: root/test/plugs/oauth_scopes_plug_test.exs
diff options
context:
space:
mode:
authorMaksim Pechnikov <parallel588@gmail.com>2019-12-17 09:24:08 +0300
committerMaksim Pechnikov <parallel588@gmail.com>2019-12-17 09:24:08 +0300
commita879c396bb3a07929d4821ef2c29610808962c6d (patch)
treec0e64cdda3a4ab59d2fbdd25db65d8d795dba6c6 /test/plugs/oauth_scopes_plug_test.exs
parent22fc271e23a5dd1570ea7429b563f6edc42613c4 (diff)
parent804b961d3c8e0034c7b6057a164126e5d01a084b (diff)
downloadpleroma-a879c396bb3a07929d4821ef2c29610808962c6d.tar.gz
pleroma-a879c396bb3a07929d4821ef2c29610808962c6d.zip
Merge branch 'develop' into feature/tag_feed
Diffstat (limited to 'test/plugs/oauth_scopes_plug_test.exs')
-rw-r--r--test/plugs/oauth_scopes_plug_test.exs38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/plugs/oauth_scopes_plug_test.exs b/test/plugs/oauth_scopes_plug_test.exs
index be6d1340b..89f32f43a 100644
--- a/test/plugs/oauth_scopes_plug_test.exs
+++ b/test/plugs/oauth_scopes_plug_test.exs
@@ -224,4 +224,42 @@ defmodule Pleroma.Plugs.OAuthScopesPlugTest do
assert f.(["admin:read"], ["write", "admin"]) == ["admin:read"]
end
end
+
+ describe "transform_scopes/2" do
+ clear_config([:auth, :enforce_oauth_admin_scope_usage])
+
+ setup do
+ {:ok, %{f: &OAuthScopesPlug.transform_scopes/2}}
+ end
+
+ test "with :admin option, prefixes all requested scopes with `admin:` " <>
+ "and [optionally] keeps only prefixed scopes, " <>
+ "depending on `[:auth, :enforce_oauth_admin_scope_usage]` setting",
+ %{f: f} do
+ Pleroma.Config.put([:auth, :enforce_oauth_admin_scope_usage], false)
+
+ assert f.(["read"], %{admin: true}) == ["admin:read", "read"]
+
+ assert f.(["read", "write"], %{admin: true}) == [
+ "admin:read",
+ "read",
+ "admin:write",
+ "write"
+ ]
+
+ Pleroma.Config.put([:auth, :enforce_oauth_admin_scope_usage], true)
+
+ assert f.(["read:accounts"], %{admin: true}) == ["admin:read:accounts"]
+
+ assert f.(["read", "write:reports"], %{admin: true}) == [
+ "admin:read",
+ "admin:write:reports"
+ ]
+ end
+
+ test "with no supported options, returns unmodified scopes", %{f: f} do
+ assert f.(["read"], %{}) == ["read"]
+ assert f.(["read", "write"], %{}) == ["read", "write"]
+ end
+ end
end