2012-04-24 56 views
5

我想为我的应用程序构建一个ACL系统,它具有以下要求。Zend_Acl,存储在数据库中的角色和权限

  1. 用户将被分配一个或多个角色。 (Admin,Staff)等
  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框架中实现我想要的?

如果有人能为我提供一种方法开始处理我需要做的事情,我将不胜感激。任何资源,可以帮助我的链接?

谢谢。

回答