Ich habe die Berechtigung eines Benutzers in meiner Django 1.5 App zugewiesen. Wenn ich alle Benutzerberechtigungsliste mitDjango: user.has_perm immer wahr und Benutzer ist nicht Superuser. Warum?
In [1]: user.get_all_permissions()
Out[1]: set([u'profile.change_profile'])
kann ich eine Erlaubnis sehen (was richtig ist, und wollte). Der Benutzer ist auch kein Superuser, kein Administrator.
In [2]: user.is_superuser
Out[2]: False
aber wenn ich versuche, user.has_perm
zu verwenden, habe ich immer True
als Gegenleistung für jeden eingereichten Erlaubnisanfrage.
In [3]: user.has_perm('random_permission')
Out[3]: True
Ein Verhalten, das ich erwarten würde, wenn der Benutzer ein Superuser/admin ist. Warum erhält ein Nicht-Superuser immer True
für jede Anfrage? Habe ich irgendeine Einstellung verpasst?
Verwenden Sie ein benutzerdefiniertes Benutzermodell oder ein Authentifizierungs-Back-End? Vielleicht lesen Sie die Dokumente hier: https://docs.djangoproject.com/en/dev/topics/auth/customizing/#handling-authorization-in-custom-backends –