feat(auth): 승인자 권한 보유자는 해당 모듈 접근 자동 허용
expense_approver 권한만 가진 관리자가 본인 경비를 등록/제출할 수 있도록 has_module() 에서 <module>_approver 보유 시 <module> 접근도 허용. APPROVER_KEYS 자체에는 재귀 적용하지 않음 (vacation_approver 가 expense_approver 를 부여하는 일은 없음).
This commit is contained in:
+9
-1
@@ -228,7 +228,15 @@ def has_module(user_rec: dict[str, Any] | None, module: str) -> bool:
|
||||
if is_admin(user_rec):
|
||||
return True
|
||||
mods = user_rec.get("modules") or {}
|
||||
return bool(mods.get(module))
|
||||
if mods.get(module):
|
||||
return True
|
||||
# 승인자(<module>_approver) 권한이 있으면 해당 모듈 접근도 허용 —
|
||||
# 본인 경비 등록/제출도 가능해야 하므로.
|
||||
if module in APPROVER_KEYS:
|
||||
return False
|
||||
if mods.get(f"{module}_approver"):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def is_approver(user_rec: dict[str, Any] | None, kind: str) -> bool:
|
||||
|
||||
Reference in New Issue
Block a user