2011-02-01 12 views
3

Authコンポーネントを使用して特定の拡張機能(JSON/HTML)を使用できるかどうかを知りたいと思っていますか?CakePHP Auth JSON拡張機能を許可する

基本的に、1つのアクションがあるとしましょう。アクションはインデックスです。このアクションでは、リスト作成者(ユーザー)のみが行います。したがって、URLはhttp://somewebsite.com/authors/indexです。そのURLに移動すると、コンテンツタイプはHTMLになります.HTMLは、編集/削除ボタンを持つことができるように、ログインしているユーザー(Admins)に限定する必要があります。しかし、このアクションを使用して、jsonを最後に.json拡張子を置いたときに表示するので、URLはhttp://somewebsite.com/authors/index.jsonになります。この場合、その情報にアクセスしたいだけなので、ログインする必要はありません。

したがって、認証コンポーネントで特定の拡張機能を許可することは可能ですか?これはこれを実行する最善の方法ですか?

ありがとうございました!これらの線に沿って何かが(唯一の特定のメソッドを「ロック解除」明示的に含む)動作するはず

答えて

3

public function beforeFilter() { 
    $methods = array('index', 'foo', 'bar'); 

    // please forgive the terrible indentation 
    if (in_array($this->action, $methods) && 
     isset($this->params['ext']) && $this->params['ext'] == 'json' 
    ) { 
     $this->Auth->allow($this->action); 
    } 
} 
+0

「EXT」paramは存在しなかった場合、あなたが何をしますか? – alvincrespo

+0

@alvin適切に解析します。 :) http://book.cakephp.org/view/952/File-extensions – deceze

+0

+1あなたのソリューションはうまくいく...歓声 – Ish

関連する問題