1515from apps .system .crud .assistant_manage import dynamic_upgrade_cors , save
1616from apps .system .models .system_model import AssistantModel
1717from apps .system .schemas .auth import CacheName , CacheNamespace
18+ from apps .system .schemas .permission import SqlbotPermission , require_permissions
1819from apps .system .schemas .system_schema import AssistantBase , AssistantDTO , AssistantUiSchema , AssistantValidator
1920from common .core .config import settings
2021from common .core .deps import CurrentAssistant , SessionDep , Trans , CurrentUser
@@ -217,27 +218,31 @@ def get_db_type(type):
217218
218219
219220@router .get ("" , response_model = list [AssistantModel ], summary = f"{ PLACEHOLDER_PREFIX } assistant_grid_api" , description = f"{ PLACEHOLDER_PREFIX } assistant_grid_api" )
221+ @require_permissions (permission = SqlbotPermission (role = ['ws_admin' ]))
220222async def query (session : SessionDep , current_user : CurrentUser ):
221223 list_result = session .exec (select (AssistantModel ).where (AssistantModel .oid == current_user .oid , AssistantModel .type != 4 ).order_by (AssistantModel .name ,
222224 AssistantModel .create_time )).all ()
223225 return list_result
224226
225227
226228@router .get ("/advanced_application" , response_model = list [AssistantModel ], include_in_schema = False )
227- async def query_advanced_application (session : SessionDep ):
228- list_result = session .exec (select (AssistantModel ).where (AssistantModel .type == 1 ).order_by (AssistantModel .name ,
229+ @require_permissions (permission = SqlbotPermission (role = ['ws_admin' ]))
230+ async def query_advanced_application (session : SessionDep , current_user : CurrentUser ):
231+ list_result = session .exec (select (AssistantModel ).where (AssistantModel .type == 1 , AssistantModel .oid == current_user .oid ).order_by (AssistantModel .name ,
229232 AssistantModel .create_time )).all ()
230233 return list_result
231234
232235
233236@router .post ("" , summary = f"{ PLACEHOLDER_PREFIX } assistant_create_api" , description = f"{ PLACEHOLDER_PREFIX } assistant_create_api" )
237+ @require_permissions (permission = SqlbotPermission (role = ['ws_admin' ]))
234238@system_log (LogConfig (operation_type = OperationType .CREATE , module = OperationModules .APPLICATION , result_id_expr = "id" ))
235239async def add (request : Request , session : SessionDep , current_user : CurrentUser , creator : AssistantBase ):
236240 oid = current_user .oid if creator .type != 4 else 1
237241 return await save (request , session , creator , oid )
238242
239243
240244@router .put ("" , summary = f"{ PLACEHOLDER_PREFIX } assistant_update_api" , description = f"{ PLACEHOLDER_PREFIX } assistant_update_api" )
245+ @require_permissions (permission = SqlbotPermission (role = ['ws_admin' ]))
241246@clear_cache (namespace = CacheNamespace .EMBEDDED_INFO , cacheName = CacheName .ASSISTANT_INFO , keyExpression = "editor.id" )
242247@system_log (LogConfig (operation_type = OperationType .UPDATE , module = OperationModules .APPLICATION , resource_id_expr = "editor.id" ))
243248async def update (request : Request , session : SessionDep , editor : AssistantDTO ):
@@ -262,6 +267,7 @@ async def get_one(session: SessionDep, id: int = Path(description="ID")):
262267
263268
264269@router .delete ("/{id}" , summary = f"{ PLACEHOLDER_PREFIX } assistant_del_api" , description = f"{ PLACEHOLDER_PREFIX } assistant_del_api" )
270+ @require_permissions (permission = SqlbotPermission (role = ['ws_admin' ]))
265271@clear_cache (namespace = CacheNamespace .EMBEDDED_INFO , cacheName = CacheName .ASSISTANT_INFO , keyExpression = "id" )
266272@system_log (LogConfig (operation_type = OperationType .DELETE , module = OperationModules .APPLICATION , resource_id_expr = "id" ))
267273async def delete (request : Request , session : SessionDep , id : int = Path (description = "ID" )):
0 commit comments