66
77from common .auth import TokenAuth
88from common .auth .authentication import has_permissions
9- from common .constants .permission_constants import Permission , Group , Operate
9+ from common .constants .permission_constants import Permission , Group , Operate , RoleConstants
1010from common .log .log import log
1111from common .result import result
1212from folders .api .folder import FolderCreateAPI , FolderEditAPI , FolderReadAPI , FolderTreeReadAPI , FolderDeleteAPI
@@ -36,12 +36,16 @@ class FolderView(APIView):
3636 responses = FolderCreateAPI .get_response (),
3737 tags = [_ ('Folder' )] # type: ignore
3838 )
39- @has_permissions (lambda r , kwargs : Permission (group = Group (kwargs .get ('source' )), operate = Operate .CREATE ,
40- resource_path = f"/WORKSPACE/{ kwargs .get ('workspace_id' )} " ))
41- @log (menu = 'folder' , operate = 'Create folder' ,
42- get_operation_object = lambda r , k : {'name' : r .data .get ('name' )},
43- workspace_id = lambda r , k : k .get ('workspace_id' )
44- )
39+ @has_permissions (
40+ lambda r , kwargs : Permission (group = Group (kwargs .get ('source' )), operate = Operate .CREATE ,
41+ resource_path = f"/WORKSPACE/{ kwargs .get ('workspace_id' )} " ),
42+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ()
43+ )
44+ @log (
45+ menu = 'folder' , operate = 'Create folder' ,
46+ get_operation_object = lambda r , k : {'name' : r .data .get ('name' )},
47+ workspace_id = lambda r , k : k .get ('workspace_id' )
48+ )
4549 def post (self , request : Request , workspace_id : str , source : str ):
4650 return result .success (FolderSerializer .Create (
4751 data = {'user_id' : request .user .id ,
@@ -58,8 +62,11 @@ def post(self, request: Request, workspace_id: str, source: str):
5862 responses = FolderTreeReadAPI .get_response (),
5963 tags = [_ ('Folder' )] # type: ignore
6064 )
61- @has_permissions (lambda r , kwargs : Permission (group = Group (kwargs .get ('source' )), operate = Operate .READ ,
62- resource_path = f"/WORKSPACE/{ kwargs .get ('workspace_id' )} " ))
65+ @has_permissions (
66+ lambda r , kwargs : Permission (group = Group (kwargs .get ('source' )), operate = Operate .READ ,
67+ resource_path = f"/WORKSPACE/{ kwargs .get ('workspace_id' )} " ),
68+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ()
69+ )
6370 def get (self , request : Request , workspace_id : str , source : str ):
6471 return result .success (FolderTreeSerializer (
6572 data = {'workspace_id' : workspace_id , 'source' : source }
@@ -78,12 +85,16 @@ class Operate(APIView):
7885 responses = FolderEditAPI .get_response (),
7986 tags = [_ ('Folder' )] # type: ignore
8087 )
81- @has_permissions (lambda r , kwargs : Permission (group = Group (kwargs .get ('source' )), operate = Operate .EDIT ,
82- resource_path = f"/WORKSPACE/{ kwargs .get ('workspace_id' )} " ))
83- @log (menu = 'folder' , operate = 'Edit folder' ,
84- get_operation_object = lambda r , k : get_folder_operation_object (k .get ('folder_id' ), k .get ('source' )),
85- workspace_id = lambda r , k : k .get ('workspace_id' )
86- )
88+ @has_permissions (
89+ lambda r , kwargs : Permission (group = Group (kwargs .get ('source' )), operate = Operate .EDIT ,
90+ resource_path = f"/WORKSPACE/{ kwargs .get ('workspace_id' )} " ),
91+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ()
92+ )
93+ @log (
94+ menu = 'folder' , operate = 'Edit folder' ,
95+ get_operation_object = lambda r , k : get_folder_operation_object (k .get ('folder_id' ), k .get ('source' )),
96+ workspace_id = lambda r , k : k .get ('workspace_id' )
97+ )
8798 def put (self , request : Request , workspace_id : str , source : str , folder_id : str ):
8899 return result .success (FolderSerializer .Operate (
89100 data = {'id' : folder_id , 'workspace_id' : workspace_id , 'source' : source }
@@ -98,8 +109,11 @@ def put(self, request: Request, workspace_id: str, source: str, folder_id: str):
98109 responses = FolderReadAPI .get_response (),
99110 tags = [_ ('Folder' )] # type: ignore
100111 )
101- @has_permissions (lambda r , kwargs : Permission (group = Group (kwargs .get ('source' )), operate = Operate .READ ,
102- resource_path = f"/WORKSPACE/{ kwargs .get ('workspace_id' )} " ))
112+ @has_permissions (
113+ lambda r , kwargs : Permission (group = Group (kwargs .get ('source' )), operate = Operate .READ ,
114+ resource_path = f"/WORKSPACE/{ kwargs .get ('workspace_id' )} " ),
115+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ()
116+ )
103117 def get (self , request : Request , workspace_id : str , source : str , folder_id : str ):
104118 return result .success (FolderSerializer .Operate (
105119 data = {'id' : folder_id , 'workspace_id' : workspace_id , 'source' : source }
@@ -114,12 +128,16 @@ def get(self, request: Request, workspace_id: str, source: str, folder_id: str):
114128 responses = FolderDeleteAPI .get_response (),
115129 tags = [_ ('Folder' )] # type: ignore
116130 )
117- @has_permissions (lambda r , kwargs : Permission (group = Group (kwargs .get ('source' )), operate = Operate .DELETE ,
118- resource_path = f"/WORKSPACE/{ kwargs .get ('workspace_id' )} " ))
119- @log (menu = 'folder' , operate = 'Delete folder' ,
120- get_operation_object = lambda r , k : get_folder_operation_object (k .get ('folder_id' ), k .get ('source' )),
121- workspace_id = lambda r , k : k .get ('workspace_id' )
122- )
131+ @has_permissions (
132+ lambda r , kwargs : Permission (group = Group (kwargs .get ('source' )), operate = Operate .DELETE ,
133+ resource_path = f"/WORKSPACE/{ kwargs .get ('workspace_id' )} " ),
134+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ()
135+ )
136+ @log (
137+ menu = 'folder' , operate = 'Delete folder' ,
138+ get_operation_object = lambda r , k : get_folder_operation_object (k .get ('folder_id' ), k .get ('source' )),
139+ workspace_id = lambda r , k : k .get ('workspace_id' )
140+ )
123141 def delete (self , request : Request , workspace_id : str , source : str , folder_id : str ):
124142 return result .success (FolderSerializer .Operate (
125143 data = {'id' : folder_id , 'workspace_id' : workspace_id , 'source' : source }
0 commit comments