CakePHPで認証付きの静的ページを作る
CakePHP1.2で管理者用の静的ページを作る(認証付き)というエントリーを見つけました。
静的ページで良いんだけど認証ユーザーにだけ見せたい場合とかってみんなどうやってるんでしょうね。自分のやり方を忘れないためにエントリー。
やり方としてはPagesにアクセスされた際にapp_controllerにて、ログインユーザー以外は非表示になるよう処理を振り分けます。
コードはこんな感じです。
<php class AppController extends Controller { var $lockedPages = array('agreement'); function beforeFilter() { // pages controllerかどうかをチェック if ($this->name == 'Pages') { // pagesなら引数を受け取る $path = $this->passedArgs; // 認証ユーザーしか閲覧できないページか調べる if (isset($path[0]) && in_array($path[0], $this->lockedPages)) { //ここでpagesのdisplayをロック $this->Auth->deny('display'); } } } }?>
$lockedPagesに、認証ユーザーにだけ見せたいPageを配列で指定するだけで簡単に量産することが可能です。
これだとルーティングも特に変更する必要はありません。
どっかの記事にのってたのを参考にしたはずなんですが、元記事が見つけられませんでした。
pages_controllerをapp以下に持ってきた方が色々カスタマイズするには便利なんだけど、静的ページを見せたいだけならいっつもこんな感じです。
最新情報をお届けします