4

私は CakePHP フレームワークの初心者です。私は CakePHP について十分な知識がありません。私の質問は次のとおりです。ACL は自動的に機能しますか、それとも手動で確認する必要がありますか?

4

2 に答える 2

5

これは、ACLを使用した最新のCakePHP 1.3プロジェクトのAppControllerにありますが、CakePHP2.1でもかなり似ているはずです。

function beforeFilter() {
    // ACL Check
    if($this->name != 'Pages' && !$this->Acl->check(array('model' => 'User', 'foreign_key' => $this->Session->read('Auth.User.id')), $this->name . '/' . $this->params['action'])) {
        CakeLog::write('auth', 'ACL DENY: ' . $this->Session->read('Auth.User.name') . ' tried to access ' . $this->name . '/' . $this->params['action'] . '.');
        $this->render('/pages/forbidden');
        exit; // Make sure we halt here, otherwise the forbidden message is just shown above the content.
    }
}

'Pages'コントローラーを除いて、すべてのコントローラー/アクションはACLチェックされ、ユーザーがアクセスできない場合は、代わりに'pages / forbidden'ビューが提供され、ログエントリもauth.logファイルに書き込まれます(オプション) 、しかし私はその時にこれを好んだ)。

于 2012-04-16T11:40:46.213 に答える
2

正しく構成されていれば、AclComponent は、ユーザーがアクションにアクセスできるかどうかを自動的にチェックします。

出典: CakePHP 1.3 での私の経験

于 2012-04-16T09:46:56.807 に答える