Блокировка пользователя.

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
aragraf
Сообщения: 1
Зарегистрирован: 2014.10.11, 00:41

Блокировка пользователя.

Сообщение aragraf »

Добрый день. Помогите решить задачу пожалуйста. Необходимо отключить пользователя который ввел N(5) раза не верный пароль или имя пользователя.
И сделат настраиваемый с помощью Yii::app()->params.
На основе этого кода.

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

/**
     * Authenticates the password.
     * This is the 'authenticate' validator as declared in rules().
     */
    public function authenticate($attribute,$params)
    {
        if(!$this->hasErrors())
        {
            $this->_identity=new UserIdentity($this->username,$this->password);
                        var_dump($this->_identity); exit;
            if(!$this->_identity->authenticate()) {
                if ($this->_identity->errorCode == UserIdentity::ERROR_USER_DISABLED) 
                    $this->addError('username','Login for this user has been disabled, please contact Catalyst for more information.');
                else 
                    $this->addError('password','Incorrect username or password.');
            }
        }
    }

    /**
     * Logs in the user using the given username and password in the model.
     * @return boolean whether login is successful
     */
    public function login()
    {
        if($this->_identity===null)
        {
            $this->_identity=new UserIdentity($this->username,$this->password);
            $this->_identity->authenticate();
        }
        if($this->_identity->errorCode===UserIdentity::ERROR_NONE)
        {
            $duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days
            Yii::app()->user->login($this->_identity,$duration);
            // Save the user model to set update_time
            User::model()->findByPk($this->_identity->getId())->save();
            return true;
        }
        else
            return false;
    }
}
Аватара пользователя
Altenrion
Сообщения: 44
Зарегистрирован: 2013.03.18, 12:05
Контактная информация:

Re: Блокировка пользователя.

Сообщение Altenrion »

Во первых уточните, что именно значит "отключить". Пользователь который вводил неправильно данные авторизации = неавторизованный пользователь = Гость = не пользователь => как именно его нужно "отключать".

Если Аноним ввел неправильно пароль для учетной записи , то блокируем эту учетку - еще можно пропустить, но могут умышленно блокировать чужой акк, соответственно плохой вариант.
И пароль и логин не прошли 5 раз подряд - тогда мы не знаем с кем работаем. Блокировать доступ к ресурсу целиком ?

Ну теоретически можно реализовать переадресацию по IP. Что-то вроде, плохой аноним добавлен в блэк лист, и переадресуется на страницу заглушку. Но тут есть свои подводные камни, наподобие тех, что всплыли когда начали в России матушке сайты блокировать по IP направо налево.
Ответить