問題タブ [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.
singleton - ZendAclの推奨される実装アプローチとは
Zend Framework 1.Xでは、次のアプローチのどれが優れているのか、そしてその理由は何ですか?
アプローチ-1:
Zend_Aclを拡張する(サブ)クラスを作成し、すべてのAclを管理するために使用します。これにより、$thisオブジェクトを使用してすべてのZend_Acl機能/関数を使用できるようになります。
アプローチ2:
Zend_Aclオブジェクトを保持するカスタムクラスを作成し、オブジェクトに対してアクションを実行します。ここでは、ラッパー関数を作成し、Zend_Aclの基本関数へのアクセスを制御して、ほんの一握りの機能のみを使用できます。
シングルトンパターンを両方のアプローチに使用して、サイト全体で同じZend_Aclが使用されるようにすることもできます。
後でZF-2.0に簡単に移植できるアプローチを探しています。他にアプローチがある場合は、それについて言及してください。それに応じて投稿を更新します。
更新:サイト全体で単一のZend_Aclオブジェクトを維持するために、シングルトン以外のアプローチはありますか?また、approach-1でシングルトンを使用し、カスタムメソッドも使用することについてどう思いますか。これにより、Zend_Aclのすべての定義済みメソッドとカスタムラッパーが提供されます。
php - Zendフレームワークの動的カスタムACL?
認証されたユーザーが、ユーザーの種類ではなく、特定のコントローラー/アクションへのアクセスを許可されるソリューションが必要です。管理者または通常のユーザー (後で標準の ACL を使用してこれを追加する可能性がありますが) が、ユーザーの現在のステータスに応じて異なります。
例えば :
彼らは 1 週間以上サイトのメンバーでしたか?
彼らは自分のプロフィールを完全に記入しましたか?
実際、今考えてみると、彼らがこのサイトに特権とバッジを持っているようなものです。
zend-framework - Zend_Aclと動的アサート
Zendコードにいくつかの動的アサーションを暗示しようとしており、[Ralph Schindler] [1]の記事を使用していますが、機能させることができませんでした。私がやりたいのは、ログインしている人が実際にUserContentの所有者であるかどうかをチェックするdeAclの「許可」ルールを作成することです。
UserクラスとUserContentクラスがあります(不要なビットはすべて削除されています)。
これで、AclクラスMy_Aclで、「member」ロール、「usercontent」リソース、および「edit」特権を定義し、次の許可ルールを作成したいと思います。
ここで、AssertはクラスZend_Acl_Assert_Interfaceを実装します。
実際のassertメソッドに何を入れるかについてはまだ苦労しています。
メンバーとしてログインしていて(つまり、$ _ roleId ='member')、次のようにUserContentの一部を編集できるかどうかを確認したいとします。
assertメソッドに次のようなものを入れたいと思います。
しかし、これによりエラーメッセージが表示されます*未定義のメソッドZend_Acl_Resource :: getUserId()*を呼び出します。奇妙なことに、リソースがUserContentのインスタンスであるかどうかをテストすると、確認が得られます。アセットメソッドに次の行を追加します。
私は確かに真実を得る。何が問題なのですか?
テストのために、次のように定義された追加のパブリック変数ownerIdをUserContentクラスに追加しました。
ここで、$ resource-> ownerIdをassertメソッドに追加しても、エラーメッセージは表示されず、クラスから値を読み取るだけです。何が問題になっていますか?$ resourceはUserContentのインスタンスですが、メソッドgetUserIdを呼び出すことはできませんが、パブリック変数$ ownerIdを呼び出すことはできますか?
[1] http://ralphschindler.com/2009/08/13/dynamic-assertions-for-zend_acl-in-zf
php - ユーザーの役割に基づいて Zend ビューの要素を表示/非表示にしますか?
Zend と PHP は初めてで、複数の内部アプリケーションを収容するポータル タイプのアプリケーションの作業を開始する準備をしています。すでに Zend_Auth をセットアップしており、Active Directory 経由でログインできるようになりました。
Zend_Acl を使用して、リソースをポータル内のアプリケーションごとに 1 つずつセットアップする方法について説明してきました。表面的には、Zend_Acl は、承認とリソースへの階層アクセスに必要なものを処理するように見えます。
いくつかの調査の結果、Zend_Acl と Zend_Navigation を組み合わせるのが一般的であることがわかりましたが、これには問題がある場合があります。
要求されたのは、フロント コントローラー プラグインを利用して各要求のリソース アクセス/権限をチェックする*こととは別に、ビュー (HTML) に表示される要素をユーザーに制御することです。たとえば、ユーザー 'Bob' がブログ アプリケーションへのアクセス権を持っていない場合、Bob のナビゲーション メニューにそれが表示されないようにします。
私には、このすべてのロジックを紹介し、ビューのチェックが間違っているかどうか。彼らはできるだけ愚かなままでいるべきだと思います。これを処理するより良い方法はありますか?ビューコードでユーザーロールに基づいて要素を条件付きで表示または非表示にすることは、私には間違っているように感じます。
zend-framework - Zend のネストされたナビゲーションが ACL で機能しない
ネストされた Zend_Navigation を Zend_ACL で動作させることができません。XML を使用してナビゲーションを定義しました。ここを参照してください: http://pastebin.com/GA8uQdKh
問題は、 filelabelなどのネストされた要素がWeb ページに表示されないことです。リソース要素を削除するか、ACL をオフにすることで、それらを表示できます。これは filelabel 要素だけです: http://pastebin.com/E7vTYcBy
私は何を間違っていますか?私の質問に何か意味がない場合は、お気軽に質問してください。
前もって感謝します。
php - 「最大実行時間」の致命的なエラーをデバッグする方法は?
アプリケーションで Zend_acl を使用しようとしています。私は「Zend Framework in action」の本に従いました。このヘルパーを追加しました:
そしてブートストラップ:
ヘルパーはコントローラーでは使用されません。すべてが正しいかどうかを確認するためにアプリを試したところ、次のエラーが発生しました。
致命的なエラー: 171 行目の /usr/share/php/ZendFramework-1.11.11/Zend/Filter/PregReplace.php で最大実行時間が 30 秒を超えました
このコール スタックを使用すると、次のようになります。
を増やしてみましたが、max_execution_time
常に同じです。最初の 4 つのスタックは変更されず、5 番目のスタックはmax_execution_time
(30 秒 => 31.7462、40 秒 => 42.6546 など) を反映しています。
だから私Zend_Controller_Front->dispatch( )
は問題の原因であると思われますが、なぜ常に最大の時間がかかるのですか? 私は少し混乱しています。誰かが私がどこを掘るべきかについて考えを持っていますか?
編集: デバッグをさらに進めます。ユーザーが許可されていない場合、ヘルパーで 4 つの要求の設定が間違っているのではないかと疑っています。ヘルパー コードも編集し、コメントを追加しました。
EDIT2: パトリック、その通り!!! 再確認したところ、無限ループに陥っていました: don't-have-access-to-login-page => go-to-login-page :-Dみんな。
zend-framework - サイトの管理セクションの Zend Framework ACL
わかりましたので、資格情報がデータベースにある場合、ユーザーを制限されたエリアに誘導するユーザーログインシステムを備えた zf アプリケーションを用意しました。ただし、同じログインフォームで、ユーザーの役割が管理者 (DB 内) であるかどうかを確認し、管理者セクションに移動するかどうかを確認したい... Zend_Acl を使用してこれを行う方法を理解するのに苦労しています。また、ACL の唯一の用途は、admin ロールを持つユーザーを admin セクションに許可することです。私は ZF にかなり慣れていないため、最善のアプローチが何であるかわかりません..AuthController の現在のコードは次のとおりです。
ありがとう
zend-framework - Zend_Acl、データベースに保存されている役割と権限
次の要件を持つアプリケーション用のACLシステムを構築したいと思います。
- ユーザーには、単一または複数の役割が割り当てられます。(管理者、スタッフ)など
- ロールには権限があります(Send_Invoices、Send_mail、Delete_Invoices、Send_Estimate)など。
- ユーザーには、継承する役割とは別に、カスタム権限が割り当てられます。
ACLのデータベース構造は次のとおりです
Zend Frameworkに移行しましたが、Zend_Aclで現在の構造を実装できるかどうかを判断するのに問題があります。私の質問はです。
- Zend Frameworkで必要なことを行うために、現在のデータベース構造でACLを実装することは可能ですか?
- zendフレームワークで私が望むことを達成できるようにするより良い実装はありますか?
誰かが私がしなければならないことを始める方法を私に提供してくれたら、私は感謝するでしょう。私を助けることができるリソース、リンクはありますか?
ありがとうございました。
zend-framework - ZendFramework アプリケーションの管理セクション
現在、ユーザー アクセスに Zend_Auth を使用するアプリケーションがあります。このサイトには、データベースで管理者の役割を持つ 1 人のユーザーが自分の資格情報を使用するときにアクセスを許可する管理セクションがあります。これを行う唯一の方法は Zend_Acl ですか? 私がやりたいことは少し複雑に思えますか、それとも私の問題に対するより簡単な解決策はありますか?
私はこれについて考えましたが、ユーザー用と管理セクション用に 1 つずつ、2 つの認証コントローラーを使用できるかどうか疑問に思っています。
zend-framework - URI のページの Zend_Navigation と Zend_Acl
Zend_Navigation
およびZend_Acl
URI ページをスタンドアロン方式 (つまり、これらの ZF ライブラリのみ) で結合しようとしています。残念ながら、ロールが一部のページを表示しないように意図している場合でも、メニューにそれらが表示されます (ただし、 を呼び出すとisAllowed
、すべてが期待どおりに機能します)。
私の問題を示すコードスニペットに従ってください:
上記を機能させるにはどうすればよいですか?ありがとう!!