Проверка на бан

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Vindective
Сообщения: 87
Зарегистрирован: 2014.04.18, 14:21

Проверка на бан

Сообщение Vindective »

Всем привет! Подскажите как сделать такую штуку. Есть функционал бана у админа. Если забаненый пользователь не залогинен, то при логине ему выкинет сообщение том что он забанен. Но если он залогинен, и его забанили нужно его разлогинивать. Подскажите пожалуйста как сделать
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Проверка на бан

Сообщение zelenin »

Vindective писал(а):Но если он залогинен, и его забанили нужно его разлогинивать.
зачем? давать ему доступ только на страницу с сообщением о бане. Иначе он не увидит никакого сообщения
Vindective
Сообщения: 87
Зарегистрирован: 2014.04.18, 14:21

Re: Проверка на бан

Сообщение Vindective »

zelenin писал(а):зачем? давать ему доступ только на страницу с сообщением о бане. Иначе он не увидит никакого сообщения
Подскажите как сделать
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Проверка на бан

Сообщение rugabarbo »

Лично я ничё не понял. Поколение пепси уверенно вошло в разработку и делает нашу жизнь интереснее...
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Проверка на бан

Сообщение zelenin »

Vindective писал(а):
zelenin писал(а):зачем? давать ему доступ только на страницу с сообщением о бане. Иначе он не увидит никакого сообщения
Подскажите как сделать
давайте разговаривать научитесь, потом программировать.
YunX
Сообщения: 87
Зарегистрирован: 2011.07.06, 12:53

Re: Проверка на бан

Сообщение YunX »

Если используете роли, то можно сделать роль "Ограниченный пользователь" и через AccessControl оставить некоторые доступы для таких пользователей (например: контактная связь с админом, ....).
Если ролей нет как таковых, то можно просто:

Код: Выделить всё

if (Yii::$app->getUser()->getIdentity()->status === User::status_banned) {
    return $this->redirect ('ban_page');
} 
Если все же решать задачу прямо так, как поставлена, то надо при изменении статуса на "бан" перегенерировать Токен пользователя хранящийся в базе данных.
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Проверка на бан

Сообщение rugabarbo »

YunX писал(а):Если все же решать задачу прямо так, как поставлена, то надо при изменении статуса на "бан" перегенерировать Токен пользователя хранящийся в базе данных.
Как по-вашему работает этот токен? Мне вот кажется, что после его регенерации ровным счётом ничего не произойдёт на стороне залогиненого пользователя. Ошибаюсь? (:
YunX
Сообщения: 87
Зарегистрирован: 2011.07.06, 12:53

Re: Проверка на бан

Сообщение YunX »

rugabarbo писал(а):
YunX писал(а):Если все же решать задачу прямо так, как поставлена, то надо при изменении статуса на "бан" перегенерировать Токен пользователя хранящийся в базе данных.
Как по-вашему работает этот токен? Мне вот кажется, что после его регенерации ровным счётом ничего не произойдёт на стороне залогиненого пользователя. Ошибаюсь? (:
Сорян, не токен а ключ (-ключи) сессии, хранящийся в базе данных.

Подразумевая, что они там ведутся и есть проверка ключа с кукисами пользователя где-то на уровне beforeAction
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Проверка на бан

Сообщение zelenin »

я прошу прощения, а метода logout() в yii2 нет?)
Vindective
Сообщения: 87
Зарегистрирован: 2014.04.18, 14:21

Re: Проверка на бан

Сообщение Vindective »

zelenin писал(а):я прошу прощения, а метода logout() в yii2 нет?)
Нет, т.к. использую эту модели
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Проверка на бан

Сообщение andrei.obuhovski »

Vindective писал(а): Нет, т.к. использую эту модели
попробуйте

Код: Выделить всё

Yii::$app->getUser()->logout() 
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Проверка на бан

Сообщение Onotole »

Vindective писал(а):
zelenin писал(а):я прошу прощения, а метода logout() в yii2 нет?)
Нет, т.к. использую эту модели
А это что тогда?
https://github.com/yiisoft/yii2/blob/ma ... r.php#L322
Ответить