from core.models.policy.CapabilityPolicy import CapabilityPolicy from core.models.policy.PrivilegePolicy import PrivilegePolicy from typing import Union class PolicyController: @staticmethod def get(code: str): if code == 'capability': return CapabilityPolicy() elif code == 'privilege': return PrivilegePolicy() return None @staticmethod def preview(policy: Union[CapabilityPolicy, PrivilegePolicy]): return policy.preview() @staticmethod def instate(policy: Union[CapabilityPolicy, PrivilegePolicy]): policy.instate() @staticmethod def revoke(policy: Union[CapabilityPolicy, PrivilegePolicy]): policy.revoke() @staticmethod def is_suggestible(policy: Union[CapabilityPolicy, PrivilegePolicy]): return policy.is_suggestible() @staticmethod def is_instated(policy: Union[CapabilityPolicy, PrivilegePolicy]): return policy.is_instated()