Изменение параметров авторизации. Проблемка

Надо использовать вместо "юзернейма" "мыло". банальная замена результата не дает. если реализоввывали или есть наброски - подскажите, пожалуйста.

Что значит банальная замена? Нужно в классе UserIdentity в методе аутентификации проверять наличие переданного адреса в бд и сверять пароль.


public function authenticate()

    {

        $record=User::model()->findByAttributes(array('email'=>$identity->email));

        if($record===null)

            $this->errorCode=self::ERROR_USERNAME_INVALID;

        else if($record->password!==$identity->password)

            $this->errorCode=self::ERROR_PASSWORD_INVALID;

        else

        {

            $this->_id=$record->id;

            $this->setState('title', $record->title);

            $this->errorCode=self::ERROR_NONE;

        }

        return !$this->errorCode;

    }

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

может как-то криво Yii поставили? потому что всяческие "костыли" уже неоднократно приходилось делать. к тому же это очень небезопасные костыли.

Нужно так:




$user = User::model()->findByAttributes(array('email'=>$this->username));



В данном случае переданным юзернеймом будет именно емаил.

Ну и проверка пароля соответственно выполняется так:




if ($record->password!==$this->password) ...