Найти - Пользователи
Полная версия: трабл с permissions
Начало » Django » трабл с permissions
1
tier
Приветствую. С проверкой разрешений столкнулся впервые, поэтому, скорее всего, это я что-то не так делаю. Пожалуйста, подскажите что именно.
Django 1.2.1. Database backend - sqlite3.
Есть приложение abc. В нем модель TimeTable. Есть пользователь (активный и все с ним хорошо). Даю ему в админке все три права на эту модель. Сохраняю.
В django shell для этого пользователя делаю:
u.user_permissions.all()
Выводит:
[<Permission: abc | time table | Can add time table>, <Permission: abc | time table | Can change time table>, <Permission: abc | time table | Can delete time table>]
Теперь пытаюсь проверить у пользователя наличие нужного разрешения:
u.has_perm(“abc.add_timetable”)
Отвечает:
False

В чем может быть дело?
Имя разрешения пишу правильно - глянул в таблице auth_permission:
id = 52
name = Can add time table
content_type_id = 18
codename = add_timetable
да там и путаться не в чем - просто к нижнему регистру имя модели приводим. А не работает!

Подскажите, в чем косяк. Спасибо
romankrv
Попробуй еще раз прочитать доку. http://docs.djangoproject.com/en/dev/topics/auth/#methods
Но у тебя скорее всего просто не сохранено для инстанции `` u `` проверь в админке там должно быть выделено в поле прав то что ты хочешь чтобы было add_timetable=True
tier
Проблема решена.
Причина была в собственном authentication backend - в нем не было нужных методов проверки разрешений. Переписал backend наследованием от django.contrib.auth.backends.ModelBackend и переопределением только одного метода - authenticate.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB