From 7df355d92eb87e475ea251a0c6ed2d44a2315e5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Fri, 26 Apr 2013 10:28:13 +0200 Subject: [PATCH] Added the UserDatail API --- greenmine/base/api.py | 6 ++++++ greenmine/base/serializers.py | 3 ++- greenmine/base/urls.py | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/greenmine/base/api.py b/greenmine/base/api.py index b2e0432e..0972a726 100644 --- a/greenmine/base/api.py +++ b/greenmine/base/api.py @@ -96,6 +96,12 @@ class UserList(generics.ListCreateAPIView): pass +class UserDetail(generics.RetrieveUpdateDestroyAPIView): + model = User + serializer_class = UserSerializer + permission_classes = (IsAuthenticated,) + + class Login(APIView): def post(self, request, format=None): username = request.DATA.get('username', None) diff --git a/greenmine/base/serializers.py b/greenmine/base/serializers.py index 5c55fdc6..53f482f1 100644 --- a/greenmine/base/serializers.py +++ b/greenmine/base/serializers.py @@ -58,7 +58,8 @@ class UserSerializer(serializers.ModelSerializer): class Meta: model = User - fields = ('id', 'username', 'first_name', 'last_name', 'color', 'is_active', 'projects') + fields = ('id', 'username', 'first_name', 'last_name', 'email', 'color', 'description', + 'default_language', 'default_timezone', 'is_active', 'photo', 'projects') def get_projects(self, obj): return [x.id for x in obj.projects.all()] diff --git a/greenmine/base/urls.py b/greenmine/base/urls.py index 6bc4ea5f..43489811 100644 --- a/greenmine/base/urls.py +++ b/greenmine/base/urls.py @@ -9,6 +9,7 @@ urlpatterns = format_suffix_patterns(patterns('', url(r'^auth/login/$', api.Login.as_view(), name='login'), url(r'^auth/logout/$', api.Logout.as_view(), name='logout'), url(r'^users/$', api.UserList.as_view(), name="user-list"), + url(r'^users/(?P[0-9]+)/$', api.UserDetail.as_view(), name="user-detail"), url(r'^roles/$', api.RoleList.as_view(), name="user-roles"), url(r'^search/$', api.Search.as_view(), name="search"), url(r'^$', api.ApiRoot.as_view(), name='api_root'),