CakePHP2.1 認証(Auth)コンポーネントのdenyが効かないんでない?
CakePHP全てのアクションを許可するよ。ただしmypage、テメーはダメだ。 という設定をしようとして意外にもハマったのでメモ。
//全てのアクションを許可
$this->Auth->allow('*');
//mypageだけはログインしないとだめ
$this->Auth->deny('mypage');
1.3系ならこう書きたくなるところですが、2.X系では、全てのアクションを指定する時、カッコの中のアスタリスクが要らないようです。
'*'←このちっこいアスホールみたいなアスタリスク不要。犯人はアス
こっちが正解
//全てのアクションを許可
$this->Auth->allow();//+
//mypageだけはログインしないとだめ
$this->Auth->deny('mypage');
ちなみに先のコードでもallow()は正常に動作はします。deny()だけ機能しません。
なので、てっきり問題はdeny()にあるんだろうと思って調べていたら見当違いでした。