42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
from starlette.requests import Request
|
|
|
|
|
|
class SuperAdminOnly:
|
|
"""superadmin만 접근 가능 (편집/삭제/액션 모두 허용)"""
|
|
|
|
def is_accessible(self, request: Request) -> bool:
|
|
return request.session.get("admin_role") == "superadmin"
|
|
|
|
|
|
class ViewerReadOnly:
|
|
"""viewer만 접근 가능한 읽기 전용 뷰"""
|
|
|
|
can_create = False
|
|
can_edit = False
|
|
can_delete = False
|
|
|
|
def is_accessible(self, request: Request) -> bool:
|
|
return request.session.get("admin_role") == "viewer"
|
|
|
|
|
|
class ViewerAccessible:
|
|
"""superadmin + viewer 접근 가능, 읽기 전용"""
|
|
|
|
can_create = False
|
|
can_edit = False
|
|
can_delete = False
|
|
|
|
def is_accessible(self, request: Request) -> bool:
|
|
return request.session.get("admin_role") in ("superadmin", "viewer")
|
|
|
|
|
|
class SuperAdminEditable:
|
|
"""superadmin + viewer 접근 가능, superadmin만 편집"""
|
|
|
|
can_create = False
|
|
can_edit = False
|
|
can_delete = False
|
|
|
|
def is_accessible(self, request: Request) -> bool:
|
|
return request.session.get("admin_role") in ("superadmin", "viewer")
|