66
77from common .constants .permission_constants import WorkspaceUserRoleMapping
88from common .utils .common import group_by
9- from application .models import ApplicationFolder
10- from knowledge .models import KnowledgeFolder
11- from tools .models import ToolFolder
12- from system_manage .models import WorkspaceUserResourcePermission
13- from users .models import User
149
1510
16- def delete_auth (folder_model ):
17- QuerySet (WorkspaceUserResourcePermission ).filter (target__in = QuerySet (folder_model ).values_list ('id' )).delete ()
11+ def delete_auth (apps ,folder_model ):
12+ workspace_user_resource_permission_model = apps .get_model ('system_manage' , 'WorkspaceUserResourcePermission' )
13+ QuerySet (workspace_user_resource_permission_model ).filter (target__in = QuerySet (folder_model ).values_list ('id' )).delete ()
1814
1915
20- def get_workspace_user_resource_permission_list (auth_target_type , workspace_user_role_mapping_model_workspace_dict ,
16+ def get_workspace_user_resource_permission_list (apps , auth_target_type , workspace_user_role_mapping_model_workspace_dict ,
2117 folder_model ):
18+ workspace_user_resource_permission_model = apps .get_model ('system_manage' , 'WorkspaceUserResourcePermission' )
2219 return reduce (lambda x , y : [* x , * y ], [
23- [WorkspaceUserResourcePermission (target = f .id , workspace_id = f .workspace_id , user_id = wurm .user_id ,
20+ [workspace_user_resource_permission_model (target = f .id , workspace_id = f .workspace_id , user_id = wurm .user_id ,
2421 auth_target_type = auth_target_type , auth_type = "RESOURCE_PERMISSION_GROUP" ,
2522 permission_list = ['VIEW' ,'MANAGE' ] if wurm .user_id == f .user_id else ['VIEW' ]) for wurm in
2623 workspace_user_role_mapping_model_workspace_dict .get (f .workspace_id , [])] for f in
@@ -30,31 +27,38 @@ def get_workspace_user_resource_permission_list(auth_target_type, workspace_user
3027def auth_folder (apps , schema_editor ):
3128 from common .database_model_manage .database_model_manage import DatabaseModelManage
3229 DatabaseModelManage .init ()
30+
31+ user_model = apps .get_model ('users' , 'User' )
32+ application_folder_model = apps .get_model ('application' , 'ApplicationFolder' )
33+ knowledge_folder_model = apps .get_model ('knowledge' , 'KnowledgeFolder' )
34+ tool_folder_model = apps .get_model ('tools' , 'ToolFolder' )
35+ workspace_user_resource_permission_model = apps .get_model ('system_manage' , 'WorkspaceUserResourcePermission' )
36+
3337 workspace_user_role_mapping_model = DatabaseModelManage .get_model ("workspace_user_role_mapping" )
3438 if workspace_user_role_mapping_model is None :
3539 workspace_user_role_mapping_model_workspace_dict = {
36- 'default' : [WorkspaceUserRoleMapping ('default' , '' , u .id ) for u in QuerySet (User ).all ()]}
40+ 'default' : [WorkspaceUserRoleMapping ('default' , '' , u .id ) for u in QuerySet (user_model ).all ()]}
3741 else :
3842 workspace_user_role_mapping_model_workspace_dict = group_by (
3943 [v for v in {str (wurm .user_id ) + str (wurm .workspace_id ): wurm for wurm in
4044 QuerySet (workspace_user_role_mapping_model )}.values ()],
4145 lambda item : item .workspace_id )
4246
43- workspace_user_resource_permission_list = get_workspace_user_resource_permission_list ("APPLICATION" ,
47+ workspace_user_resource_permission_list = get_workspace_user_resource_permission_list (apps , "APPLICATION" ,
4448 workspace_user_role_mapping_model_workspace_dict ,
45- ApplicationFolder )
49+ application_folder_model )
4650
47- workspace_user_resource_permission_list += get_workspace_user_resource_permission_list ("TOOL" ,
51+ workspace_user_resource_permission_list += get_workspace_user_resource_permission_list (apps , "TOOL" ,
4852 workspace_user_role_mapping_model_workspace_dict ,
49- ToolFolder )
53+ knowledge_folder_model )
5054
51- workspace_user_resource_permission_list += get_workspace_user_resource_permission_list ("KNOWLEDGE" ,
55+ workspace_user_resource_permission_list += get_workspace_user_resource_permission_list (apps , "KNOWLEDGE" ,
5256 workspace_user_role_mapping_model_workspace_dict ,
53- KnowledgeFolder )
54- delete_auth (ApplicationFolder )
55- delete_auth (ToolFolder )
56- delete_auth (KnowledgeFolder )
57- QuerySet (WorkspaceUserResourcePermission ).bulk_create (workspace_user_resource_permission_list )
57+ tool_folder_model )
58+ delete_auth (apps , application_folder_model )
59+ delete_auth (apps , knowledge_folder_model )
60+ delete_auth (apps , tool_folder_model )
61+ QuerySet (workspace_user_resource_permission_model ).bulk_create (workspace_user_resource_permission_list )
5862
5963
6064class Migration (migrations .Migration ):
0 commit comments