src/notes/api/permissions/auth.py
author ymh <ymh.work@gmail.com>
Tue, 28 Aug 2018 16:57:31 +0200
changeset 148 fcce52a159bc
parent 142 56850f5c73f6
permissions -rw-r--r--
remove react-bootstrap - add a login dropdown component - add a group login component - remove reference to react-bootstrap
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
117
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
"""
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
Permissions for auth objects
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
"""
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
import logging
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
from rest_framework import permissions
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
from rest_framework.permissions import BasePermission
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
logger = logging.getLogger(__name__)
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
class GroupPermission(BasePermission):
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    """
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    Pemissions for Groups objects
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    """
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    def has_permission(self, request, view):
142
56850f5c73f6 - upgrade libraries
ymh <ymh.work@gmail.com>
parents: 117
diff changeset
    18
        return request.user and request.user.is_authenticated
117
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    def has_object_permission(self, request, view, obj):
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
        if request.method not in permissions.SAFE_METHODS:
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
            return request.user == obj.profile.owner
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
        return True