Zend _Acl, с ролями и разрешениями, хранящимися в базе данных

Я хочу создать систему ACL для своего приложения, которая имеет следующие требования.

  1. Пользователям будет назначена одна или несколько ролей. (Администратор, персонал )и т. д.
  2. Роль будет иметь разрешения. (Отправить _Счета, Отправить _почту, Удалить _Счета, Отправить _Оценить )и т. д.
  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. Могу ли я реализовать ACL с текущей структурой базы данных, чтобы делать все необходимое в Zend Framework?
  2. Есть ли лучшая реализация, которая позволила бы мне достичь того, чего я хочу, в среде Zend?

Я буду признателен, если кто-нибудь подскажет, как начать делать то, что мне нужно. любые ресурсы, ссылки, которые могли бы мне помочь?

Спасибо.

5
задан Ibrahim Azhar Armar 24 April 2012 в 06:48
поделиться