我建立了我的应用程序的认证模块,我不太明白之间的关系CWebUser和CUserIdentity.
要将用户ID设置为Yii::app()->user->id我必须在我的UserIdentity类中执行此操作并创建方法:
public function getId() {
return $this->_id;
}
Run Code Online (Sandbox Code Playgroud)
但要设置isAdmin为Yii::app()->user->isAdmin我必须在我的WebUser类中创建一个方法:
function getIsAdmin() {
$user = $this->loadUser(Yii::app()->user->id);
return intval($user->user_level_id) == AccountModule::USER_LEVEL_ADMIN;
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能只创建UserIdentity类的方法?这里的分工是什么?
该UserIdentity(UI)类就像一个ID卡,其中的WebUser类是实际的人以及一切你了解他们.
UI类通过数据库,webservices,textfile等提供身份验证.它可以让您知道关键属性是什么,并允许您操作它们.但是,用户可以为您提供有关他们可以执行的操作的更多信息,名称,细化权限等.
UI类保存密钥信息,因此在询问用户ID时,它将引用User Identity类来获取用户的标识符.
与识别或验证用户无关的任何内容都在WebUser课堂上
根本清除它?
您将该getId函数作为示例,但可以创建该函数WebUser以覆盖默认值,即从状态拉出.
所以不确定你的意思.
| 归档时间: |
|
| 查看次数: |
3898 次 |
| 最近记录: |