from rest_framework.permissions import BasePermission

class IsEscritor(BasePermission):
    ''' Permissão para usuários escritores, 
        que podem criar e editar artigos.
    '''

    message = 'Você não tem permissão para criar ou editar esse artigo'

    def has_permission(self, request, view):
        user = getattr(request, "user", None)
        return bool(user and getattr(user, "is_authenticated", False) and getattr(user, "is_escritor", False))

class IsLeitorEspecial(BasePermission):
    ''' Permissão para usuários leitores especiais, 
        que podem acessar conteúdo especial (textos com jindungo).
    '''

    message = 'Você não tem permissão para acessar esse artigo especial'

    def has_object_permission(self, request, view, obj):
        if obj.is_artigo_picante:
            user = getattr(request, "user", None)
            return bool(user and getattr(user, "is_authenticated", False) and getattr(user, "is_leitor_especial", False))
        return True
