CakePHPで認証付きの静的ページを作る


CakePHP1.2で管理者用の静的ページを作る(認証付き)というエントリーを見つけました。

静的ページで良いんだけど認証ユーザーにだけ見せたい場合とかってみんなどうやってるんでしょうね。自分のやり方を忘れないためにエントリー。

IT/WEB業界への転職なら求人サイトGreen

やり方としては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以下に持ってきた方が色々カスタマイズするには便利なんだけど、静的ページを見せたいだけならいっつもこんな感じです。

 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

follow us in feedly