@@ -384,6 +384,49 @@ def inner(view,r, **kwargs):
384384
385385 return result .success (inner (self ,request , workspace_id = workspace_id ))
386386
387+ class BatchCleanTime (APIView ):
388+ authentication_classes = [TokenAuth ]
389+
390+ @extend_schema (
391+ methods = ['PUT' ],
392+ description = _ ("Batch update application chat log clear policy" ),
393+ summary = _ ("Batch update application chat log clear policy" ),
394+ operation_id = _ ("Batch update application chat log clear policy" ),
395+ parameters = ApplicationBatchOperateAPI .get_parameters (),
396+ request = ApplicationBatchOperateAPI .get_clean_time_request (),
397+ responses = result .DefaultResultSerializer ,
398+ tags = [_ ('Application' )]
399+ )
400+ @has_permissions (PermissionConstants .APPLICATION_READ .get_workspace_permission (),
401+ RoleConstants .USER .get_workspace_role (),
402+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ()
403+ )
404+ def put (self , request : Request , workspace_id : str ):
405+ id_list = request .data .get ('id_list' , [])
406+ permitted_ids = check_batch_permissions (
407+ request , id_list , 'application_id' ,
408+ (PermissionConstants .APPLICATION_CHAT_LOG_CLEAR_POLICY .get_workspace_application_permission (),
409+ PermissionConstants .APPLICATION_CHAT_LOG_CLEAR_POLICY .get_workspace_permission_workspace_manage_role (),
410+ ViewPermission ([RoleConstants .USER .get_workspace_role ()],
411+ [PermissionConstants .APPLICATION .get_workspace_application_permission ()],
412+ CompareConstants .AND ),
413+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ()),
414+ workspace_id = workspace_id
415+ )
416+
417+ @log (menu = 'Application' , operate = 'Batch update application chat log clear policy' ,
418+ get_operation_object = lambda r , k : get_application_operation_object_batch (permitted_ids ))
419+ def inner (view ,r , ** kwargs ):
420+ return ApplicationBatchOperateSerializer (
421+ data = {'workspace_id' : workspace_id , 'user_id' : request .user .id }
422+ ).batch_clean_time ({
423+ 'id_list' : permitted_ids ,
424+ 'clean_time' : request .data .get ('clean_time' ),
425+ 'file_clean_time' : request .data .get ('file_clean_time' )
426+ })
427+
428+ return result .success (inner (self ,request , workspace_id = workspace_id ))
429+
387430class McpServers (APIView ):
388431 authentication_classes = [TokenAuth ]
389432
0 commit comments