Найти - Пользователи
Полная версия: Эмуляция режима пользователя для superuser
Начало » Django » Эмуляция режима пользователя для superuser
1
Elaphe
Стоит такая творческая задача.
Есть пользователь с правами superuser
Хочется дать суперюзеру возможность выбирать из-под какого пользователя работать - и после этого отображать сайт так, как будто он и есть этот выбранные пользователь. Чтобы от имени этого пользователя вносить изменения, все права были как у него и т.д.
Для аутентификации используется TokenAuthentication (мы используем Django Rest Framework)
Мне пока приходят в голову идеи всяких костылей типа сохранить в параметрах сессии ID суперюзера (или даже просто параметр типа superuser=True), а в заголовок запроса подставить токен пользователя.
Но:
1) беспокоят вопросы безопасности
2) не оставляет мысль, что я изобретаю велосипед
Может, знает кто-нибудь какие-то хорошие, изящные и безопасные способы так сделать (в идеале работающие не просто с Django, а с DRF)?
Elaphe
Пока моя основная идея - сделать через сессии и middleware
При эмуляции в сессии создается параметр, скажем user_emulation='emulated_user'
middleware проверяет сессию на наличие этого параметра.
Если он есть, то при запросе - подставляет в реквест вместо суперюзера emulated_user
Если при респонте - вместо emulated_user подставляет назад суперюзера.
Реально?
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