from rest_framework.permissions import BasePermission
from users.models import Users


class IsAdminOrMaintainer(BasePermission):
    def has_permission(self, request, view):
        user = request.user

        if not isinstance(user, Users):
            return False

        is_admin = user.is_superuser or user.is_staff
        is_maintainer = getattr(user, "role", "").lower() == "maintainer"

        return is_admin or is_maintainer
