fix: convert RBAC_FILE constant to getter function to fix CI test failures
Deploy Dashboard (Dev) / deploy-dev (push) Successful in 6m45s
Run Tests / Frontend Tests (push) Has started running
Run Tests / Test Summary (push) Has been cancelled
Run Tests / Backend Tests (push) Failing after 10m24s

This commit is contained in:
Gan, Jimmy
2026-04-05 01:20:27 +08:00
parent 585a4c0500
commit 1b07246d0d
+8 -5
View File
@@ -8,7 +8,9 @@ from fastapi import HTTPException, Request, status, Depends
import config import config
RBAC_FILE = os.path.join(config.VOLUME_ROOT, "docker/nas-dashboard/rbac.json") def get_rbac_file():
return os.path.join(config.VOLUME_ROOT, "docker/nas-dashboard/rbac.json")
_rbac_lock = threading.RLock() _rbac_lock = threading.RLock()
ROLE_GROUP_MAP = { ROLE_GROUP_MAP = {
@@ -38,8 +40,9 @@ class User(BaseModel):
def load_rbac() -> dict: def load_rbac() -> dict:
try: try:
if os.path.exists(RBAC_FILE): rbac_path = get_rbac_file()
with open(RBAC_FILE) as f: if os.path.exists(rbac_path):
with open(rbac_path) as f:
return json.load(f) return json.load(f)
except Exception: except Exception:
pass pass
@@ -64,12 +67,12 @@ def update_rbac(mutator):
with _rbac_lock: with _rbac_lock:
data = load_rbac() data = load_rbac()
result = mutator(data) result = mutator(data)
_atomic_json_write(RBAC_FILE, data) _atomic_json_write(get_rbac_file(), data)
return result return result
def save_rbac(data: dict): def save_rbac(data: dict):
_atomic_json_write(RBAC_FILE, data) _atomic_json_write(get_rbac_file(), data)
def resolve_role(groups: list[str]) -> Optional[str]: def resolve_role(groups: list[str]) -> Optional[str]: