Les Django get_all_permissions utilisateur () est vide tandis que user_permissions est défini
-
21-09-2019 - |
Question
J'ai ajouté quelques autorisations à un utilisateur via l'interface d'administration.
De quelque raison de toutes les fonctions de perm échouent, par exemple
>>> user.get_all_permissions()
set([])
Mais accéder directement à la table, fonctionne:
>>> user.user_permissions.all()
(list of permissions as expected)
Que peut provoquer des "get_all_permissions" (et toutes les fonctions de perm comme has_perm ()) à l'échec?
Merci
La solution
eu le même problème. Je suppose que, à un moment donné, vous avez utilisé un AUTHENTICATION_BACKEND auto-conçu? La plupart des exemples sur le net de ce (Y COMPRIS LA DOCUMENTATION! DJANGO 1.0) ne mentionnent pas que les backends sont responsables des autorisations de traitement ainsi.
Cependant, pas trop grave: Quel que soit le fichier backend votre code réside, inclure cette importation:
from django.contrib.auth.backends import ModelBackend
Ensuite, assurez-vous que le backend que vous avez écrit étend ModelBackend, par exemple:.
class EmailBackend(ModelBackend):
devrait être bien.