Watch
1
0
Fork
You've already forked Seyyed_arc
0
forked from hesabix/arc
Seyyed_arc/hesabixAPI/app/services/business_ftp_access.py
2026-04-25 02:31:13 +03:30

22 lines
824 B
Python
Executable file

from __future__ import annotations
from sqlalchemy.orm import Session
from app.core.auth_dependency import AuthContext
def user_can_manage_ftp_backup(db: Session, ctx: AuthContext, business_id: int) -> bool:
"""مالک، سوپرادمین، یا کاربر با settings.manage_ftp."""
if ctx.is_superadmin():
return True
if ctx.is_business_owner(business_id):
return True
from adapters.db.repositories.business_permission_repo import BusinessPermissionRepository
repo = BusinessPermissionRepository(db)
perm_obj = repo.get_by_user_and_business(ctx.get_user_id(), business_id)
if not perm_obj or not perm_obj.business_permissions:
return False
perms = AuthContext._normalize_permissions_value(perm_obj.business_permissions)
section = perms.get("settings") or {}
return bool(section.get("manage_ftp"))