Files
rogaining_srv/rog/permissions.py

26 lines
965 B
Python
Raw Normal View History

2024-07-25 00:57:48 +00:00
2024-07-24 00:38:32 +00:00
from rest_framework import permissions
2024-07-25 00:57:48 +00:00
from .models import Team,Member
2024-07-24 00:38:32 +00:00
class IsMemberOrTeamOwner(permissions.BasePermission):
def has_object_permission(self, request, view, obj):
2024-07-25 00:57:48 +00:00
# Check if user is a member of the team or the team owner
return request.user in obj.team.members.all() or request.user == obj.team.owner
class IsTeamOwner(permissions.BasePermission):
def has_object_permission(self, request, view, obj):
if isinstance(obj, Team):
return obj.owner == request.user
elif isinstance(obj, Member):
return obj.team.owner == request.user
return False
2024-08-26 09:02:01 +00:00
class IsTeamOwnerOrMember(permissions.BasePermission):
def has_permission(self, request, view):
team_id = view.kwargs.get('team_id')
if not team_id:
return False
team = Team.objects.get(id=team_id)
return team.owner == request.user or team.members.filter(user=request.user).exists()