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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top