def category_roles(self): from indico.modules.categories.util import serialize_category_role from indico.modules.categories.models.roles import CategoryRole category_roles = CategoryRole.get_category_roles(self.category) return [ serialize_category_role(role, legacy=True) for role in category_roles ]
def _process(self): form = CategoryRoleForm(category=self.category, color=self._get_color()) if form.validate_on_submit(): role = CategoryRole(category=self.category) form.populate_obj(role) db.session.flush() logger.info('Category role %r created by %r', role, session.user) return jsonify_data(html=_render_roles(self.category), role=serialize_category_role(role)) return jsonify_form(form)
def _process(self): form = CategoryRoleForm(category=self.category, color=self._get_color()) if form.validate_on_submit(): role = CategoryRole(category=self.category) form.populate_obj(role) db.session.flush() logger.info('Category role %r created by %r', role, session.user) self.category.log(CategoryLogRealm.category, LogKind.positive, 'Roles', f'Added role: "{role.name}"', session.user) return jsonify_data(html=_render_roles(self.category), role=serialize_category_role(role)) return jsonify_form(form)
def serialize_principal(principal): from indico.modules.categories.util import serialize_category_role if principal.principal_type == PrincipalType.email: return serialize_email_principal(principal) elif principal.principal_type == PrincipalType.network: return serialize_ip_network_group(principal) elif principal.principal_type == PrincipalType.user: return serialize_user(principal) elif principal.principal_type == PrincipalType.event_role: return serialize_event_role(principal) elif principal.principal_type == PrincipalType.category_role: return serialize_category_role(principal) elif principal.is_group: return serialize_group(principal) else: raise ValueError('Invalid principal: {} ({})'.format(principal, principal.principal_type))
def serialize_principal(principal): from indico.modules.categories.util import serialize_category_role if principal.principal_type == PrincipalType.email: return serialize_email_principal(principal) elif principal.principal_type == PrincipalType.network: return serialize_ip_network_group(principal) elif principal.principal_type == PrincipalType.user: return serialize_user(principal) elif principal.principal_type == PrincipalType.event_role: return serialize_event_role(principal) elif principal.principal_type == PrincipalType.category_role: return serialize_category_role(principal) elif principal.principal_type == PrincipalType.registration_form: return serialize_registration_form(principal) elif principal.is_group: return serialize_group(principal) else: raise ValueError(f'Invalid principal: {principal} ({principal.principal_type})')
def serialize_principal(principal): from indico.modules.categories.util import serialize_category_role if principal.principal_type == PrincipalType.email: return serialize_email_principal(principal) elif principal.principal_type == PrincipalType.network: return IPNetworkGroupSchema().dump(principal) elif principal.principal_type == PrincipalType.user: return serialize_user(principal) elif principal.principal_type == PrincipalType.event_role: return serialize_event_role(principal) elif principal.principal_type == PrincipalType.category_role: return serialize_category_role(principal) elif principal.principal_type == PrincipalType.registration_form: return serialize_registration_form(principal) elif principal.principal_type in (PrincipalType.local_group, PrincipalType.multipass_group): return serialize_group(principal) else: raise ValueError( f'Invalid principal: {principal} ({principal.principal_type})')
def category_roles(self): from indico.modules.categories.models.roles import CategoryRole category_roles = CategoryRole.get_category_roles(self.event.category) return [serialize_category_role(role) for role in category_roles]
def _process(self): category_roles = CategoryRole.get_category_roles(self.event.category) return jsonify([serialize_category_role(cr, legacy=False) for cr in category_roles])