YII アプリケーションのすべてのページで認証を強制する必要があります。これを行うために、 http : SiteController
//www.heirbaut.nl/2010/02/23/forcing-a-yii-application-to-authenticate/ から取得した次のコードでクラスを拡張しました。
/**
* @return array action filters
*/
public function filters(){
return array(
'accessControl', // perform access control for CRUD operations
);
}
/**
* Specifies the access control rules.
* This method is used by the 'accessControl' filter.
* @return array access control rules
*/
public function accessRules(){
return array(
array('allow', // allow all users to perform 'login'
'actions'=>array('login'),
'users'=>array('*'),
),
array('allow', // allow authenticated user to perform any action
'users'=>array('@'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
これは、認証されていないユーザーへのすべてのリクエストを、index.php
URL のログインフォームにリダイレクトするという、想定されていることだけを行います。しかしindex.php?r=person
、結果として、アプリケーションのメイン メニューはこの制限を回避し、認証に関係なく表示されます。