2016-03-24 8 views

答えて

2

解決策を見つけた:あなたはYii2ドキュメントをチェックアウトすることができますトピックに関するさらなる読書のために

/** 
* @inheritdoc 
*/ 
public function beforeAction($action) 
{ 
    if(Yii::$app->getUser()->isGuest && !in_array($action->id,['allowed', 'actions', 'here'])) 
     throw new \yii\web\HttpException(403, 'Page could not be found.'); 

    if (!parent::beforeAction($action)) { 
     return false; 
    } 

    return true; 
} 

behavioursでは、はいhttp://www.yiiframework.com/doc-2.0/guide-security-authorization.html

+2

これはあなたができる最善の解決策です。新しいフィルタを作成するか、beforActionを上書きするのではなく、すでにフィルタが実行されています。よくやった! –

0

関連するコントローラでbeforeAction()メソッドをオーバーライドできます。 yii\base\Controller beforeAction() details

+0

あたりとして

[ 'class' => AccessControl::className(), ... 'denyCallback' => function ($rule, $action) { throw new \Exception('You are not allowed to access this page'); } ] 

を追加することができますが、それはまた、はい – keeg

+0

...、ログインページなどのエラーページを例外がスローされますが、ポイントは、カスタムのアクセスを置くことができましたそこに制御コード。別の条件を追加すると、問題が解決されます。私はコードを調整します。 – ttdijkstra

関連する問題