mirror of
https://code.eliotberriot.com/funkwhale/funkwhale.git
synced 2025-10-05 21:21:57 +02:00
Resolve "Implement a Oauth provider in Funkwhale"
This commit is contained in:
parent
1dc7304bd3
commit
4c13d47387
54 changed files with 2811 additions and 249 deletions
156
api/tests/users/oauth/test_scopes.py
Normal file
156
api/tests/users/oauth/test_scopes.py
Normal file
|
@ -0,0 +1,156 @@
|
|||
import pytest
|
||||
|
||||
from funkwhale_api.users.oauth import scopes
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"user_perms, expected",
|
||||
[
|
||||
(
|
||||
# All permissions, so all scopes
|
||||
{"moderation": True, "library": True, "settings": True},
|
||||
{
|
||||
"read:profile",
|
||||
"write:profile",
|
||||
"read:libraries",
|
||||
"write:libraries",
|
||||
"read:playlists",
|
||||
"write:playlists",
|
||||
"read:favorites",
|
||||
"write:favorites",
|
||||
"read:notifications",
|
||||
"write:notifications",
|
||||
"read:radios",
|
||||
"write:radios",
|
||||
"read:follows",
|
||||
"write:follows",
|
||||
"read:edits",
|
||||
"write:edits",
|
||||
"read:filters",
|
||||
"write:filters",
|
||||
"read:listenings",
|
||||
"write:listenings",
|
||||
"read:security",
|
||||
"write:security",
|
||||
"read:instance:policies",
|
||||
"write:instance:policies",
|
||||
"read:instance:accounts",
|
||||
"write:instance:accounts",
|
||||
"read:instance:domains",
|
||||
"write:instance:domains",
|
||||
"read:instance:settings",
|
||||
"write:instance:settings",
|
||||
"read:instance:users",
|
||||
"write:instance:users",
|
||||
"read:instance:invitations",
|
||||
"write:instance:invitations",
|
||||
"read:instance:edits",
|
||||
"write:instance:edits",
|
||||
"read:instance:libraries",
|
||||
"write:instance:libraries",
|
||||
},
|
||||
),
|
||||
(
|
||||
{"moderation": True, "library": False, "settings": True},
|
||||
{
|
||||
"read:profile",
|
||||
"write:profile",
|
||||
"read:libraries",
|
||||
"write:libraries",
|
||||
"read:playlists",
|
||||
"write:playlists",
|
||||
"read:favorites",
|
||||
"write:favorites",
|
||||
"read:notifications",
|
||||
"write:notifications",
|
||||
"read:radios",
|
||||
"write:radios",
|
||||
"read:follows",
|
||||
"write:follows",
|
||||
"read:edits",
|
||||
"write:edits",
|
||||
"read:filters",
|
||||
"write:filters",
|
||||
"read:listenings",
|
||||
"write:listenings",
|
||||
"read:security",
|
||||
"write:security",
|
||||
"read:instance:policies",
|
||||
"write:instance:policies",
|
||||
"read:instance:accounts",
|
||||
"write:instance:accounts",
|
||||
"read:instance:domains",
|
||||
"write:instance:domains",
|
||||
"read:instance:settings",
|
||||
"write:instance:settings",
|
||||
"read:instance:users",
|
||||
"write:instance:users",
|
||||
"read:instance:invitations",
|
||||
"write:instance:invitations",
|
||||
},
|
||||
),
|
||||
(
|
||||
{"moderation": True, "library": False, "settings": False},
|
||||
{
|
||||
"read:profile",
|
||||
"write:profile",
|
||||
"read:libraries",
|
||||
"write:libraries",
|
||||
"read:playlists",
|
||||
"write:playlists",
|
||||
"read:favorites",
|
||||
"write:favorites",
|
||||
"read:notifications",
|
||||
"write:notifications",
|
||||
"read:radios",
|
||||
"write:radios",
|
||||
"read:follows",
|
||||
"write:follows",
|
||||
"read:edits",
|
||||
"write:edits",
|
||||
"read:filters",
|
||||
"write:filters",
|
||||
"read:listenings",
|
||||
"write:listenings",
|
||||
"read:security",
|
||||
"write:security",
|
||||
"read:instance:policies",
|
||||
"write:instance:policies",
|
||||
"read:instance:accounts",
|
||||
"write:instance:accounts",
|
||||
"read:instance:domains",
|
||||
"write:instance:domains",
|
||||
},
|
||||
),
|
||||
(
|
||||
{"moderation": False, "library": False, "settings": False},
|
||||
{
|
||||
"read:profile",
|
||||
"write:profile",
|
||||
"read:libraries",
|
||||
"write:libraries",
|
||||
"read:playlists",
|
||||
"write:playlists",
|
||||
"read:favorites",
|
||||
"write:favorites",
|
||||
"read:notifications",
|
||||
"write:notifications",
|
||||
"read:radios",
|
||||
"write:radios",
|
||||
"read:follows",
|
||||
"write:follows",
|
||||
"read:edits",
|
||||
"write:edits",
|
||||
"read:filters",
|
||||
"write:filters",
|
||||
"read:listenings",
|
||||
"write:listenings",
|
||||
"read:security",
|
||||
"write:security",
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_get_scopes_from_user_permissions(user_perms, expected):
|
||||
|
||||
assert scopes.get_from_permissions(**user_perms) == expected
|
Loading…
Add table
Add a link
Reference in a new issue