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