raa
(Rudenkosasha)
October 17, 2014, 5:01pm
1
надо сделать авторизацию по phone/password
не хочу использовать username в качестве телефона
что бы изменить эту пару мне правильней написать новый UserIdentity, заэксендив CUserIdentity и изменив конструктор или есть какой-то более правильный вариант ?
mihail_dev
(Mihail Cucer)
October 19, 2014, 7:45pm
2
Да нет лично я не вижу другого пути как только заэксендив 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;
}
}