2012-04-24 24 views
5

私のアプリケーション用のACLシステムを構築したいと考えています。Zend_Acl(役割と権限がデータベースに格納されています)

  1. ユーザーには、1つまたは複数の役割が割り当てられます。 (管理者、スタッフ)
  2. 役割には権限があります(Send_Invoices、Send_mail、Delete_Invoices、Send_Estimate)。
  3. ユーザーは、継承するロールとは別にカスタム権限が割り当てられます。

role: 
+----------+-------------+------+-----+---------+----------------+ 
| Field | Type  | Null | Key | Default | Extra   | 
+----------+-------------+------+-----+---------+----------------+ 
| id  | int(11)  | NO | PRI | NULL | auto_increment | 
| roleName | varchar(50) | NO | UNI | NULL |    | 
+----------+-------------+------+-----+---------+----------------+ 
permission: 
+----------------+-------------+------+-----+---------+----------------+ 
| Field   | Type  | Null | Key | Default | Extra   | 
+----------------+-------------+------+-----+---------+----------------+ 
| id    | int(11)  | NO | PRI | NULL | auto_increment | 
| permissionName | varchar(50) | NO |  | NULL |    | 
| permissionKey | varchar(50) | NO | UNI | NULL |    | 
+----------------+-------------+------+-----+---------+----------------+ 
role_permission 
+---------------+---------+------+-----+---------+----------------+ 
| Field   | Type | Null | Key | Default | Extra   | 
+---------------+---------+------+-----+---------+----------------+ 
| id   | int(11) | NO | PRI | NULL | auto_increment | 
| role_id  | int(11) | NO | MUL | NULL |    | 
| permission_id | int(11) | NO |  | NULL |    | 
+---------------+---------+------+-----+---------+----------------+ 
user_role 
+---------------+---------+------+-----+---------+----------------+ 
| Field   | Type | Null | Key | Default | Extra   | 
+---------------+---------+------+-----+---------+----------------+ 
| id   | int(11) | NO | PRI | NULL | auto_increment | 
| user_id  | int(11) | NO | MUL | NULL |    | 
| role_id  | int(11) | NO |  | NULL |    | 
+---------------+---------+------+-----+---------+----------------+ 
user_permission 
+---------------+---------+------+-----+---------+----------------+ 
| Field   | Type | Null | Key | Default | Extra   | 
+---------------+---------+------+-----+---------+----------------+ 
| id   | int(11) | NO | PRI | NULL | auto_increment | 
| user_id  | int(11) | NO | MUL | NULL |    | 
| permission_id | int(11) | NO |  | NULL |    | 
+---------------+---------+------+-----+---------+----------------+ 

を次のようにACLのための私のデータベース構造がある私は、Zend Frameworkのに移行し、Zend_Aclでは天気を決定する問題を持つことは、私は現在の構造を実装することができますしています。私の質問は。

  1. 現在のデータベース構造でACLを実装すると、Zend Frameworkで必要な作業を行うことは可能でしょうか?
  2. 私はzendフレームワークで何をしたいのかを実現するためのより良い実装がありますか?

誰かが私に必要なことをやり遂げる方法を教えてくれたら大変感謝しています。あらゆるリソース、私を助けるリンク?

ありがとうございました。

答えて

5

まあ、私は、この構造は、これはあなたが2

1-セットアップすべてのデータベースと要件

2-ユーザーの役割を決定ACLプラグインを作成する手順をしなければならなかった作業を取得するために、本当に良いと思います教義をサポートしていると彼の権限

いくつかの例:

Developing a Doctrine-backed ACL helper TDD-style, part 1

Developing a Doctrine-backed ACL helper TDD-style, part 2

別の単純なACL:

Dynamic custom ACL in zend framework?

関連する問題