問題タブ [zend-acl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Zend ACLは私のニーズに合っていますか?
私は自分のアプリケーションをZendFrameworkに基づいています。私はZend_Auth
認証に使用していZend_Acl
ますが、率直に言って、私が見た例は私のニーズに対して単純すぎるか、私を混乱させるため、私にとってうまくいくかどうかはわかりません。
私は自分のアプリケーションの要素をリソースとして考えており、これらのリソースは特権を持つことができます。リソース特権を含むロールは動的に定義され、ユーザーに割り当てられます。この情報を正規化されたテーブルに保存しています。
- ユーザーには役割があります
- ロールは複数のリソースを持つことができます
- リソースは複数の特権を持つことができます
ロールは、実際には階層のないリソース特権の単なるコレクションです。リソースの例は「ページ」です。誰でもページを表示できますが、認証されたユーザーは、ページで他のことを行うために「追加」、「編集」、または「削除」権限が必要になります。
これはZendACLと噛み合っていますか?私はACLを私にとって問題を引き起こすような方法で考えていますか?
私の解決策
Typeonerrorが功を奏しますが、これが私の具体的な解決策です。
Zend_Acl
現在のユーザーの役割のみをロードするため、使用法を簡素化するために拡張しました。
resource
ACLにデータを入力するために、、、privilege
およびrole_id
列を返すクエリを実行します。role_id
ユーザーのロールにその特権がない場合、結果セットの列はnullになります。
php - Zend_AuthおよびZend_AclとZend_Amf_Serverの統合
Zend_AuthとZend_AclをZend_Amf_Serverとうまく統合した人はいますか?実用的な例を探しています。
php - Zend ナビゲーション ページに複数の ACL 権限を与える
を使用してZend_Navigation
おり、統合しようとしていZend_Acl
ます。ナビゲーションの各ページにはprivilege
属性があります。私が判断できないのは、1 つのページに複数の特権を定義する方法です。
ユースケース:ユーザーを管理するためのページ。add
現在サインインしているユーザーの役割がリソースに対して、edit
、またはdelete
特権を持っている場合、そのページを (ナビゲーションで) 表示したいと考えていますUsers
。
ナビゲーション XML のエントリの例:
上記のようにカンマ区切りのリストを使用しても、望ましい動作にはなりません。
アップデート
Zend_Navigation_Page
コードを掘り下げた後、単一の文字列値しか許可されていないことがわかりました。誰かがこのクラスを拡張したり、この制限を回避する別の方法を見つけたりしましたか?
zend-framework - zend_acl: 余分なリソースを動的に追加し、パラメータ predispatch を取得します
これをどのように説明すればよいかわからないため、最初にワッフルについて申し訳ありません。基本的に、コントローラーがロードされる前にブートストラップでパラメーターを取得する方法がわかりませんが、ここに長いバージョンがあります...
すべてのデフォルト リソースを格納する acl クラスがあります。すべてのページ/投稿コンテンツはデータベースであり、管理者がページを利用できるロールを選択できるようにしたいと考えています。
データベース テーブルをループして一度にすべて追加できることはわかっていますが、これがリソースの浪費になるのではないかと心配しています。アクセスチェックプラグインが動的パーミッション関数を呼び出すことができるように動作していますが、現在のページ ID のパラメーターを取得する必要があり、コントローラーが読み込まれる前にそれを設定するパーミッションです。
それは理にかなっていますか、それとも何も心配していないので、すべてのページのリソースを一度に取得する必要がありますか?
私のガーブルを読んでくれてありがとう!!
zend-framework - Zend ACLを使用してアクションへのアクセスを拒否すると、ナビゲーションリンクが表示されなくなります
4つのアクションを持つスケジュールコントローラーがあります。
したがって、次のような配列を使用してZend_Navigationを設定しました。
また、ACLにユーザーと管理者の2つのグループを作成しました。管理者がすべてにアクセスできる一方で、ユーザーが「インデックス」と「ビュー」にアクセスできるように設定したいと思います。だから私はこれから始めました:
さて、私がこの行を追加しない限り、次のように思われます。
リンクはナビゲーションに表示されません。次に、これを追加すると:
これまでのところ、ユーザーは「追加」アクションからブロックされています。しかし、次に追加すると:
ユーザーは適切にブロックされますが、リンクはナビゲーションオブジェクトから消えます。誰かが私が間違っていることを知っていますか?ありがとう。
zend-framework - モデルベースの ACL を作成する方法
アプリケーションにいくつかのモジュールがある場合、モデルごとに zend フレームワークでモデルベースの ACL を作成するにはどうすればよいでしょうか?
ありがとう
zend-framework - Zend_ACLの制限?
Zend_ACLの使用を検討しています。ただし、私には、ロールを作成してから、それらのロールに、コントローラーがアクセスできる、またはアクセスできないアクションへのアクセス許可を付与しているように見えます。
しかし、私にはそれはかなり限られているようです。私は過去にuser_id、モジュール、コントローラー、およびそれらがアクセスできるアクションを保存するユーザー許可システムを作成しましたが、グループを与えることはありませんでした。したがって、ユーザーごと、モジュールごと、コントローラーごと、アクションごとに、アクセスできるものの基本でした。
それで!グループによる制限を減らしたいので、ユーザーにグループを与え、デフォルトでそれらのグループのアクセス許可を設定する必要があるのではないかと思います。次に、ユーザー固有のロールをロードし、デフォルトのグループによって設定されたロールを上書きします。
zend-acl - Zend_Controller_Router_Route を構造化して、アクションと param キーを同じ位置で処理するにはどうすればよいですか?
JSONでのルートは次のとおりです。
これにより、次のような URI が可能になり、これまでのところ完全に機能します。
ただし、 :actionの位置で、次のような URI も使用できるようにしたいと考えています。
これまでのところ、App_Controller_Action::__call()内でこれを達成しています。機能しますが、リクエストがディスパッチされるまで、アクションは技術的には「検索」または「用語」としてリストされ、それらのキーの値が id に割り当てられるため、面倒です。
これにより、フロント コントローラー プラグインで実行している Zend_Acl チェックで問題が発生しています。回避策として、「検索」と「タイプ」をアクセス許可として ACL に追加しましたが、これも面倒です。ACL には、これらのセマンティクスが含まれていない必要があります。ACL プラグインに到達する前にリクエストを変更したいと思います。
php - ZendAuthとZendACLを使用したPHPユニットテスト
ログインの背後にあり、zend_aclとzend_authを利用するアプリケーションがあります。
ディスパッチ前に、ACLのすべてのルールを作成するACLプラグインがあります。また、ログインしているかどうか、ログインしているかどうか、ACLに従って要求されたリソースにアクセスできるかどうかを確認するAuthプラグインもあります。
アプリケーションは完全にログインの背後にあるため、ACLはログインしている場合にのみ作成されます。
これをユニットテストすることは不可能であるように思われます、あるいはむしろ私が明白な何かを見逃している可能性が高いです。
単体テストのセットアップメソッドでは、zend_authインスタンスを返すログインの成功をシミュレートします。合格したテストは、このログインが成功したことを示しています。
ただし、テストを通じて別の場所にディスパッチしようとしたり、ログインしたユーザーが特定のリソースにアクセスできるかどうかを評価したりすると、まだログインしていないため、プラグインによって常に拒否されます。これがなぜであるかはわかりません。 、誰かアドバイスできますか?
たとえば、これは次のように合格します。
プラグインによって拒否されるため、これは失敗します。
これは、プラグインがユーザーがログインしていることを認識していないため、まだログインページにリダイレクトしているように見えることを発見しました。
どんな助けでも大歓迎です。
zend-framework - ACL の実装方法
私はZend_Acl
、PHP を使用しており、sld ACL をどのように実装するのか疑問に思っています。
すべてのページをリソースにする必要があり、ユーザーが承認されているかどうかを確認するために常にacl を照会しますか? ユーザーが許可されているかどうかを確認するためにコントローラー プラグイン (すべての要求で実行するようにセットアップできます) を使用する場合は、これを使用する必要があると思いますか?
それとも、クエリコードを必要な場所に置くだけですか? 例えば。ページの上部で ACL を照会する必要がありますか? 次に、公開されているページで、スキップしますか?アプリが大きくなると面倒になるかも?