авторизация не по username, а phone

надо сделать авторизацию по phone/password

не хочу использовать username в качестве телефона

что бы изменить эту пару мне правильней написать новый UserIdentity, заэксендив CUserIdentity и изменив конструктор или есть какой-то более правильный вариант ?

Да нет лично я не вижу другого пути как только заэксендив CUserIdentity

если конечно по изврашаться и переписать полностью но в этом нет смысла!

Вот так наверно проще всего!




class UserIdentity extends CUserIdentity

{

    private $_id;

	private $_name;

    public function authenticate()

    {

        $record=User::model()->findByAttributes(array('phone'=>$this->username));

        if($record===null)

            $this->errorCode=self::ERROR_USERNAME_INVALID;

        else if($record->password!==crypt($this->password,$record->password))

            $this->errorCode=self::ERROR_PASSWORD_INVALID;

        else

        {

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

            $this->_name=$record->name;

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

            $this->errorCode=self::ERROR_NONE;

        }

        return !$this->errorCode;

    }

 

    public function getId()

    {

        return $this->_id;

    }

	

    public function getName()

    {

        return $this->_name;

    }

}