0

Cakephp を使って数日経ちましたが、とても感銘を受けました。しかし今、私は ACL に近づこうとしていますが、少し混乱しています。

私の状況は、フロントエンドとバックエンドを備えた Web サイトを作成したいということです。しかし、これに本当にAclが必要かどうかはわかりません。もちろん、バックエンドを除いて、すべてのユーザーがすべてのページを利用できるはずだからです。クックブックのチュートリアルは、ユーザー、グループ、ロールの作成、ログイン用の適切なビューの作成、ユーザーの追加と編集などに関するものであるため、あまり役に立ちません。

しかし、Acl が処理するものについての情報だけが必要ですか? コントローラーやモデルの使用を制限しますか?

それとも、Acl 以外の何かが必要ですか? おそらく、セッション変数をチェックして、チェックが偽の場合はコントローラーに直接リダイレクトする方が簡単でしょうか?

うまくいけば、あなたは私を正しい道に導くことができます.

事前に感謝し、ドイツからの最高の挨拶、

サーシャ

4

2 に答える 2

0

からかわれてセッションにアクセスするだけでなく、この章を読んで Auth コンポーネントを使用することをお勧めします。

http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html

管理者のバックエンドには、プレフィックス ルーティングを使用します。

http://book.cakephp.org/2.0/en/development/routing.html#prefix-routing

auth と組み合わせると、これは isAuthorized() コールバックでチェックして実装するのが非常に簡単です。

于 2013-02-27T18:02:45.083 に答える
0

さまざまな「レベル」のアクセス許可が必要ない場合。つまり、ログインしているすべてのユーザーがバックエンドにアクセスできます。(今のところ) ACL をスキップすることをお勧めします。後の段階で ACL が必要になった場合は、後でいつでも追加できます。

「単純な」認証から始めることができます。クックブックのこの章では、その方法について説明します。 http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

一般に、現在必要のない機能は開発しないでください。たとえば、将来必要になるかもしれないという理由で ACL を実装することは、開発を過度に複雑にするだけであり、その瞬間が訪れたときに要件に適合しない可能性があります。

@burzum とは異なり、私はプレフィックス ルーティングの大ファンではありません (非常に単純なプロジェクトのみ)。フロントエンドとバックエンドのアクションとロジックを同じコントローラーに混在させることになるからです。

バックエンド用に別のコントローラーを作成し、プラグインとして開発することをお勧めします。いずれにせよ、バックエンドの「ベース」コントローラとモデルを作成し、バックエンド コントローラ/モデルでそれらを拡張することを検討してください。このようにして、1 つの場所でバックエンドに使用するコンポーネント/動作を定義できます。また、「認証」コンポーネントをバックエンド コントローラーにのみロードすることで、フロントエンドの各コントローラーでアクションを「許可」する必要がなくなります。

例えば;

class BackendCoreController extends AppController {
    // only load the Auth component in backend controllers
    // regular/frontend controllers don't require authentication
    $components = array('Auth');

}


class PageAdminController extends BackendCoreController {

}

バックエンドをプラグインとして開発する際の考慮事項については、こちらの私の回答を参照してください。

CakePHP で管理パネルを実装する最良の方法

于 2013-02-27T22:23:29.970 に答える