20 lines
570 B
Python
20 lines
570 B
Python
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)
|