diff options
| author | lain <lain@soykaf.club> | 2019-12-11 08:50:43 +0000 | 
|---|---|---|
| committer | lain <lain@soykaf.club> | 2019-12-11 08:50:43 +0000 | 
| commit | 1f498ba2bb77a6dd103631d9de1e5c1bbfaaea10 (patch) | |
| tree | 0418edf097a0917c0ae4e0c37c7ca4f74a05716a /test | |
| parent | 67a478d7090cdb9b7ca6338839fba8160f15f60a (diff) | |
| parent | 3920244be5be000e33c470beb897a031ecef3ac8 (diff) | |
| download | pleroma-1f498ba2bb77a6dd103631d9de1e5c1bbfaaea10.tar.gz pleroma-1f498ba2bb77a6dd103631d9de1e5c1bbfaaea10.zip | |
Merge branch '1427-oauth-admin-scopes' into 'develop'
[#1427] Fixed `:admin` option handling in OAuthScopesPlug, added tests
Closes #1427
See merge request pleroma/pleroma!2053
Diffstat (limited to 'test')
| -rw-r--r-- | test/plugs/oauth_scopes_plug_test.exs | 38 | 
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 | 
