fix(pl): 将证书齐备改为独立菜单权限,避免取消授权后仍随计划段次用证显示。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
421332cad4
commit
13ed7f5be0
8 files changed
+129
-7
No files matched your search
@@ -14,10 +14,15 @@ from app.api.pl.vehicle_fuel_card import router as vehicle_fuel_card_router
|
||||
from app.api.pl.dispatch_calendar import router as dispatch_calendar_router
|
||||
from app.api.pl.site_dispatch_calendar import router as site_dispatch_calendar_router
|
||||
from app.api.wechat_notices import router as wechat_notices_router
|
||||
from app.api.pl.quota_cert import router as quota_cert_router, legal_router as legal_use_document_router
|
||||
from app.api.pl.quota_cert import (
|
||||
router as quota_cert_router,
|
||||
legal_router as legal_use_document_router,
|
||||
cert_ready_router,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"quota_cert_router",
|
||||
"cert_ready_router",
|
||||
"legal_use_document_router",
|
||||
"wechat_notices_router",
|
||||
"public_router",
|
||||
|
||||
@@ -11,7 +11,7 @@ from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.database import get_db
|
||||
from app.core.db_auth import DbUserContext, get_db_current_user
|
||||
from app.core.menu_guard import require_menu_code
|
||||
from app.core.menu_guard import get_user_menu_codes, require_admin_or_super_admin, require_menu_code
|
||||
from app.core.oper_log_decorator import oper_log
|
||||
from app.core.tenant_context import get_tenant_no
|
||||
from app.schemas.pl.quota_cert import InputBody, CertConfirmBody, CertVerifyBody, CertTotalAdjustBody
|
||||
@@ -36,6 +36,26 @@ router = APIRouter(prefix='/transport/quota-certs', tags=['购买证与运输证
|
||||
dependencies=[Depends(require_menu_code('pl:quota-cert:list'))])
|
||||
legal_router = APIRouter(prefix='/transport/legal-use-documents', tags=['合法使用证明'],
|
||||
dependencies=[Depends(require_menu_code('pl:legal-use-document:list'))])
|
||||
|
||||
|
||||
def _require_cert_ready_menu(
|
||||
current_user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
"""证书齐备页面权限。小程序运输证件仍走原入口,不要求单独的 Web 菜单。"""
|
||||
if current_user.get("role") == "super_admin":
|
||||
return current_user
|
||||
codes = get_user_menu_codes(db, current_user.get("user_id"))
|
||||
if "pl:cert-ready:list" in codes or "mini:pl:plan-cert:list" in codes:
|
||||
return current_user
|
||||
raise HTTPException(status_code=403, detail="无菜单访问权限")
|
||||
|
||||
|
||||
cert_ready_router = APIRouter(
|
||||
prefix='/transport/quota-certs',
|
||||
tags=['证书齐备'],
|
||||
dependencies=[Depends(_require_cert_ready_menu)],
|
||||
)
|
||||
CertType = Literal['purchase', 'transport']
|
||||
|
||||
|
||||
@@ -86,7 +106,7 @@ def plan_overview(keyword: str = '', status: Optional[str] = None,
|
||||
conversion_only=conversion_only))
|
||||
|
||||
|
||||
@router.get('/plans/cert-ready')
|
||||
@cert_ready_router.get('/plans/cert-ready')
|
||||
def list_cert_ready(keyword: str = '', waived: Optional[str] = Query(None, max_length=1),
|
||||
plan_no: Optional[str] = Query(None, alias='planNo', max_length=200),
|
||||
license_plate: Optional[str] = Query(None, alias='licensePlate', max_length=100),
|
||||
@@ -111,7 +131,7 @@ def list_cert_ready(keyword: str = '', waived: Optional[str] = Query(None, max_l
|
||||
waived_time_to=waived_time_to))
|
||||
|
||||
|
||||
@router.post('/plans/{plan_id}/cert-ready')
|
||||
@cert_ready_router.post('/plans/{plan_id}/cert-ready')
|
||||
def mark_cert_ready(plan_id: str, db: Session = Depends(get_db), user: DbUserContext = Depends(current_user)):
|
||||
from app.services.pl_quota_waiver import mark_ready
|
||||
return _write(db, lambda: mark_ready(db, user, plan_id))
|
||||
|
||||
Reference in new issue
Block a user