J'utilise Django 1.9. Lorsque j'ai essayé d'ajouter PermissionRequiredMixin à ma vue basée sur la classe, il semble ne pas fonctionner comme prévu. J'ai créé un nouvel utilisateur dans un groupe auth. Ce groupe auth_group n'a aucune autorisation pour les applications ou les modèles. Ce nouvel utilisateur n'est pas un super-utilisateur ou un utilisateur admin. Mais l'application n'empêche pas cet utilisateur d'accéder à une vue particulière qui nécessite permission_required.Django - PermissionRequiredMixin avec le modèle utilisateur personnalisé ainsi que AUTHENTICATION_BACKENDS
Tout d'abord, voici ce que j'ai essayé de faire en sorte que l'utilisateur n'a pas la permission:
user.get_all_permissions() # return set() - empty permission, which is correct.
user.is_superuser # return false, which is correct.
user.has_perm('myapp.add_something or even any words that make no sense') # always return true, which is very weird.
L'application a le modèle utilisateur personnalisé et utilise également django-allauth comme AUTHENTICATION_BACKENDS. Je ne suis pas sûr si PermissionRequiredMixin va vérifier user.has_perm() et il renvoie toujours vrai, c'est pourquoi la vérification de l'autorisation ne fonctionne pas comme prévu? J'ai également essayé l'ancienne méthode pour vérifier l'autorisation dans urls.py. Cela n'empêche pas l'utilisateur d'y accéder, donc je ne pense pas que ce soit le problème de l'utilisation de PermissionRequiredMixin.
urlpatterns = patterns('',
(r'^vote/', permission_required('polls.can_vote')(VoteView.as_view())),
)
J'ai cherché des jours aussi, merci dieu j'ai trouvé ça. Je ne peux pas croire qu'ils n'expliquent pas cela dans les docs – diek