Source code for structum_lab.plugins.auth.rbac
# Role-Based Access Control (RBAC)
# SPDX-License-Identifier: Apache-2.0
"""
RBAC utilities for permission checking.
"""
from structum_lab.auth.interfaces import UserInterface
[docs]
class RoleChecker:
"""Helper for checking roles and permissions."""
[docs]
@staticmethod
def has_role(user: UserInterface, role: str) -> bool:
"""Check if user has specific role."""
return role in user.roles
[docs]
@staticmethod
def has_any_role(user: UserInterface, roles: list[str]) -> bool:
"""Check if user has any of the specified roles."""
return any(r in user.roles for r in roles)
[docs]
@staticmethod
def check_permission(user: UserInterface, permission: str) -> bool:
"""Check permission (delegates to user object)."""
return user.has_permission(permission)