funkwhale/api/funkwhale_api/users/permissions.py

24 wiersze
675 B
Python
Czysty Zwykły widok Historia

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']
"""
2018-06-09 13:36:16 +00:00
def has_permission(self, request, view):
2018-06-09 13:36:16 +00:00
if not hasattr(request, "user") or not request.user:
return False
if request.user.is_anonymous:
return False
2018-06-09 13:36:16 +00:00
operator = getattr(view, "permission_operator", "and")
return request.user.has_permissions(
2018-06-09 13:36:16 +00:00
*view.required_permissions, operator=operator
)