authentication - CWebUser calling methods from own User model -
i switched default approach user authentication through loginform::authenticate() , login() + sitecontroller::actionlogin() , actionlogout() 1 uses app's own user::authenticate() , login() + usercontroller::actionlogin() , actionlogout().
the user model has other methods (e.g. user::isregisteredtocourse()) need call often. there easier, leaner way logged user (i.e. 1 has same id cwebuser) access methods following...?
user::model()->findbypk(yii::app()->user->id)->isregisteredtocourse()
i looking like:
loggeduser::isregisteredtocourse()
or @ least:
yii::app()->user->isregisteredtocourse()
but not know best way join cwebuser own user model.
any ideas?
update: simplest way found shortcut reference logged user create webuser class extending cwebuser , add model() method returns reference user:
/** * returns logged user's user model. * @return user user's user model. if user not logged in, false. */ public function model() { if(count($model=user::model()->findbypk(yii::app()->user->id)) == 1) return $model; else return false; }
now invocation of logged user's method shortens to:
yii::app()->user->model()->isregisteredtocourse()
although, keep looking forward getting leaner shortcut not usable have write five-level reference invoke method logged user.
Comments
Post a Comment