Несколько сессий пользователей в одном приложении

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
nikitakls
Сообщения: 47
Зарегистрирован: 2011.01.25, 08:18

Несколько сессий пользователей в одном приложении

Сообщение nikitakls »

Разрабатываю админку для приложения.

Одна из функций админки, залогинится под любым пользователем и зайти в его личный кабинет.

Не подскажете каким образом это лучше реализовать.

1. Можно ли как то установить для разных пользователей на одном браузере разный sessionID
2. Или придется расширять class WebUser для работы с несколькими пользователями одновременно.
Аватара пользователя
mitaichik
Сообщения: 512
Зарегистрирован: 2010.09.24, 21:18
Откуда: Россия, Санкт-Петербург

Re: Несколько сессий пользователей в одном приложении

Сообщение mitaichik »

nikitakls писал(а):1. Можно ли как то установить для разных пользователей на одном браузере разный sessionID
ИМХО - бредовая идея. И вряд ли это можно вообще.

Вариант 1: делаешь какой-то пароль который действует для всех юзеров. Имхо - тоже херня, потому-что во-первых небезапасно, во-вторых получается что админ имеет возможность работать от именю юзера, и потом не отследить кто что натворил.

Вариант 2: Позволить админу работать с данными любого пользователя. Делается с пом. RBAC

Вариант 3: Входишь сначала под админом. Оттуда уже входишь под юзером, и где-то сохраняшь в сессии, мол, я админ, но работаю под юзером. При выходе возвращаешся опять к админу. Проблема - та-же что у первого варианта - не отследить. Ее (проблему), уонечно можно как-то обыграть, но все-таки как-то неправильно...
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Несколько сессий пользователей в одном приложении

Сообщение anton44eg »

была похожая тема
viewtopic.php?f=4&t=7315
nikitakls
Сообщения: 47
Зарегистрирован: 2011.01.25, 08:18

Re: Несколько сессий пользователей в одном приложении

Сообщение nikitakls »

Решил пока действовать следующим образом
1. У админа есть id и aid - пользователь под которым нужно будет выполнять команды.
2. У обысного пользователя id=aid
3. При логине под другим пользователем меняем aid
4. При действии смотрим id=aid и если id!=aid проверяем админ ли это и выполняем команду под нужным пользователем.
5. Если нужно что-то отслеживать то в логи пишем id

не знаю насколько это good
Ответить