使用AccessControl关闭后端

时间:2015-11-01 13:29:52

标签: php mysql yii2

我可以尝试简单的代码。

我有一个 AccessController ,它有behavior():

class AccessController extends BackendController
{
  public function behaviors()
  {
    return [
      'access' => [
        'class' => AccessControl::className(),
        'rules' => [
          [
            'allow' => true,
            'roles' => ['@'],
          ],
        ]
      ],
    ];
  }
  /*public function init()
  {
    parent::init();

    if( Yii::$app->getUser()->getIsGuest() )
    {
      return $this->redirect('/auth');
    }

    return true;

  }*/

  public function actions()
  {
    return [
      'WysiwygUpload' => [
        'class' => WysiwygUpload::className(),
      ]
    ];
  }

} 

根据我的理解,如果我没有声明'仅'键,则表示对所有操作和控制器

但没有任何事情发生:没有错误,没有错误

1 个答案:

答案 0 :(得分:1)

您的控制器AccessController仅适用于您的App /后端/访问请求,不适用于所有controllerAction ..

如果你想在AdminController中拒绝访问guest虚拟机,你可以应用AdminController的行为

class AdminController extends Controller
{
    public function behaviors()
    {
       return [
           'access' => [
           'class' => AccessControl::className(),
           'rules' => [
              [
                'allow' => true,
                'roles' => ['@'],
             ],
          ]
        ],
      ];
    }
    ........

然后当访客尝试访问您的App / backend / admin时,不允许这样做