24

Я добавил некоторые разрешения пользователю через интерфейс администратора.Пользователь Django get_all_permissions() пуст при установке user_permissions

С какой-то причиной всех функций завивки строя, например

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

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

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

Что может вызвать «get_all_permissions» (и все функции проницаемости, как has_perm()) сбой?

Thanks

+2

Что такое серверы аутентификации в файле settings.py? – satoru

ответ

42

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

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

from django.contrib.auth.backends import ModelBackend 

Затем убедитесь, что в бэкэнде Вы писали расширяет ModelBackend, например:

class EmailBackend(ModelBackend): 

В случае, если будь умницей.

+0

Да, я узнал об этом позже. Я модифицировал бэкэнд для поддержки не зависящих от регистрационных имен пользователей и нарушил права доступа. – Boris

+0

+1, если бы эта точная проблема! – Agos

+2

Я дал вам +1 b/c, вы звучите как хороший парень – abbood

 Смежные вопросы

  • Нет связанных вопросов^_^