feat: add tenant-scoped rule and permission management
This commit is contained in:
@@ -40,7 +40,8 @@ class ContractTemplateController(BaseController):
|
||||
keyword: str | None = Query(None, description="关键词"),
|
||||
category_id: int | None = Query(None, description="分类ID"),
|
||||
category_name: str | None = Query(None, description="分类名称"),
|
||||
region: str | None = Query(None, description="地区"),
|
||||
region: str | None = Query(None, description="兼容保留字段:租户展示值/旧地区"),
|
||||
tenant_code: str | None = Query(None, description="租户编码"),
|
||||
file_format: str | None = Query(None, description="文件格式"),
|
||||
is_featured: bool | None = Query(None, description="是否推荐"),
|
||||
page: int = Query(1, ge=1, description="页码"),
|
||||
@@ -56,6 +57,7 @@ class ContractTemplateController(BaseController):
|
||||
category_id=category_id,
|
||||
category_name=category_name,
|
||||
region=region,
|
||||
tenant_code=tenant_code,
|
||||
file_format=file_format,
|
||||
is_featured=is_featured,
|
||||
page=page,
|
||||
@@ -72,6 +74,7 @@ class ContractTemplateController(BaseController):
|
||||
template_code: str = Form(...),
|
||||
category_id: int = Form(...),
|
||||
region: str | None = Form(default=None),
|
||||
tenant_code: str | None = Form(default=None),
|
||||
description: str | None = Form(default=None),
|
||||
is_featured: bool = Form(default=False),
|
||||
file: UploadFile = File(...),
|
||||
@@ -79,12 +82,13 @@ class ContractTemplateController(BaseController):
|
||||
payload: dict = Depends(verify_access_token),
|
||||
):
|
||||
if not await self._check_permission(int(payload["user_id"]), ["contract_template:create:write"]):
|
||||
return JSONResponse(status_code=403, content={"code": 403, "msg": "当前仅允许地区管理员上传合同模板", "data": None})
|
||||
return JSONResponse(status_code=403, content={"code": 403, "msg": "当前仅允许租户管理员上传合同模板", "data": None})
|
||||
body = ContractTemplateCreateDTO(
|
||||
title=title,
|
||||
template_code=template_code,
|
||||
category_id=category_id,
|
||||
region=region,
|
||||
tenant_code=tenant_code,
|
||||
description=description,
|
||||
is_featured=is_featured,
|
||||
)
|
||||
@@ -96,7 +100,8 @@ class ContractTemplateController(BaseController):
|
||||
q: str = Query(..., min_length=1, description="搜索关键词"),
|
||||
category_id: int | None = Query(None, description="分类ID"),
|
||||
category_name: str | None = Query(None, description="分类名称"),
|
||||
region: str | None = Query(None, description="地区"),
|
||||
region: str | None = Query(None, description="兼容保留字段:租户展示值/旧地区"),
|
||||
tenant_code: str | None = Query(None, description="租户编码"),
|
||||
page: int = Query(1, ge=1, description="页码"),
|
||||
page_size: int = Query(12, ge=1, le=200, description="分页大小"),
|
||||
sort_by: str = Query("updated_at", description="排序字段"),
|
||||
@@ -110,6 +115,7 @@ class ContractTemplateController(BaseController):
|
||||
category_id=category_id,
|
||||
category_name=category_name,
|
||||
region=region,
|
||||
tenant_code=tenant_code,
|
||||
page=page,
|
||||
page_size=page_size,
|
||||
sort_by=sort_by,
|
||||
|
||||
Reference in New Issue
Block a user