Skip to content

Commit 3351968

Browse files
committed
feat: authentication demo
1 parent 5f902ef commit 3351968

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

apps/users/api/user.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
@date:2025/4/14 19:23
77
@desc:
88
"""
9+
from drf_spectacular.types import OpenApiTypes
10+
from drf_spectacular.utils import OpenApiParameter
11+
912
from common.mixins.api_mixin import APIMixin
1013
from common.result import ResultSerializer
1114
from users.serializers.user import UserProfileResponse
@@ -21,3 +24,19 @@ class UserProfileAPI(APIMixin):
2124
@staticmethod
2225
def get_response():
2326
return ApiUserProfileResponse
27+
28+
29+
class TestWorkspacePermissionUserApi(APIMixin):
30+
@staticmethod
31+
def get_parameters():
32+
return [OpenApiParameter(
33+
# 参数的名称是done
34+
name="workspace_id",
35+
# 对参数的备注
36+
description="工作空间id",
37+
# 指定参数的类型
38+
type=OpenApiTypes.STR,
39+
location=OpenApiParameter.PATH,
40+
# 指定必须给
41+
required=True,
42+
)]

apps/users/urls.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,7 @@
66
urlpatterns = [
77
path('user/login', views.LoginView.as_view(), name='login'),
88
path('user/profile', views.UserProfileView.as_view(), name="user_profile"),
9-
path('user/test', views.TestPermissionsUserView.as_view(), name="test")
9+
path('user/test', views.TestPermissionsUserView.as_view(), name="test"),
10+
path('user/<str:workspace_id>', views.TestWorkspacePermissionUserView.as_view(),
11+
name="test_workspace_id_permission")
1012
]

apps/users/views/user.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from common.auth.authentication import has_permissions
1616
from common.constants.permission_constants import PermissionConstants
1717
from common.result import result
18-
from users.api.user import UserProfileAPI
18+
from users.api.user import UserProfileAPI, TestWorkspacePermissionUserApi
1919
from users.serializers.user import UserProfileSerializer
2020

2121

@@ -42,3 +42,17 @@ class TestPermissionsUserView(APIView):
4242
@has_permissions(PermissionConstants.USER_EDIT)
4343
def get(self, request: Request):
4444
return result.success(UserProfileSerializer().profile(request.user))
45+
46+
47+
class TestWorkspacePermissionUserView(APIView):
48+
authentication_classes = [TokenAuth]
49+
50+
@extend_schema(methods=['GET'],
51+
description="针对工作空间下权限校验",
52+
operation_id="针对工作空间下权限校验",
53+
tags=[_("User management")],
54+
responses=UserProfileAPI.get_response(),
55+
parameters=TestWorkspacePermissionUserApi.get_parameters())
56+
@has_permissions(PermissionConstants.USER_EDIT.get_workspace_permission())
57+
def get(self, request: Request, workspace_id):
58+
return result.success(UserProfileSerializer().profile(request.user))

0 commit comments

Comments
 (0)