0

私は次の状況にあります:複数のビューがファイルをアップロードし、AJAXを介して以前のアップロードのリストを取得できるコンテンツエディターを使用しています。このために、すべてのコントローラーに2つのアクションを追加することになります。代わりに、エディターの相互作用を処理する一般的な単一目的のEditorControllerを1つだけ使用したいと思います。

これに伴う問題はアクセス権です。EditorControllerに、要求が有効なソースからのものであるかどうかを確認してもらいたい(つまり、現在のユーザーがアクセスできる既知のアクション)。具体的には、リクエストが「/ posts / edit / 1」のようなものからのものであり、これが私が使用を許可されているアクションであることを確認してください。

これはできますか?同じ結果を達成するためのより良い方法は何ですか?現在、再利用するコンポーネントに機能がすでにパッケージ化されています。しかし、同じ2つのアクションをすべてのコントローラーに追加することを繰り返します。

編集:以下のコメントから、http://book.cakephp.org/2.0/en/core-libraries/components/security-component.html#restricting-cross-controller-communicationを指摘しました。私が達成したいことは、許可されたコントローラーまたはアクションを明示的にホワイトリストに登録するのではなく、呼び出し元から継承されたアクセス権を持っていることを除いて、SecurityComponent::$allowedControllersとに非常に似ています。SecurityComponent::$allowedActions

4

1 に答える 1

1

Security コンポーネントを使用すると、必要なものが得られる場合があります。

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

[更新] セキュリティ コンポーネントは、投稿されたフォームが有効なフォームであるかどうかを確認しますが、現在のユーザーがコントローラー/アクションにアクセスする権限を持っているかどうかは確認しません。

このためには、アクセス制御と組み合わせて認証システムを実装する必要があります。これは、特定のアクションに対する単純な「アクセス」制御 (「ユーザーはログインしていますか?」) の場合もあれば、アクセス制御リスト (ACL) を使用したより詳細なアプローチの場合もあります。

Cakephp マニュアルには、両方の例がいくつかあります。いくつかのリンクを投稿します:

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

アクセス制御リスト http://book.cakephp.org/2.0/en/core-libraries/components/access-control-lists.html

そして両方のチュートリアル http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html http://book.cakephp.org/2.0/en/tutorials- and-examples/simple-acl-managed-application/simple-acl-controld-application.html

于 2013-02-03T00:21:50.130 に答える