Zend_Acl中,用角色和权限存储在数据库(Zend_Acl, with roles and pe

2019-07-29 03:25发布

我想建立一个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框架,并有问题决定阉Zend_Acl里可以让我实现目前的结构。 我的问题是。

  1. 有可能是我实现与当前数据库结构的ACL做Zend框架要紧的?
  2. 有没有更好的实施,可以让我实现我理想中Zend框架?

我会很感激,如果有人可以提供我开始与我需要做的一种方式。 任何资源,链接,能帮助我吗?

谢谢。

Answer 1:

嗯,我觉得这样的结构是非常好的,得到这个工作,你必须做2步

1,安装所有数据库和要求

2 - 创建一个ACL插件确定用户的角色和他的权限

一些示例教义支持:

开发一个学说支持的ACL辅助TDD风格,部分1

开发一个学说支持的ACL辅助TDD风格,部分2

另一个简单的ACL:

Zend框架中自定义动态ACL?



文章来源: Zend_Acl, with roles and permissions stored in database