from rest_framework import permissions from rest_framework.request import Request from apps.groups.models import Group, GroupMember, GroupRole class IsGroupAdmin(permissions.BasePermission): """Only group admins can perform the action.""" def has_object_permission(self, request: Request, view: object, obj: Group) -> bool: return GroupMember.objects.filter( group=obj, user=request.user, role=GroupRole.ADMIN, ).exists() class IsGroupMember(permissions.BasePermission): """Only group members (any role) can perform the action.""" def has_object_permission(self, request: Request, view: object, obj: Group) -> bool: return GroupMember.objects.filter( group=obj, user=request.user, ).exists()