0
我在警予是新的角色管理,
我有2個角色就像管理1,Admin2的
我有2個控制器,它就像動作
(1)UserController中 - 創建,更新,刪除
(2)CategoryController - 查看,創建,更新
如何在yii中分配角色和checkaccess方法?
我想給用於管理1 checkAccess方法等
(1)UserController中 - 更新,刪除
(2)CategoryController - 更新
我想給爲Admin2的checkAccess方法類似
(1)UserController中 - 創建,更新,刪除
(2)CategoryController - 創建,查看
我怎麼可以給的checkPermission這2控制器特別管理員? 任何幫助將非常感激。
這裏是我的checkAccess方法,但它給了我錯誤
class UserIdentity extends CUserIdentity
{
private $_id;
public $role;
public $roleName;
/**
* Authenticates a user.
* @return boolean whether authentication succeeds.
*/
public function authenticate()
{
$username = $this->username;
$password = md5($this->password);
$user=Login_User::model()->findByAttributes(array('Email'=>$username,'Password'=>$password,'Status'=>'1'));
if(empty($user))
{
$this->errorCode=self::ERROR_USERNAME_INVALID;
}
elseif($password != $user->Password)
{
$this->errorCode=self::ERROR_PASSWORD_INVALID;
}
else
{
$this->_id=$user->UserID;
$this->username=$user->Email;
$this->role=$user->RoleID;
$roleQuery = "SELECT * FROM role WHERE RoleID = ".$user->RoleID." ";
$roleData = Yii::app()->db->createCommand($roleQuery)->queryAll();
if(isset($roleData[0]['Title']) && $roleData[0]['Title'] != '') {
$this->roleName = $roleData[0]['Title'];
}
if($user->RoleID != '') {
$query = "SELECT * FROM rolepermission WHERE RoleID = ".$user->RoleID." AND Status = 1 ";
$permissionData = Yii::app()->db->createCommand($query)->queryAll();
}
$auth=Yii::app()->authManager;
$rolePemirssion=$auth->createRole($this->roleName);
foreach($permissionData as $key => $value) {
$rolePemirssion->addChild($value['Controller'].$value['Action']);
}
$this->errorCode=self::ERROR_NONE;
}
return $this->errorCode==self::ERROR_NONE;
}
}
謝謝,這個工作對我來說,現在我想建立checkAccess方法,我將自己的checkAccess有問題的代碼,但它給了我錯誤,如「Either」{parent}「或」DashboardIndex「不存在。」什麼是問題?你能檢查我的代碼嗎? – Nikul 2015-04-01 10:10:32