def visibility(self, data): if not is_mapping(data): return roles = data.get('roles', []) public = Role.public_roles() data['secret'] = len(public.intersection(roles)) == 0
def private_roles(self): if not self.logged_in: return set() return self.roles.difference(Role.public_roles())