def _value(self): if self.serializable: data = retrieve_principals(self._get_data(), legacy=False) else: data = self._get_data() data.sort(key=lambda x: x.name.lower()) return [serialize_user(x) if isinstance(x, User) else serialize_group(x) for x in data]
def _serialize_principal(self, principal): if principal.principal_type == PrincipalType.email: return principal.fossilize() elif principal.principal_type == PrincipalType.user: return serialize_user(principal) else: return serialize_group(principal)
def _process(self): users = [User.get(int(id_)) for id_ in request.form.getlist('user_id')] self.user.favorite_users |= set(filter(None, users)) tpl = get_template_module('users/_favorites.html') return jsonify(success=True, users=[serialize_user(user) for user in users], html=tpl.favorite_users_list(self.user))
def _value(self): if self.serializable: data = retrieve_principals(self._get_data(), legacy=False) else: data = self._get_data() data.sort(key=lambda x: x.name.lower()) return [ serialize_user(x) if isinstance(x, User) else serialize_group(x) for x in data ]
def _serialize_principal(self, principal): if principal.principal_type == PrincipalType.email: return principal.fossilize() elif principal.principal_type == PrincipalType.network: return serialize_ip_network_group(principal) elif principal.principal_type == PrincipalType.user: return serialize_user(principal) elif principal.is_group: return serialize_group(principal) else: raise ValueError('Invalid principal: {} ({})'.format(principal, principal.principal_type))
def serialize_principal(principal): 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_role(principal) elif principal.is_group: return serialize_group(principal) else: raise ValueError('Invalid principal: {} ({})'.format(principal, principal.principal_type))
def generate_user_file(user=None): user = user or session.user if user is None: user_vars = {} else: user_vars = { 'id': user.id, 'first_name': user.first_name, 'last_name': user.last_name, 'email': user.email, 'favorite_users': {u.id: serialize_user(u) for u in user.favorite_users}, 'language': session.lang, 'avatar_bg_color': user.avatar_bg_color, 'is_admin': user.is_admin } return render_template('assets/vars_user.js', user_vars=user_vars, user=user)
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 js_vars_user(): """ Provides a JS file with user-specific definitions Useful for favorites, settings etc. """ user = session.user if user is None: user_vars = {} else: user_vars = { 'id': user.id, 'first_name': user.first_name, 'last_name': user.last_name, 'favorite_users': {u.id: serialize_user(u) for u in user.favorite_users} } data = render_template('assets/vars_user.js', user_vars=user_vars, user=user) return Response(data, mimetype='application/x-javascript')
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 generate_user_file(user=None): user = user or session.user if user is None: user_vars = {} else: user_vars = { 'id': user.id, 'firstName': user.first_name, 'lastName': user.last_name, 'fullName': user.full_name, 'email': user.email, 'favoriteUsers': {u.id: serialize_user(u) for u in user.favorite_users}, 'language': session.lang, 'avatarURL': user.avatar_url, 'isAdmin': user.is_admin, 'affiliation': user.affiliation, 'affiliationId': user._affiliation.affiliation_id, 'affiliationMeta': (AffiliationSchema().dump(user._affiliation.affiliation_link) if user._affiliation.affiliation_link else None), 'address': user.address, 'phone': user.phone, 'type': user.principal_type.name, # always 'user' } return render_template('assets/vars_user.js', user_vars=user_vars, user=user)
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 _process(self, source, target): errors, warnings = _get_merge_problems(source, target) return jsonify(errors=errors, warnings=warnings, source=serialize_user(source), target=serialize_user(target))