Example #1
0
 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]
Example #2
0
 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)
Example #3
0
 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)
Example #4
0
 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))
Example #5
0
 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
     ]
Example #6
0
 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))
Example #7
0
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))
Example #8
0
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))
Example #9
0
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)
Example #10
0
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)
Example #11
0
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))
Example #12
0
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')
Example #13
0
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})')
Example #14
0
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)
Example #15
0
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})')
Example #16
0
 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))
Example #17
0
 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))