src/notes/api/views/auth.py
author ymh <ymh.work@gmail.com>
Tue, 18 Jul 2017 17:08:27 +0200
changeset 117 9864fe2067cd
parent 101 e165aa89ac82
child 130 78246db1cbac
permissions -rw-r--r--
Add api endpoints for group management
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
99
18fa4a1fa9e9 Add group endpoint.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     1
import logging
18fa4a1fa9e9 Add group endpoint.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     2
18fa4a1fa9e9 Add group endpoint.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     3
from django.contrib.auth.models import Group
18fa4a1fa9e9 Add group endpoint.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     4
from rest_framework import viewsets
18fa4a1fa9e9 Add group endpoint.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     5
117
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
     6
from ..serializers.auth import (GroupSerializer, WriteGroupSerializer, DetailGroupSerializer)
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
     7
from ..permissions.auth import (GroupPermission, )
99
18fa4a1fa9e9 Add group endpoint.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     8
18fa4a1fa9e9 Add group endpoint.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     9
logger = logging.getLogger(__name__)
18fa4a1fa9e9 Add group endpoint.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    10
18fa4a1fa9e9 Add group endpoint.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    11
18fa4a1fa9e9 Add group endpoint.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    12
class GroupViewSet(viewsets.ModelViewSet):
18fa4a1fa9e9 Add group endpoint.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    13
    serializer_class = GroupSerializer
117
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
    14
    permission_classes = (GroupPermission, )
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
    15
    lookup_field = 'name'
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
    16
99
18fa4a1fa9e9 Add group endpoint.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    17
    def get_queryset(self):
18fa4a1fa9e9 Add group endpoint.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    18
        return Group.objects.all()
117
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
    19
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
    20
    serializers = {
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
    21
        'create': WriteGroupSerializer,
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
    22
        'update': WriteGroupSerializer,
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
    23
        'retrieve': DetailGroupSerializer,
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
    24
    }
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
    25
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
    26
    def get_serializer_class(self):
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 101
diff changeset
    27
        return self.serializers.get(self.action, GroupSerializer)