Esempio n. 1
0
def update_user_roles(request, instance):
    role_updates = json_from_request(request)

    admin_user = request.user

    for Model, key in ((InstanceUser, 'users'),
                       (InstanceInvitation, 'invites')):
        updates = role_updates.get(key, {})

        for pk, updated_info in updates.iteritems():
            model = Model.objects.get(pk=pk)

            updated_role = int(updated_info.get('role', model.role_id))
            is_admin = updated_info.get('admin', model.admin)

            if model.role_id != updated_role or is_admin != model.admin:
                model.role_id = updated_role
                model.admin = is_admin

                if Model == InstanceInvitation:
                    model.save()
                elif (does_user_own_instance(instance, model.user)
                      and not is_admin):
                    raise ValidationError('Instance owner must be admin')
                else:
                    model.save_with_user(admin_user)

    return HttpResponse(_('Updated role assignments'))
Esempio n. 2
0
def update_user_roles(request, instance):
    role_updates = json_from_request(request)

    admin_user = request.user

    for Model, key in ((InstanceUser, 'users'),
                       (InstanceInvitation, 'invites')):
        updates = role_updates.get(key, {})

        for pk, updated_info in updates.iteritems():
            model = Model.objects.get(pk=pk)

            updated_role = int(updated_info.get('role', model.role_id))
            is_admin = updated_info.get('admin', model.admin)

            if model.role_id != updated_role or is_admin != model.admin:
                model.role_id = updated_role
                model.admin = is_admin

                if Model == InstanceInvitation:
                    model.save()
                elif (does_user_own_instance(instance, model.user)
                      and not is_admin):
                    raise ValidationError('Instance owner must be admin')
                else:
                    model.save_with_user(admin_user)

    return HttpResponse(_('Updated role assignments'))
Esempio n. 3
0
 def instance_user_context(instance_users):
     for instance_user in paged_instance_users:
         user = instance_user.user
         yield {
             'id': str(instance_user.pk),
             'username': user.username,
             'role_id': instance_user.role.pk,
             'role_name': instance_user.role.name,
             'admin': instance_user.admin,
             'is_owner': does_user_own_instance(instance, user)
         }
Esempio n. 4
0
 def instance_user_context(instance_users):
     for instance_user in paged_instance_users:
         user = instance_user.user
         yield {
             'id': str(instance_user.pk),
             'username': user.username,
             'role_id': instance_user.role.pk,
             'role_name': instance_user.role.name,
             'admin': instance_user.admin,
             'is_owner': does_user_own_instance(instance, user)
         }