src/notes/api/permissions/auth.py
author ymh <ymh.work@gmail.com>
Wed, 18 Jul 2018 17:32:09 +0200
changeset 142 56850f5c73f6
parent 117 9864fe2067cd
permissions -rw-r--r--
- upgrade libraries - python 3.7 compatibility - First protocol management implementation
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