Блокировка пользователя по рейтингу

Здравствуйте. Безрезультатно пытался найти ответ на свой вопрос, поэтому задам его здесь.
Как можно реализовать блокировку пользователя при достижении им определенного количества отрицательного рейтинга? Например юзер получает в рейтинг -200 и больше не может залогинится.
Заранее спасибо!

8 комментариев

avatar
\classes\hooks\HookLogout.class.php
<?php
//===============================================================
class HookLogout extends Hook{
//===============================================================
	public function RegisterHook(){
		$this->AddHook('init_action','InitAction',__CLASS__,1000);
	}
//===============================================================
	public function InitAction(){
		$iRatingBlocked=-200;//рейтинг для бокировки
		if($oUserCurrent=$this->User_GetUserCurrent()){
			if(!$oUserCurrent->isAdministrator() && $oUserCurrent->getRating()<=$iRatingBlocked) $this->User_Logout();
		}
	}
//===============================================================
}
?>

Пользователя не являющимся админом и имеющим рейтинг меньше или равным $iRatingBlocked=-200 будет постоянно разлогинивать
avatar
Большое спасибо! Практически как хотелось, но есть одно но! Сайт работает по закрытой системе. Когда пользователь пытается залогинится, ему это удается и он видит главную страницу. Соответственно при переходе по ссылке или обновлении страницы юзера выкидывает.
Можно как то исключить такой «Одноразовый логин»?
avatar
Т.е. вам фактически нужно банить юзера, а не разлогинивать…
avatar
Вы более точно сформировали мои мысли :)
avatar
avatar
Панелька стоит. Но хотелось бы саморегуляции.
avatar
ну тогда сделайте плюс к тому коду ещё и редирект на страницу ошибки:

return Router::Action('error');
avatar
Благодарю!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.