Removed obsolete permissions, added a new moderation permission

This commit is contained in:
Eliot Berriot 2018-12-06 11:18:09 +01:00
commit 34ec869ca1
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
9 changed files with 60 additions and 70 deletions

View file

@ -46,23 +46,22 @@ def test_get_permissions_regular(factories):
def test_get_permissions_default(factories, preferences):
preferences["users__default_permissions"] = ["upload", "federation"]
preferences["users__default_permissions"] = ["library", "moderation"]
user = factories["users.User"]()
perms = user.get_permissions()
assert perms["upload"] is True
assert perms["federation"] is True
assert perms["library"] is False
assert perms["moderation"] is True
assert perms["library"] is True
assert perms["settings"] is False
@pytest.mark.parametrize(
"args,perms,expected",
[
({"is_superuser": True}, ["federation", "library"], True),
({"is_superuser": False}, ["federation"], False),
({"is_superuser": True}, ["moderation", "library"], True),
({"is_superuser": False}, ["moderation"], False),
({"permission_library": True}, ["library"], True),
({"permission_library": True}, ["library", "federation"], False),
({"permission_library": True}, ["library", "moderation"], False),
],
)
def test_has_permissions_and(args, perms, expected, factories):
@ -73,10 +72,10 @@ def test_has_permissions_and(args, perms, expected, factories):
@pytest.mark.parametrize(
"args,perms,expected",
[
({"is_superuser": True}, ["federation", "library"], True),
({"is_superuser": False}, ["federation"], False),
({"permission_library": True}, ["library", "federation"], True),
({"permission_library": True}, ["federation"], False),
({"is_superuser": True}, ["moderation", "library"], True),
({"is_superuser": False}, ["moderation"], False),
({"permission_library": True}, ["library", "moderation"], True),
({"permission_library": True}, ["moderation"], False),
],
)
def test_has_permissions_or(args, perms, expected, factories):

View file

@ -21,21 +21,21 @@ def test_has_user_permission_anonymous(anonymous_user, api_request):
@pytest.mark.parametrize("value", [True, False])
def test_has_user_permission_logged_in_single(value, factories, api_request):
user = factories["users.User"](permission_federation=value)
user = factories["users.User"](permission_moderation=value)
class View(APIView):
required_permissions = ["federation"]
required_permissions = ["moderation"]
view = View()
permission = permissions.HasUserPermission()
request = api_request.get("/")
setattr(request, "user", user)
result = permission.has_permission(request, view)
assert result == user.has_permissions("federation") == value
assert result == user.has_permissions("moderation") == value
@pytest.mark.parametrize(
"federation,library,expected",
"moderation,library,expected",
[
(True, False, False),
(False, True, False),
@ -44,14 +44,14 @@ def test_has_user_permission_logged_in_single(value, factories, api_request):
],
)
def test_has_user_permission_logged_in_multiple_and(
federation, library, expected, factories, api_request
moderation, library, expected, factories, api_request
):
user = factories["users.User"](
permission_federation=federation, permission_library=library
permission_moderation=moderation, permission_library=library
)
class View(APIView):
required_permissions = ["federation", "library"]
required_permissions = ["moderation", "library"]
permission_operator = "and"
view = View()
@ -59,11 +59,11 @@ def test_has_user_permission_logged_in_multiple_and(
request = api_request.get("/")
setattr(request, "user", user)
result = permission.has_permission(request, view)
assert result == user.has_permissions("federation", "library") == expected
assert result == user.has_permissions("moderation", "library") == expected
@pytest.mark.parametrize(
"federation,library,expected",
"moderation,library,expected",
[
(True, False, True),
(False, True, True),
@ -72,14 +72,14 @@ def test_has_user_permission_logged_in_multiple_and(
],
)
def test_has_user_permission_logged_in_multiple_or(
federation, library, expected, factories, api_request
moderation, library, expected, factories, api_request
):
user = factories["users.User"](
permission_federation=federation, permission_library=library
permission_moderation=moderation, permission_library=library
)
class View(APIView):
required_permissions = ["federation", "library"]
required_permissions = ["moderation", "library"]
permission_operator = "or"
view = View()
@ -87,6 +87,6 @@ def test_has_user_permission_logged_in_multiple_or(
request = api_request.get("/")
setattr(request, "user", user)
result = permission.has_permission(request, view)
has_permission_result = user.has_permissions("federation", "library", operator="or")
has_permission_result = user.has_permissions("moderation", "library", operator="or")
assert result == has_permission_result == expected