错误403您无权在yii框架中执行此操作

时间:2013-08-26 11:39:41

标签: yii

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

Error 403 You are not authorized to perform this action

知道如何解决此问题的原因吗?
请参阅我的访问规则
public function accessRules()
{
    return array(
    array('allow',  // allow all users to perform 'index' and 'view' actions
        'actions'=>array('index','view'),
        'users'=>array(''),
    ),
    array('allow', // allow authenticated user to perform 'create' and 'update' actions
        'actions'=>array(),
        'users'=>array('@'),
    ),
    array('allow', // allow admin user to perform 'admin' and 'delete' actions
        'actions'=>array('admin','delete','create','update' ),  // 
        'users'=>array('admin'),
        'expression'=>'isset($user->role) && ($user->role==="admin")',
    ),
    array('deny',  // deny all users
        'users'=>array(''),
        ),
    );
}

1 个答案:

答案 0 :(得分:0)

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

 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(),则需要检查以确保您用于登录的帐户是有权访问管理页面的用户。此操作显然在任务用户管理中,并分配给角色所有者。因此,用户必须是您当前正在浏览的项目的所有者。从数据库中选择以确保它。