5

次の要件を持つアプリケーション用のACLシステムを構築したいと思います。

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

ACLのデータベース構造は次のとおりです

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    |                |
+---------------+---------+------+-----+---------+----------------+

Zend Frameworkに移行しましたが、Zend_Aclで現在の構造を実装できるかどうかを判断するのに問題があります。私の質問はです。

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

誰かが私がしなければならないことを始める方法を私に提供してくれたら、私は感謝するでしょう。私を助けることができるリソース、リンクはありますか?

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

4

2 に答える 2

5

この構造は本当に良いと思います。これを機能させるには、2つのステップを実行する必要がありました。

1-すべてのデータベースと要件を設定します

2-ユーザーの役割と権限を決定するACLプラグインを作成します

教義をサポートするいくつかの例:

Doctrineに裏打ちされたACLヘルパーTDDスタイルの開発、パート1

Doctrineに裏打ちされたACLヘルパーTDDスタイルの開発、パート2

別の単純なACL:

zendフレームワークの動的カスタムACL?

于 2012-04-25T11:26:55.180 に答える
0

すでにデータベースにあるGrants/Rolesシステムを使用してみませんか?

于 2021-10-20T21:51:07.900 に答える