diff --git a/apps/users/api.py b/apps/users/api.py index 2f683dcb6..c90bde910 100644 --- a/apps/users/api.py +++ b/apps/users/api.py @@ -4,9 +4,10 @@ import logging from rest_framework import generics +from rest_framework_bulk import ListBulkCreateUpdateDestroyAPIView from .serializers import UserSerializer, UserGroupSerializer, UserAttributeSerializer, UserGroupEditSerializer, \ - GroupEditSerializer, UserPKUpdateSerializer + GroupEditSerializer, UserPKUpdateSerializer, UserBulkUpdateSerializer from .models import User, UserGroup @@ -92,3 +93,8 @@ class UserUpdatePKApi(generics.UpdateAPIView): class GroupDeleteApi(generics.DestroyAPIView): queryset = UserGroup.objects.all() serializer_class = GroupEditSerializer + + +class UserBulkUpdateApi(ListBulkCreateUpdateDestroyAPIView): + queryset = User.objects.all() + serializer_class = UserBulkUpdateSerializer diff --git a/apps/users/serializers.py b/apps/users/serializers.py index 8e117a90d..9c8000cd3 100644 --- a/apps/users/serializers.py +++ b/apps/users/serializers.py @@ -3,6 +3,7 @@ from django.utils.translation import ugettext_lazy as _ from rest_framework import serializers +from rest_framework_bulk import BulkListSerializer, BulkSerializerMixin from .models import User, UserGroup @@ -67,3 +68,10 @@ class UserPKUpdateSerializer(serializers.ModelSerializer): print e raise serializers.ValidationError(_('Not a valid ssh public key')) return value + + +class UserBulkUpdateSerializer(BulkSerializerMixin, serializers.ModelSerializer): + + class Meta(object): + model = User + list_serializer_class = BulkListSerializer diff --git a/apps/users/templates/users/user_list.html b/apps/users/templates/users/user_list.html index 2017510ea..189808878 100644 --- a/apps/users/templates/users/user_list.html +++ b/apps/users/templates/users/user_list.html @@ -22,7 +22,7 @@ {% for user in object_list %}