Пользователь Django get_all_permissions () пуст, пока заданы user_permissions - PullRequest
25 голосов
/ 17 января 2010

Я добавил некоторые разрешения пользователю через интерфейс администратора.

По какой-то причине все функции Пермь не работают, например,

>>> user.get_all_permissions()
set([])

Но прямой доступ к таблице работает:

>>> user.user_permissions.all()
(list of permissions as expected)

Что может вызвать сбой "get_all_permissions" (и всех функций perm, таких как has_perm ())?

Спасибо

1 Ответ

42 голосов
/ 03 мая 2010

была такая же проблема.Я предполагаю, что в какой-то момент вы использовали самодельный AUTHENTICATION_BACKEND?Большинство примеров в сети (ВКЛЮЧАЯ ДОКУМЕНТАЦИЮ DJANGO 1.0!) Не упоминают о том, что бэкэнды также отвечают за обработку разрешений.

Однако, не важно: в каком бы бэкэнд-файле ни находился ваш код, включайтеэтот импорт:

from django.contrib.auth.backends import ModelBackend

Затем убедитесь, что написанный вами Backend расширяет ModelBackend, например:

class EmailBackend(ModelBackend):

Должно быть в порядке.

...