See #152: added permission fields on user model and corresponding API permission

This commit is contained in:
Eliot Berriot 2018-05-18 18:47:35 +02:00
parent 23e27e0dd9
commit ff65a4b935
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
5 changed files with 159 additions and 17 deletions

View file

@ -0,0 +1,19 @@
from rest_framework.permissions import BasePermission
class HasUserPermission(BasePermission):
"""
Ensure the request user has the proper permissions.
Usage:
class MyView(APIView):
permission_classes = [HasUserPermission]
required_permissions = ['federation']
"""
def has_permission(self, request, view):
if not hasattr(request, 'user') or not request.user:
return False
if request.user.is_anonymous:
return False
return request.user.has_permissions(*view.required_permissions)