2016-03-24 24 views

cevap

2

çözüm Bulunan: Eğer Yii2 Dokümanlar kontrol edebilirsiniz konuyla ilgili daha geniş bilgi için

/** 
* @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 yılında ekleyebilir http://www.yiiframework.com/doc-2.0/guide-security-authorization.html

+2

Bu, yapabileceğiniz en iyi çözümdür. Yeni filtreler oluşturmak veya beforAction'ı geçersiz kılmak yerine, bir filtre zaten yapıldı. Aferin! –

0

İlgili Denetleyicilerinde beforeAction() yöntemini geçersiz kılabilirsiniz. yii\base\Controller beforeAction() details

+0

Evet uyarınca

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

ama bu da giriş sayfasındaki istisna, hata sayfası vb ... – keeg

+0

Evet fırlatır, nokta size özel erişim koyabilirsiniz edildi kontrol kodu var. Başka bir koşul eklemek probleminizi çözer. Kodu ayarlayacağım. – ttdijkstra

İlgili konular