我试图为我的一个应用程序安装 yii 扩展。我收到“ Error 403 You are not authorized to perform this action.
”错误,但是从我在数据库中看到的内容来看,这些表是创建的“authassignment”、“authitem”、“authitemchild”、“rights”。
在“authassignment”下我有数据
Admin 1 NULL N;
其中 1 是我的用户 ID。这对于我的“用户”表来说是正确的,我有一个帐户。结构是
CREATE TABLE IF NOT EXISTS `user` (
`user_id` int(10) AUTO_INCREMENT NOT NULL,
`login_id` varchar(255) NOT NULL,
`login_name` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`level` int(3) NOT NULL DEFAULT '1',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
然后我修改了“config/main.php”以反映更改
'rights'=>array(
'install'=>false,
'superuserName'=>'Admin',
'userIdColumn'=>'user_id',
'userNameColumn'=>'login_id',
),
经过大量研究,我认为上述步骤是正确的。/rights
但是,当我在安装后尝试访问时。我再次面临这个问题:
**Error 403 You are not authorized to perform this action**.
这很奇怪。我检查了安装文档,没有地方提到这个问题。所以我想这可能是因为登录方式错误??
public function authenticate()
{
$array=$this->auth_array;
$criteria=new CDbCriteria;
$criteria->compare('email',$array['email']);
$u=User::model()->findAll($criteria);
if(count($u)==0)
{
$user = new User;
$user->email = $array['email'];
$user->login_name=$array['name'];
$user->login_id=$array['login_id'];
if($user->save()){
$this->_id=$user->user_id;
}
}else{
$this->_id=$u[0]->user_id;
}
$this->setState('user_id', $this->_id);
$this->setState('display_name',$array['display_name']);
$this->setState('name',$array['name']);
$this->setState('email',$array['email']);
$user=User::model()->findByAttributes(array('user_id'=>$this->_id));
if(count($user)>0)
{
if($user->level==1)
{
$this->setState('role', 'user');
}
else if($user->level==0)
{
$this->setState('role','admin');
}
$this->errorCode=self::ERROR_NONE;
}else{
$this->errorCode=self::ERROR_USERNAME_INVALID;
}
return !$this->errorCode;
}
请帮忙。