from __future__ import annotations from typing import AbstractSet def can_view_owner_roles( roles: AbstractSet[str], review_owner: str, ) -> bool: if "ADMIN" in roles: return True if review_owner == "PRODUCTION": return "PRODUCTION" in roles if review_owner == "TECHNICAL": return "TECHNICAL" in roles if review_owner == "JOINT": return bool( roles & { "PRODUCTION", "TECHNICAL", "JOINT", } ) return False def can_approve_context_roles( roles: AbstractSet[str], ) -> bool: return bool( roles & { "TECHNICAL", "ADMIN", } ) def can_manage_clarification_roles( roles: AbstractSet[str], ) -> bool: return bool( roles & { "PRODUCTION", "ADMIN", } )