-1

我遵循http://www.larryullman.com/2010/01/04/simple-authentication-with-the-yii-framework/使用数据库创建登录系统。
但是在登录并尝试访问管理页面后,我得到了

错误 403 您无权执行此操作

知道为什么要解决这个问题吗?
查看我的访问规则
公共函数访问规则()
{
    返回数组(
    array('allow', // 允许所有用户执行 'index' 和 'view' 动作
        'actions'=>array('index','view'),
        '用户'=>数组(' '),
    ),
    array('allow', // 允许经过身份验证的用户执行“创建”和“更新”操作
        '动作'=>数组(),
        '用户'=>数组('@'),
    ),
    array('allow', // 允许管理员用户执行 'admin' 和 'delete' 操作
        'actions'=>array('admin','delete','create','update'), //
        '用户'=>数组('管理员'),
        '表达式'=>'isset($user->role) && ($user->role==="admin")',
    ),
    array('deny', // 拒绝所有用户
        '用户'=>数组(' '),
        ),
    );
}

4

1 回答 1

0

1-确保您的 accessRules() 已允许对 &(已登录)进行管理员操作,并且它位于所有其他规则之上,或者至少只是将其置于拒绝所有规则之上。不要误会我的意思,它不需要总是在所有其他规则之上,但是书中默认的最后一条规则是拒绝 *,所以如果你把你的管理规则放在它下面,你就不会有访问操作管理员的机会。

 public function accessRules()
        {
                return array(
                         array('allow',  // allow all users to perform 'index' and 'view' actions
                        'actions'=>array('index','view', 'checkout'),
                        'users'=>array('*'),
                    )
                );
        }

2-如果您已正确更新您的 accessRules(),您需要检查以确保您用于登录的帐户是有权访问管理页面的用户。该操作显然是在任务用户管理中,并分配给角色所有者。因此,用户必须是您当前正在浏览的项目的所有者。从您的数据库中进行选择以确保这一点。

于 2013-08-26T11:46:51.680 回答