Expose Limited User Info Through API 67/52267/1
authorSawyer Bergeron <sbergeron@iol.unh.edu>
Fri, 16 Feb 2018 20:50:22 +0000 (15:50 -0500)
committerSawyer Bergeron <sbergeron@iol.unh.edu>
Fri, 16 Feb 2018 20:50:22 +0000 (15:50 -0500)
Jira: PHAROS-362

Exposes info such as username and user email throught the API to facilitate
better backend integration

Change-Id: I8948f399000ffe41d5b75941f4a4195caaea91f4
Signed-off-by: Sawyer Bergeron <sbergeron@iol.unh.edu>
dashboard/src/api/serializers.py
dashboard/src/api/urls.py
dashboard/src/api/views.py

index 1cc621a..10e1975 100644 (file)
@@ -10,6 +10,7 @@
 
 from rest_framework import serializers
 
+from account.models import UserProfile
 from notifier.models import Notifier
 from booking.models import Booking
 from dashboard.models import Server, Resource, ResourceStatus
@@ -44,3 +45,9 @@ class NotifierSerializer(serializers.ModelSerializer):
     class Meta:
         model = Notifier
         fields = ('id', 'title', 'content', 'user', 'sender', 'message_type', 'msg_sent')
+
+class UserSerializer(serializers.ModelSerializer):
+    username = serializers.CharField(source='user.username')
+    class Meta:
+        model = UserProfile
+        fields = ('user', 'username', 'ssh_public_key', 'pgp_public_key', 'email_addr')
index 71cd3ef..c2cd510 100644 (file)
@@ -34,6 +34,7 @@ router.register(r'servers', ServerViewSet)
 router.register(r'bookings', BookingViewSet)
 router.register(r'resource_status', ResourceStatusViewSet)
 router.register(r'notifier', NotifierViewSet)
+router.register(r'user', UserViewSet)
 
 urlpatterns = [
     url(r'^', include(router.urls)),
index c16d57d..b873ef1 100644 (file)
@@ -16,6 +16,7 @@ from rest_framework import viewsets
 from rest_framework.authtoken.models import Token
 
 from api.serializers import *
+from account.models import UserProfile
 from booking.models import Booking
 from dashboard.models import Resource, Server, ResourceStatus
 
@@ -45,6 +46,10 @@ class NotifierViewSet(viewsets.ModelViewSet):
     queryset = Notifier.objects.none()
     serializer_class = NotifierSerializer
 
+class UserViewSet(viewsets.ModelViewSet):
+    queryset = UserProfile.objects.all()
+    serializer_class = UserSerializer
+
 @method_decorator(login_required, name='dispatch')
 class GenerateTokenView(View):
     def get(self, request, *args, **kwargs):