Skip to content

Commit

Permalink
♻️(backend) rename playlist related permissons
Browse files Browse the repository at this point in the history
Permissions names related to playlists were not very intuitive.
  • Loading branch information
kernicPanel committed Aug 16, 2023
1 parent 0763dcc commit 26a690b
Show file tree
Hide file tree
Showing 11 changed files with 25 additions and 33 deletions.
10 changes: 5 additions & 5 deletions src/backend/marsha/bbb/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ class ClassroomViewSet(

permission_classes = [
(
core_permissions.IsPlaylistToken
core_permissions.IsPlaylistTokenMatchingRouteObject
& (core_permissions.IsTokenInstructor | core_permissions.IsTokenAdmin)
)
| (
Expand All @@ -116,7 +116,7 @@ def get_permissions(self):
if self.action in ["create"]:
permission_classes = [
(
core_permissions.HasPlaylistToken
core_permissions.IsPlaylistToken
& (
core_permissions.IsTokenInstructor
| core_permissions.IsTokenAdmin
Expand All @@ -142,7 +142,7 @@ def get_permissions(self):
]
elif self.action in ["retrieve", "service_join"]:
permission_classes = [
core_permissions.IsPlaylistToken
core_permissions.IsPlaylistTokenMatchingRouteObject
| core_permissions.IsTokenResourceRouteObject # needed for invite links
| (
core_permissions.UserIsAuthenticated # asserts request.resource is None
Expand Down Expand Up @@ -189,7 +189,7 @@ def get_serializer_context(self):
# For LTI
| (
core_permissions.ResourceIsAuthenticated
& core_permissions.IsPlaylistToken
& core_permissions.IsPlaylistTokenMatchingRouteObject
& (
core_permissions.IsTokenInstructor
| core_permissions.IsTokenAdmin
Expand Down Expand Up @@ -241,7 +241,7 @@ def create(self, request, *args, **kwargs):
methods=["get"],
detail=False,
url_path="lti-select",
permission_classes=[core_permissions.HasPlaylistToken],
permission_classes=[core_permissions.IsPlaylistToken],
)
def lti_select(self, request):
"""Get selectable content for LTI.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@

from marsha.bbb.factories import ClassroomFactory
from marsha.core import factories as core_factories
from marsha.core.simple_jwt.factories import (
InstructorOrAdminLtiTokenFactory,
)
from marsha.core.simple_jwt.factories import InstructorOrAdminLtiTokenFactory
from marsha.core.tests.testing_utils import reload_urlconf


Expand Down
4 changes: 2 additions & 2 deletions src/backend/marsha/core/api/file.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class DocumentViewSet(
queryset = Document.objects.all()
serializer_class = serializers.DocumentSerializer
permission_classes = [
permissions.IsPlaylistToken
permissions.IsPlaylistTokenMatchingRouteObject
& (permissions.IsTokenInstructor | permissions.IsTokenAdmin)
]

Expand All @@ -38,7 +38,7 @@ def get_permissions(self):
"""
if self.action in ["create"]:
permission_classes = [
permissions.HasPlaylistToken
permissions.IsPlaylistToken
& (permissions.IsTokenInstructor | permissions.IsTokenAdmin)
]
else:
Expand Down
4 changes: 2 additions & 2 deletions src/backend/marsha/core/api/portability_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
HasPlaylistAdministratorAccess,
HasPlaylistConsumerSiteAdministratorAccess,
HasPlaylistOrganizationAdministratorAccess,
HasPlaylistToken,
IsPlaylistOwner,
IsPlaylistToken,
IsPortabilityRequestOwner,
NotAllowed,
UserIsAuthenticated,
Expand Down Expand Up @@ -64,7 +64,7 @@ def get_permissions(self):
Only the `create` view is available from LTI.
"""
if self.action in ["create"]:
permission_classes = [HasPlaylistToken]
permission_classes = [IsPlaylistToken]
elif self.action in ["destroy"]:
permission_classes = [UserIsAuthenticated & IsPortabilityRequestOwner]
elif self.action in ["retrieve"]:
Expand Down
2 changes: 1 addition & 1 deletion src/backend/marsha/core/api/thumbnail.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def get_permissions(self):
]
elif self.action in ["retrieve", "destroy", "initiate_upload"]:
permission_classes = [
permissions.IsPlaylistToken
permissions.IsPlaylistTokenMatchingRouteObject
& (permissions.IsTokenInstructor | permissions.IsTokenAdmin)
| permissions.IsRelatedVideoPlaylistAdminOrInstructor
| permissions.IsRelatedVideoOrganizationAdmin
Expand Down
8 changes: 4 additions & 4 deletions src/backend/marsha/core/api/video.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ def get_permissions(self):
# `VideoConsumer` websocket consumer.
permission_classes = [
# With LTI: anyone with a valid token for the video can access
permissions.IsPlaylistToken
permissions.IsPlaylistTokenMatchingRouteObject
# With standalone site, only playlist admin or organization admin can access
| permissions.IsObjectPlaylistAdminOrInstructor
| permissions.IsObjectPlaylistOrganizationAdmin
Expand All @@ -149,7 +149,7 @@ def get_permissions(self):
| permissions.IsParamsPlaylistAdminThroughOrganization
# With LTI: playlist admin or instructor admin can access
| (
permissions.HasPlaylistToken
permissions.IsPlaylistToken
& (permissions.IsTokenInstructor | permissions.IsTokenAdmin)
)
]
Expand All @@ -167,7 +167,7 @@ def get_permissions(self):
permission_classes = [
# With LTI: playlist admin or instructor admin or playlist access can access
(
permissions.IsPlaylistToken
permissions.IsPlaylistTokenMatchingRouteObject
& (permissions.IsTokenInstructor | permissions.IsTokenAdmin)
)
# With standalone site, only playlist admin or instructor
Expand Down Expand Up @@ -196,7 +196,7 @@ def get_permissions(self):
]:
permission_classes = [
# With LTI: playlist admin or instructor admin can access
permissions.IsPlaylistToken
permissions.IsPlaylistTokenMatchingRouteObject
& (permissions.IsTokenInstructor | permissions.IsTokenAdmin)
# With standalone site, playlist admin or instructor can access
| permissions.IsObjectPlaylistAdminOrInstructor
Expand Down
4 changes: 2 additions & 2 deletions src/backend/marsha/core/permissions/token.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ def has_permission(self, request, view):
return False


class IsPlaylistToken(permissions.BasePermission):
class IsPlaylistTokenMatchingRouteObject(permissions.BasePermission):
"""
Allow a request to proceed. Permission class.
Expand Down Expand Up @@ -189,7 +189,7 @@ def has_permission(self, request, view):
return False


class HasPlaylistToken(permissions.BasePermission):
class IsPlaylistToken(permissions.BasePermission):
"""
Allow a request to proceed. Permission class.
Expand Down
7 changes: 1 addition & 6 deletions src/backend/marsha/core/simple_jwt/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,7 @@
import factory
from faker.utils.text import slugify

from marsha.core.factories import (
ConsumerSiteFactory,
LiveSessionFactory,
PlaylistFactory,
UserFactory,
)
from marsha.core.factories import ConsumerSiteFactory, LiveSessionFactory, UserFactory
from marsha.core.models import ADMINISTRATOR, INSTRUCTOR, LTI_ROLES, NONE, STUDENT
from marsha.core.simple_jwt.permissions import ResourceAccessPermissions
from marsha.core.simple_jwt.tokens import (
Expand Down
8 changes: 4 additions & 4 deletions src/backend/marsha/deposit/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def get_permissions(self):
if self.action in ["create"]:
permission_classes = [
(
core_permissions.HasPlaylistToken
core_permissions.IsPlaylistToken
& (
core_permissions.IsTokenInstructor
| core_permissions.IsTokenAdmin
Expand All @@ -107,7 +107,7 @@ def get_permissions(self):
]
elif self.action in ["retrieve"]:
permission_classes = [
core_permissions.IsPlaylistToken
core_permissions.IsPlaylistTokenMatchingRouteObject
& (
core_permissions.IsTokenInstructor
| core_permissions.IsTokenAdmin
Expand All @@ -118,7 +118,7 @@ def get_permissions(self):
elif self.action in ["update", "partial_update", "destroy"]:
permission_classes = [
(
core_permissions.IsPlaylistToken
core_permissions.IsPlaylistTokenMatchingRouteObject
& (
core_permissions.IsTokenInstructor
| core_permissions.IsTokenAdmin
Expand Down Expand Up @@ -175,7 +175,7 @@ def create(self, request, *args, **kwargs):
methods=["get"],
detail=False,
url_path="lti-select",
permission_classes=[core_permissions.HasPlaylistToken],
permission_classes=[core_permissions.IsPlaylistToken],
)
def lti_select(self, request):
"""Get selectable content for LTI.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
UserAccessTokenFactory,
)
from marsha.core.tests.testing_utils import reload_urlconf
from marsha.deposit.factories import FileDepositoryFactory
from marsha.deposit.models import FileDepository


Expand Down
6 changes: 3 additions & 3 deletions src/backend/marsha/markdown/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ class MarkdownDocumentViewSet(

permission_classes = [
(
core_permissions.IsPlaylistToken
core_permissions.IsPlaylistTokenMatchingRouteObject
& (core_permissions.IsTokenInstructor | core_permissions.IsTokenAdmin)
)
| markdown_permissions.IsMarkdownDocumentPlaylistOrOrganizationAdmin
Expand All @@ -88,7 +88,7 @@ def get_permissions(self):
if self.action in ["create"]:
permission_classes = [
(
core_permissions.HasPlaylistToken
core_permissions.IsPlaylistToken
& (
core_permissions.IsTokenInstructor
| core_permissions.IsTokenAdmin
Expand Down Expand Up @@ -163,7 +163,7 @@ def create(self, request, *args, **kwargs):
methods=["get"],
detail=False,
url_path="lti-select",
permission_classes=[core_permissions.HasPlaylistToken],
permission_classes=[core_permissions.IsPlaylistToken],
)
def lti_select(self, request):
"""Get selectable content for LTI.
Expand Down

0 comments on commit 26a690b

Please sign in to comment.