如何允许访客访问Yii2 Controller中的某些操作?

时间:2015-07-14 13:16:38

标签: yii2 yii2-advanced-app

我想知道如何配置我的控制器以允许某些操作作为访客执行,并能够在Yii2中显示该访客的视图。

我在我的行为中尝试过这条规则

       'access' => [
           'class' => AccessControl::className(),                           
                'rules' => [
                    [                   
                        'actions' => ['create','update'],       
                        'allow' => true,
                        'ips' => ['127.0.0.1'],                         
                    ]                       
                ],                  
            ]

编辑: 这是我试过的配置:

    'access' => [
                'class' => AccessControl::className(),                          
                'rules' => [                                
                    [
                        'allow' => true,
                        'actions' => ['create', 'update'],
                        'roles' => ['?'],
                    ],
                ],                  
            ]

Edit2:从头开始检查一个新项目(yii2-advanced)并尝试再次生成控制器和模型以前的规则有效,我认为这是前一个项目的一些配置阻止我作为一个客人莫名其妙。

2 个答案:

答案 0 :(得分:3)

在你的规则中

                [
                    'allow' => true,
                    'actions' => ['login', 'signup'],
                    'roles' => ['?'],
                ],

然后,匿名用户将允许操作loginsignup

或者您也可以使用only方法来免除不需要acl的操作。

有关详细信息,请参阅http://www.yiiframework.com/doc-2.0/guide-security-authorization.html

答案 1 :(得分:0)

使用以下内容

 public $freeAccessActions = ['contact-us', 'free-access-action-2'];

这将允许访客访问