Php 访客用户的Yii访问控制

Php 访客用户的Yii访问控制,php,yii,access-control,Php,Yii,Access Control,我需要两个用户的yii访问控制。 1.已验证用户:所有访问权限 2) 注销用户:如果用户正在注销并查看,某些联系人系统将自动与来宾用户登录 现在我想要的是来宾用户将有一个有限的访问权限。尽管用户已登录并且是经过身份验证的用户 我试过的是 public function accessRules() { return array( array('allow', // allow all users to perform 'index' and 'vie

我需要两个用户的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->isAdmin) {
    echo CHtml::submitButton();
}

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

if (!Yii::app()->user->isGuest) {
   echo "Authenticated";
}
对于来宾用户:

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

使用角色或在代码周围放置只有登录用户才能看到的if:如果(!Yii::app()->user->isGuest)我认识这个家伙。为我检查我的ans来宾也是登录用户。