File tree Expand file tree Collapse file tree 4 files changed +34
-3
lines changed Expand file tree Collapse file tree 4 files changed +34
-3
lines changed Original file line number Diff line number Diff line change 44
55from lasuite .oidc_resource_server .authentication import ResourceServerAuthentication
66
7- from ..api .permissions import AccessPermission , IsSelf , ItemAccessPermission
8- from ..api .viewsets import ItemAccessViewSet , ItemViewSet , UserViewSet
7+ from ..api .permissions import (
8+ AccessPermission ,
9+ CanCreateInvitationPermission ,
10+ IsSelf ,
11+ ItemAccessPermission ,
12+ )
13+ from ..api .viewsets import (
14+ InvitationViewset ,
15+ ItemAccessViewSet ,
16+ ItemViewSet ,
17+ UserViewSet ,
18+ )
919from .authentication import JWTAuthentication
1020from .permissions import ResourceServerClientPermission
1121
@@ -34,6 +44,16 @@ class ResourceServerItemAccessViewSet(ItemAccessViewSet):
3444 permission_classes = [ResourceServerClientPermission & AccessPermission ]
3545
3646
47+ class ResourceServerInvitationViewSet (InvitationViewset ):
48+ """Resource Server Viewset for the Drive app."""
49+
50+ authentication_classes = EXTERNAL_API_AUTH_CLASSES
51+
52+ permission_classes = [
53+ ResourceServerClientPermission & CanCreateInvitationPermission
54+ ]
55+
56+
3757class ResourceServerUserViewSet (UserViewSet ):
3858 """Resource Server UserViewset for the Drive app."""
3959
Original file line number Diff line number Diff line change @@ -129,7 +129,9 @@ def test_api_items_accesses_retrieve_anonymous_public_standalone():
129129 item = factories .ItemFactory (link_reach = "public" )
130130
131131 response = APIClient ().get (f"/external_api/v1.0/items/{ item .id !s} /accesses/" )
132+ assert response .status_code == 403
132133
134+ response = APIClient ().get (f"/external_api/v1.0/items/{ item .id !s} /invitations/" )
133135 assert response .status_code == 403
134136
135137
@@ -157,7 +159,9 @@ def test_api_items_accesses_retrieve_connected_resource_server(
157159 item = factories .ItemFactory (link_reach = "public" )
158160
159161 response = client .get (f"/external_api/v1.0/items/{ item .id !s} /accesses/" )
162+ assert response .status_code == 200
160163
164+ response = client .get (f"/external_api/v1.0/items/{ item .id !s} /invitations/" )
161165 assert response .status_code == 200
162166
163167
Original file line number Diff line number Diff line change 5454 external_api_viewsets .ResourceServerItemAccessViewSet ,
5555 basename = "resource_server_item_accesses" ,
5656)
57+ external_api_item_related_router .register (
58+ "invitations" ,
59+ external_api_viewsets .ResourceServerInvitationViewSet ,
60+ basename = "resource_server_invitations" ,
61+ )
5762
5863urlpatterns = [
5964 path (
Original file line number Diff line number Diff line change @@ -402,7 +402,9 @@ class Base(Configuration):
402402 EMAIL_FROM = values .
Value (
"[email protected] " )
403403
404404 AUTH_USER_MODEL = "core.User"
405- INVITATION_VALIDITY_DURATION = values .PositiveIntegerValue (604800 ) # 7 days, in seconds
405+ INVITATION_VALIDITY_DURATION = values .PositiveIntegerValue (
406+ 604800
407+ ) # 7 days, in seconds
406408
407409 # CORS
408410 CORS_ALLOW_CREDENTIALS = True
You can’t perform that action at this time.
0 commit comments