Yii访客用户的访问控制


Yii access control for a visitor guest user

我需要在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个表格。请帮助

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

但是您可以使用代码中的角色来实现这一点。

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

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

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

对于访客用户:

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