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


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

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

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

やり方としてはPagesにアクセスされた際にapp_controllerにて、ログインユーザー以外は非表示になるよう処理を振り分けます。

コードはこんな感じです。

01<php
02class AppController extends Controller {
03    var $lockedPages = array('agreement');
04    function beforeFilter()
05    {
06        // pages controllerかどうかをチェック
07        if ($this->name == 'Pages')
08        {
09            // pagesなら引数を受け取る
10            $path = $this->passedArgs;
11 
12            // 認証ユーザーしか閲覧できないページか調べる
13            if (isset($path[0]) && in_array($path[0], $this->lockedPages))
14            {
15                //ここでpagesのdisplayをロック
16                $this->Auth->deny('display');
17            }
18        }
19    }
20}?>

$lockedPagesに、認証ユーザーにだけ見せたいPageを配列で指定するだけで簡単に量産することが可能です。
これだとルーティングも特に変更する必要はありません。

どっかの記事にのってたのを参考にしたはずなんですが、元記事が見つけられませんでした。

pages_controllerをapp以下に持ってきた方が色々カスタマイズするには便利なんだけど、静的ページを見せたいだけならいっつもこんな感じです。

 

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

最新情報をお届けします

follow us in feedly