Django -Benutzer get_all_permissions () ist leer, während User_permissions festgelegt ist
-
21-09-2019 - |
Frage
Ich habe einem Benutzer über die Admin -Schnittstelle einige Berechtigungen hinzugefügt.
Aus irgendeinem Grund scheitern alle Perm -Funktionen, z. B.
>>> user.get_all_permissions()
set([])
Zugriff jedoch direkt auf die Tabelle, funktioniert:
>>> user.user_permissions.all()
(list of permissions as expected)
Was kann die "get_all_permissions" (und alle Perm -Funktionen wie Has_Perm ()) verursachen?
Vielen Dank
Lösung
hatte das gleiche Problem. Ich vermute, dass Sie irgendwann eine selbst hergestellte Authentifizierung verwendet haben? Die meisten Beispiele im Internet davon (einschließlich der Django 1.0 -Dokumentation!) Erwähnen Sie nicht, dass die Backends auch für die Behandlung von Berechtigungen verantwortlich sind.
No Biggie: In welcher Backend -Datei, in der Ihr Code liegt, geben Sie jedoch den folgenden Import an:
from django.contrib.auth.backends import ModelBackend
Stellen Sie dann sicher, dass das Backend Sie geschrieben haben erweitert Modellbackend, z. B.:
class EmailBackend(ModelBackend):
Sollte gut sein.