トップ > ラボブログ

ラボブログ

« 2009年5月最後のソーシャルアプリ関連記事ざっと見。 | メイン | マクドナルドはソーシャルフード?6月最初のSAPP »

ついに見つけた!CakePHP の管理者画面作成ノウハウ

あとで読む

スパイスラボ神部です。


前々から、CakePHP に Web サイトの管理画面を作るモードに使っていそうな関数を見かけることが多かったので、どこかにそんな資料があるだろうな、とは思っていたのですが、遂につき当たりました!


-CakePHP 管理画面を作成する方法 | Sun Limited Mt.


少しこれについて読み解いてみたいと思います。


あと、上記情報は少し古いので、こちらもあわせて。


-プリフィックスルーティング(Prefix Routing) :: Routesの設定 :: 環境設定 :: CakePHPによる開発 :: マニュアル :: 1.2 Collection :: The Cookbook


-管理画面が好きだ! - Favorites!


admin モードについて


まず、キモはここですね。


define('CAKE_ADMIN', 'admin');
これで http://www.example.com/admin/controller/action という URL でアクセスできるようになります。


※といってもこれは CakePHP 1.1 の話で、1.2 では下記のようになっているようです。


Configure::write('Routing.admin', 'admin');


そうだったのか・・・!


これまでは実は管理者画面を自作していました。しかし、CakePHP はフレームワークであるが故に、その URL が予測しやすくなってしまいます。なので、ユーザには追加や編集、削除を行わせたくないモデルの管理には非常に悩んでいました。まず不要な admin ユーザを格納するデータベースを作り、そのユーザの認証がとれているときだけそのモデルに Admin モデルのメソッドから編集するという実に遠回りな方法をとっていました。


CGM的なサイトならともかく、Web サイトの CMS などを作るには、いまいち向かないし、CGM的サイトでも phpmyadmin などを使って管理するものだとばかり思っていた自分には目から鱗です(単に知識不足なだけだったわけですが…)


もちろん、admin という名前が推測されやすいと思われることもあるので、それも変更することが出来るようです。ここで注意したいのは、その名前を変更した場合は各コントローラで作成されるアクションの名前も変わってしまうと言うことです。これは注意です(大事なことなので二度書きました)。


あれっ、でも、結局この admin ユーザの定義や認証はどうするのでしょうね?


そのあたりはもう少し突き詰めて調べてみて、わかったら追記したいと思います。


追記


こちらの資料が参考になりそうです。


-CakePHP 管理者サイトでBasic認証を簡単に行うコンポーネント | Shin x blog


こちらをさらに拡張する案として、


* ハッシュ値では無くDBの値で認証
* HTTPからのアクセスはHTTPSへリダイレクト
* Basic認証を他の認証に変更


ここから読み取るとすると、この admin ルーティングはまさしくルーティングを提供するのみのもので、そこから先どのように認証をするかは実装に任されているようです。折角だからそこまで説明しておいてくれてもよさそうな気がしますけどね。


実際に使うには


ここまでを「初期設定」と「下ごしらえ」の段階とすると、次はいよいよ具体的な方法です。


※このあたりちょっと自信がないので、もし間違いがあるようでしたらガシガシつっこんでもらえればと思います!


流れを追うと、


1.ハッシュの値 ADMIN_AUTH_HASH を設定する。「下ごしらえ」の記事では core.php で定義しておくと便利とありましたが、自分の場合は他にも define で値を定義しているの bootstrap.php を定義しました。ハッシュ値の取得は書かれてあるとおり var_dump() のコメントをいったん外して取得したものを使うと便利です。


2.Basic 認証などを設定する。これにはこのブログの中の次の記事が参考になると思います。


-CakePHP 1.2 の Basic 認証設定があまりにも簡単すぎる ( ラボブログ )


ただし、$this->Security->requireLogin('index','add'); のようなログインを必要とするコントローラを設定する必要はありません。下ごしらえの記事ところで、admin ルーティングになっていると自動的に Basic 認証がフックされるようです。


※もし他の認証に変えたときは、env('PHP_AUTH_USER'); などで値が取得出来ないかもしれないのでそこは変更する必要があります。


とりあえずこんなところですかね。


追記2


こんなこともできるようです。


-CakePHP の AppController を複数作る - d.hetima


こちらも流れを掴むのに参考になりそう。


-admin


十分に使いおこなすには、もうちょっと深く知る必要もありそうですね。


-次世代リーダーを発掘し、育て上げる管理者養成マニュアル―「小さな会社」でもすぐ使える!が好き! - ILOVEIT(β)

 



関連記事



ブックマークに追加する この記事についてTwitterでツイート

トラックバック

このエントリーのトラックバックURL:
http://www.spicebox.jp/cgi-bin/mt/mt-tb.cgi/1059

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

mixiアプリ本
4/22発売!

mixiアプリをつくろう!
OpenSocialで学ぶ
ソーシャルアプリ



(株)スパイスボックス
神部 竜二(著)

書籍情報






検索



神部竜二
ブログ執筆者の一人です。ネットの新しい話題や Web まわりのプログラミング、Web 広告について書いていきたいと思います。


About

2009年05月31日 17:12 に投稿されたエントリーのページです。

ひとつ前の投稿は「 2009年5月最後のソーシャルアプリ関連記事ざっと見。 」です。

次の投稿は「 マクドナルドはソーシャルフード?6月最初のSAPP 」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

SEO ブログパーツ  

+ インデックス数計測 +