diff --git a/mayan/apps/user_management/api_views.py b/mayan/apps/user_management/api_views.py index eeef513185..55a044e5c5 100644 --- a/mayan/apps/user_management/api_views.py +++ b/mayan/apps/user_management/api_views.py @@ -2,7 +2,8 @@ from __future__ import absolute_import from django.contrib.auth.models import User -from rest_framework import generics +from rest_framework import generics, views +from rest_framework.response import Response from rest_api.filters import MayanObjectPermissionsFilter from rest_api.permissions import MayanPermission @@ -13,10 +14,6 @@ from .serializers import UserSerializer class APIUserListView(generics.ListCreateAPIView): - """ - Returns a list of all the folders. - """ - serializer_class = UserSerializer queryset = User.objects.all() @@ -25,12 +22,16 @@ class APIUserListView(generics.ListCreateAPIView): mayan_object_permissions = {'GET': [PERMISSION_USER_VIEW]} mayan_view_permissions = {'POST': [PERMISSION_USER_CREATE]} + def get(self, *args, **kwargs): + """Returns a list of all the users.""" + return super(APIUserListView, self).get(*args, **kwargs) + + def post(self, *args, **kwargs): + """Create a new user.""" + return super(APIUserListView, self).post(*args, **kwargs) + class APIUserView(generics.RetrieveUpdateDestroyAPIView): - """ - Returns the selected folder details. - """ - serializer_class = UserSerializer queryset = User.objects.all() @@ -41,3 +42,27 @@ class APIUserView(generics.RetrieveUpdateDestroyAPIView): 'PATCH': [PERMISSION_USER_EDIT], 'DELETE': [PERMISSION_USER_DELETE] } + + def delete(self, *args, **kwargs): + """Delete the selected user.""" + return super(APIUserView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """Return the details of the selected user.""" + return super(APIUserView, self).get(*args, **kwargs) + + def patch(self, *args, **kwargs): + """Edit the selected user.""" + return super(APIUserView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """Edit the selected user.""" + return super(APIUserView, self).put(*args, **kwargs) + + +class APICurrentUserView(views.APIView): + def get(self, request): + """Return the details of the current user.""" + + serializer = UserSerializer(request.user, context={'request': request}) + return Response(serializer.data) diff --git a/mayan/apps/user_management/urls.py b/mayan/apps/user_management/urls.py index 8e39795177..a7a58b362e 100644 --- a/mayan/apps/user_management/urls.py +++ b/mayan/apps/user_management/urls.py @@ -1,6 +1,6 @@ from django.conf.urls import patterns, url -from .api_views import APIUserListView, APIUserView +from .api_views import APICurrentUserView, APIUserListView, APIUserView urlpatterns = patterns('user_management.views', url(r'^user/list/$', 'user_list', (), 'user_list'), @@ -23,4 +23,5 @@ urlpatterns = patterns('user_management.views', api_urls = patterns('', url(r'^users/$', APIUserListView.as_view(), name='user-list'), url(r'^users/(?P[0-9]+)/$', APIUserView.as_view(), name='user-detail'), + url(r'^users/current/$', APICurrentUserView.as_view(), name='user-current'), )