pl_plan_cert_perm.py 694 B

1234567891011121314151617181920212223
  1. from __future__ import annotations
  2. from sqlalchemy.orm import Session
  3. from app.core.menu_guard import SUPER_ADMIN_ROLE, get_user_menu_codes
  4. PLAN_CERT_UPLOAD_PERM = "pl:plan-cert:upload"
  5. PLAN_CERT_READY_PERM = "pl:plan-cert:ready"
  6. def user_has_menu_perm(db: Session, user, perm: str) -> bool:
  7. if getattr(user, "role", None) == SUPER_ADMIN_ROLE:
  8. return True
  9. codes = get_user_menu_codes(db, user.id)
  10. return perm in codes
  11. def user_can_upload_plan_cert(db: Session, user) -> bool:
  12. return user_has_menu_perm(db, user, PLAN_CERT_UPLOAD_PERM)
  13. def user_can_manage_plan_cert_ready(db: Session, user) -> bool:
  14. return user_has_menu_perm(db, user, PLAN_CERT_READY_PERM)