Yii访问访客用户的访问控制

时间:2015-11-16 08:02:14

标签: php yii access-control

我需要yii中的两个用户的访问控制。 1.认证用户:所有访问权限 2)注销用户:如果用户注销并查看某个联系人系统将自动登录访客用户。

现在我希望访客用户拥有有限的访问权限。虽然用户已登录并且是经过身份验证的用户。

我试过的是

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

            array('deny',  // deny all guest user
                    'actions'=>array('Maingoal','delete','create'),
                    'users'=>array('guest'),
                ),
                array('allow', // allow authenticated user to perform 'create' and 'update' actions
                'users'=>array('@'),
            ),
        );
    }

它限制用户访问该页面。但我希望用户可以看到要创建的表单但限制提交。我需要一个通用的解决方案,因为我在很多页面上有大约100个表单。请帮忙

2 个答案:

答案 0 :(得分:0)

您不能使用访问规则来仅限制部分代码。

但是你可以在你的代码中使用roles来做到这一点。

if (Yii::app()->user->isAdmin) {
    echo CHtml::submitButton();
}

答案 1 :(得分:0)

对于经过身份验证的用户:

if (!Yii::app()->user->isGuest) {
   echo "Authenticated";
}

对于访客用户:

if (Yii::app()->user->isGuest) {
   echo "Guest";
}