結論から書くと、勉強用や参考になるかなと思い、
CakePHPのACLサンプルプログラムを
ダウンロードできるようにgithubへアップしました。
I uploaded to GitHub CakePHP ACL sample programs
for study.
■GitHubサンプルプログラム(GitHub sample programs)
256hax/CakePHP-1.3.x-ACL-samples - GitHub
アクセスしたら左上の [ZIP] ボタンを押して
ダウンロードできます。
そのあと、同じページに「README」が
書いてありますので、それをご参照ください。
■経緯
CakePHPのACLをチュートリアルをもとに
実装していたが、ややこしいうえに自分のやり方が
悪いのか、ちゃんと動作しなかった。
幸いにもエンジニアの人が解説したブログが
たくさんあったので、なんとか動くようになった。
ただ、意外にも「ダウンロードしてすぐ動かせる」
っていうファイル群が見つからなかったので、
ACLのサンプルプログラムを丸ごとアップしてみようと思う。
■参考サイト
ACL を制御するシンプルなアプリケーション :: 開発例 :: マニュアル :: 1.3コレクション
CakePHP ACL - アクセス制御リストを攻略する | hijiriworld Web Creators
CakePHP - ACLの権限管理を超簡単にするプラグイン『Plugin ACL』 - 高橋です
cakePHP チュートリアル「ACL を制御するシンプルなアプリケーション」 その1 - SystemGathering
CakePHP - Auth component loop redirect
■リダイレクト無限ループについて
CakePHP 1.3.x のACLチュートリアルを実装後、
UsersControllerの「$this->Auth->allow('*');」を
外すと、どのページにアクセスしても
リダイレクトループ(ページ転送がループ)してしまい
ダメだった。結局、下記のようにし、あとは
パーミッションで対応(但し、下記方法が合ってるか不明)。
function beforeFilter() {
parent::beforeFilter();
//$this->Auth->allow('*');
if(isset($this->params['requested'])) {
$this->Auth->allow($this->action);
}
}
あと、CakePHPチュートリアルの パーミッションの手動設定 は
追加のみ実行可能で、変更はできないようで、
色々いじったところ、混乱してハマった。
なので、 ACL Plugin を使ったほうが確実。