diff --git a/backend/apps/data_training/api/data_training.py b/backend/apps/data_training/api/data_training.py index 0d7b4557..ce2ecec1 100644 --- a/backend/apps/data_training/api/data_training.py +++ b/backend/apps/data_training/api/data_training.py @@ -15,6 +15,7 @@ enable_training, get_all_data_training, batch_create_training from apps.data_training.models.data_training_model import DataTrainingInfo from apps.swagger.i18n import PLACEHOLDER_PREFIX +from apps.system.schemas.permission import SqlbotPermission, require_permissions from common.core.config import settings from common.core.deps import SessionDep, CurrentUser, Trans from common.utils.data_format import DataFormat @@ -53,12 +54,14 @@ async def create_or_update(session: SessionDep, current_user: CurrentUser, trans @router.delete("", summary=f"{PLACEHOLDER_PREFIX}delete_dt") @system_log(LogConfig(operation_type=OperationType.DELETE, module=OperationModules.DATA_TRAINING,resource_id_expr='id_list')) +@require_permissions(permission=SqlbotPermission(role=['ws_admin'])) async def delete(session: SessionDep, id_list: list[int]): delete_training(session, id_list) @router.get("/{id}/enable/{enabled}", summary=f"{PLACEHOLDER_PREFIX}enable_dt") @system_log(LogConfig(operation_type=OperationType.UPDATE, module=OperationModules.DATA_TRAINING,resource_id_expr='id')) +@require_permissions(permission=SqlbotPermission(role=['ws_admin'])) async def enable(session: SessionDep, id: int, enabled: bool, trans: Trans): enable_training(session, id, enabled, trans) diff --git a/backend/apps/datasource/api/table_relation.py b/backend/apps/datasource/api/table_relation.py index 7b76f958..21d433a5 100644 --- a/backend/apps/datasource/api/table_relation.py +++ b/backend/apps/datasource/api/table_relation.py @@ -6,12 +6,14 @@ from apps.datasource.models.datasource import CoreDatasource from apps.swagger.i18n import PLACEHOLDER_PREFIX +from apps.system.schemas.permission import SqlbotPermission, require_permissions from common.core.deps import SessionDep router = APIRouter(tags=["Table Relation"], prefix="/table_relation") @router.post("/save/{ds_id}", response_model=None, summary=f"{PLACEHOLDER_PREFIX}tr_save") +@require_permissions(permission=SqlbotPermission(role=['ws_admin'], keyExpression="ds_id", type='ds')) async def save_relation(session: SessionDep, relation: List[dict], ds_id: int = Path(..., description=f"{PLACEHOLDER_PREFIX}ds_id")): ds = session.get(CoreDatasource, ds_id) @@ -24,6 +26,7 @@ async def save_relation(session: SessionDep, relation: List[dict], @router.post("/get/{ds_id}", response_model=List, summary=f"{PLACEHOLDER_PREFIX}tr_get") +@require_permissions(permission=SqlbotPermission(role=['ws_admin'], keyExpression="ds_id", type='ds')) async def get_relation(session: SessionDep, ds_id: int = Path(..., description=f"{PLACEHOLDER_PREFIX}ds_id")): ds = session.get(CoreDatasource, ds_id) if ds: diff --git a/backend/apps/terminology/api/terminology.py b/backend/apps/terminology/api/terminology.py index 184673ce..2a8cb0b4 100644 --- a/backend/apps/terminology/api/terminology.py +++ b/backend/apps/terminology/api/terminology.py @@ -12,6 +12,7 @@ from apps.chat.models.chat_model import AxisObj from apps.swagger.i18n import PLACEHOLDER_PREFIX +from apps.system.schemas.permission import SqlbotPermission, require_permissions from apps.terminology.curd.terminology import page_terminology, create_terminology, update_terminology, \ delete_terminology, enable_terminology, get_all_terminology, batch_create_terminology from apps.terminology.models.terminology_model import TerminologyInfo @@ -52,12 +53,14 @@ async def create_or_update(session: SessionDep, current_user: CurrentUser, trans @router.delete("", summary=f"{PLACEHOLDER_PREFIX}delete_term") @system_log(LogConfig(operation_type=OperationType.DELETE, module=OperationModules.TERMINOLOGY,resource_id_expr='id_list')) +@require_permissions(permission=SqlbotPermission(role=['ws_admin'])) async def delete(session: SessionDep, id_list: list[int]): delete_terminology(session, id_list) @router.get("/{id}/enable/{enabled}", summary=f"{PLACEHOLDER_PREFIX}enable_term") @system_log(LogConfig(operation_type=OperationType.UPDATE, module=OperationModules.TERMINOLOGY,resource_id_expr='id')) +@require_permissions(permission=SqlbotPermission(role=['ws_admin'])) async def enable(session: SessionDep, id: int, enabled: bool, trans: Trans): enable_terminology(session, id, enabled, trans)