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