Django usuário get_all_permissions() é vazio enquanto user_permissions é definido
-
21-09-2019 - |
Pergunta
Eu adicionei algumas permissões para um usuário através da interface de administração.
De alguma razão, todos os perm funções falhar, e.g
>>> user.get_all_permissions()
set([])
Mas acessando diretamente a tabela, funciona:
>>> user.user_permissions.all()
(list of permissions as expected)
O que pode causar o "get_all_permissions" (e todos os perm funções como has_perm()) falhar ?
Obrigado
Solução
tive o mesmo problema.Eu estou supondo que em algum momento você tiver usado uma auto-criado AUTHENTICATION_BACKEND?Mais exemplos na net deste (INCLUINDO O DJANGO 1.0 DOCUMENTAÇÃO!) não menciona que a infra-estrutura que são responsáveis pela manipulação de permissões bem.
No entanto, nada demais:Em qualquer arquivo de back-end o código reside, incluir esta importação:
from django.contrib.auth.backends import ModelBackend
Em seguida, certifique-se de que o Back-end que você escreveu estende-se ModelBackend, por exemplo:
class EmailBackend(ModelBackend):
Deve ser fino.