私はユーザーと企業が参加できるポータルを構築しています。ユーザーは独立していても会社の下で働いていてもかまいません。タイプにかかわらず(すべてのユーザーが独立しているか、会社に関連付けられているかにかかわらず)利用できる基本的なアクセスがいくつかあります。独立したユーザーが利用できる機能がいくつかありますが、ユーザーが会社の下にいる場合、会社のマネージャーは特定の機能へのアクセスを許可/禁止できます。 Zend_Aclを使ってこれをどうやって管理できますか?zend acl複数のアクセスリスト/レベル
1
A
答えて
1
あなたはACLの条件を満たすことができます。
私のACL(途中でプラグイン)を宣言するファイルでは、次の宣言があります。 Acl_AdminCanAccessUsers
はZend_Acl_Assert_Interface
であり、TRUEまたはFALSEのいずれかを返します。ここでは、要求オブジェクトをコンストラクタに渡しています。今、彼らはisAdminを持っている場合は、私たちがユーザー・レコードのDBをチェックし、要求されたパラメータと比較するか、チェックしている、ここで見ることができるようにのはAcl_AdminCanAccessUsers
<?php
class Acl_AdminCanAccessUsers implements Zend_Acl_Assert_Interface
{
public function __construct($request) {
$this->request = $request;
}
public function assert(Zend_Acl $acl,
Zend_Acl_Role_Interface $role = null,
Zend_Acl_Resource_Interface $resource = null,
$privilege = null)
{
/**
* Can only test when trying to edit a user account
*/
if ("edit" != $privilege) {
return TRUE;
}
$identity = Zend_Auth::getInstance()->getIdentity();
/**
* Get the id from the URL request
*/
$id = $this->request->getParam('id');
/**
* Get user account from DB
*/
$user = Doctrine_Core::getTable('User')->find($id);
// Are they editing their own account? Give them a pass
if ($identity->user_id == $user->user_id) {
return TRUE;
}
// If they don't have the isAdmin flag set to yes on their account
// Then we'll just deny them immediately
if ($identity->isAdmin) {
return TRUE;
}
return FALSE;
}
}
を見てみましょう
// Complex function to see if the current user can create/edit the desired user account.
$acl->allow('client', 'user', array('edit','create'), new Acl_AdminCanAccessUsers($this->_request));
それらのZend_Authアイデンティティに設定されたフラグ。役割、リソース、特権以外にアクセスする必要がある場合は、ACLの条件付き検査をたくさん行うことができます。
ハッピーコーディング!
関連する問題
- 1. zend aclのルールリストを取得
- 2. Zend Framework 1 ini config for ACL
- 3. Zend FrameworkのACLの役割とモジュール
- 4. サイトの管理セクションのZend Framework ACL
- 5. zend aclモジュール式の実装ですか?
- 6. symfony2複数のユーザの複数のオブジェクトへのACLアクセス
- 7. Zendの複数のアクションコンテキスト
- 8. Zend File Validator複数のファイルエラー
- 9. Zend Framework - 複数のナビゲーションブロック
- 10. モジュールとコントローラのアクセスに関する問題を伴うZend ACL
- 11. Zend FrameworkのPDF複数行の問題
- 12. Zend Framework 2用の複数のテーブル
- 13. zend auth store複数の値のID
- 14. Zend Framework 2でACLをロードする簡単な方法は?
- 15. zend navigationブレッドクラムを使ってACLをバイパスする
- 16. バックエンドにZend ACLを格納していますか?
- 17. Zend Framework double Aclモジュールを使用したリソース
- 18. zend dbテーブルモデルと複数テーブルのクエリ
- 19. Zend 1.11.Xフレームワーク複数のWheres?
- 20. Zend複数のディレクトリとMVCルーティング
- 21. Zend RestController xmlレスポンス>複数の行
- 22. 複数選択のSql(zend db select)
- 23. 複数のパス(ACL)の1つに一致する
- 24. Zend_Test&Controller(ACL)のリダイレクト
- 25. リモートから複数のACLを変更するPC
- 26. zendフレームワークのACLでどのようなリソースが意味するのですか?
- 27. Zf3 Acl:工場登録エラー
- 28. Zend Lucene&Symfony:1つの大きなインデックスと複数の複数のインデックス
- 29. Zend Framework 2 RBACまたはACL。どちらをお勧めしますか?
- 30. HAProxy aclルールの64ビット整数比較
あなたはまずZend_Aclの紹介を読んでください。そして、あなたはあなたがタスクを管理する方法を知らないのですか? http://framework.zend.com/manual/en/zend.acl.introduction.html –
私はデータベースにacl(ロール、リソース、アクセス権/モード)を保存していますが、2つの異なるテーブルグループがあります。 1つはサイト関連を処理し、2つ目は会社の管理者が管理するアクセスを処理しています。では、2種類のACLをどのように管理できますか?マニュアルに記載されている詳細は、データベースを使ってaclsを管理する方法についても説明していません。私はこれを達成することができましたが、複数のタイプのACLに関するいくつかのガイダンスが必要です – Bryan