Przydzieliłem uprawnienia użytkownika w mojej aplikacji Django 1.5. Kiedy lista wszystkich uprawnień użytkownika zDjango: user.has_perm zawsze prawdziwe, a użytkownik nie jest superużytkownikiem. Czemu?
In [1]: user.get_all_permissions()
Out[1]: set([u'profile.change_profile'])
widzę jeden gość (co jest poprawne i chciał). Użytkownik również nie jest superużytkownikiem, a nie administratorem.
In [2]: user.is_superuser
Out[2]: False
Jednakże jeśli próbuję użyć user.has_perm
, zawsze dotrzesz True
jako powrót do jakiegokolwiek złożonego wniosku uprawnień.
In [3]: user.has_perm('random_permission')
Out[3]: True
Zachowanie, którego mógłbym się spodziewać, jeśli użytkownik jest superużytkownikiem/administratorem. Dlaczego non-superuser uzyskuje zawsze True
dla każdego żądania? Czy brakowało mi jakiegoś ustawienia?
Czy używasz niestandardowego modelu 'User' lub mechanizmu uwierzytelniania? Może przeczytać na dokumentach tutaj: https://docs.djangoproject.com/en/dev/topics/auth/customizing/#handling-authorization-in-custom-backends –