plugin_permission_service.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from sqlalchemy.orm import Session
  2. from extensions.ext_database import db
  3. from models.account import TenantPluginPermission
  4. class PluginPermissionService:
  5. @staticmethod
  6. def get_permission(tenant_id: str) -> TenantPluginPermission | None:
  7. with Session(db.engine) as session:
  8. return session.query(TenantPluginPermission).filter(TenantPluginPermission.tenant_id == tenant_id).first()
  9. @staticmethod
  10. def change_permission(
  11. tenant_id: str,
  12. install_permission: TenantPluginPermission.InstallPermission,
  13. debug_permission: TenantPluginPermission.DebugPermission,
  14. ):
  15. with Session(db.engine) as session:
  16. permission = (
  17. session.query(TenantPluginPermission).filter(TenantPluginPermission.tenant_id == tenant_id).first()
  18. )
  19. if not permission:
  20. permission = TenantPluginPermission(
  21. tenant_id=tenant_id, install_permission=install_permission, debug_permission=debug_permission
  22. )
  23. session.add(permission)
  24. else:
  25. permission.install_permission = install_permission
  26. permission.debug_permission = debug_permission
  27. session.commit()
  28. return True