def from_member( member: OrganizationMember, scopes: Optional[Iterable[str]] = None, is_superuser: bool = False, ) -> Access: if scopes is not None: scopes = set(scopes) & member.get_scopes() else: scopes = member.get_scopes() permissions = get_permissions_for_user( member.user_id) if is_superuser else frozenset() return OrganizationMemberAccess(member, scopes, permissions)