Django get_all_permissions utente () è vuoto mentre user_permissions è impostato
-
21-09-2019 - |
Domanda
ho aggiunto alcune autorizzazioni per un utente attraverso l'interfaccia di amministrazione.
Da qualche ragione tutte le funzioni perm non riescono, per esempio
>>> user.get_all_permissions()
set([])
Ma accedendo direttamente al tavolo, funziona:
>>> user.user_permissions.all()
(list of permissions as expected)
Che cosa può causare i "get_all_permissions" (e tutte le funzioni perm come has_perm ()) per fallire?
Grazie
Soluzione
ha avuto lo stesso problema. Sto indovinando che a un certo punto si è utilizzato un AUTHENTICATION_BACKEND auto-artigianale? La maggior parte degli esempi sulla rete di questo (compresa la DJANGO 1.0 documentazione!) Non menzionano che i backend sono responsabili per le autorizzazioni di gestione come bene.
Tuttavia, non disperatevi: In qualunque backend il file il codice risiede, includono questa importazione:
from django.contrib.auth.backends import ModelBackend
Quindi assicurarsi che il backend hai scritto si estende ModelBackend, per esempio:.
class EmailBackend(ModelBackend):
dovrebbe andare bene.