Ограничить администратора Django, чтобы разрешить только суперпользователям - PullRequest
2 голосов
/ 13 октября 2011

В настоящее время я создаю приложение Django, которое использует сервер аутентификации LDAP.Из-за этого всем аутентифицированным пользователям ldap также разрешается входить в интерфейс администратора.Можно ли заблокировать интерфейс администратора только для суперпользователей?

1 Ответ

5 голосов
/ 13 октября 2011

Этого не должно быть. Наличие учетной записи пользователя не означает, что ее можно использовать для входа в систему администратора.

Для доступа к админу, User.is_staff == True, и это не по умолчанию. Просто установите флажок только для реальных пользователей, которым вы хотите иметь возможность войти в систему для администратора, и все хорошо.

Если по какой-то причине пользователи LDAP были добавлены с is_staff, установленным на True, вы можете просто сделать:

User.objects.update(is_staff=False)

И только для пользователей, которым вы хотите предоставить доступ:

u=User.objects.get(username='admin_user')
u.is_staff = True
u.save()
...