我想爲我的應用程序構建一個ACL系統,它具有以下要求。Zend_Acl,存儲在數據庫中的角色和權限
- 用戶將被分配一個或多個角色。 (Admin,Staff)等
- 角色將有權限(Send_Invoices,Send_mail,Delete_Invoices,Send_Estimate)等
- 用戶將被分配自定義權限,而不是它繼承的角色。
我對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裏可以讓我實現目前的結構。我的問題是。
- 是否有可能實現ACL與當前的數據庫結構來做需要在Zend框架?
- 有沒有更好的實現可以讓我在zend框架中實現我想要的?
如果有人能爲我提供一種方法開始處理我需要做的事情,我將不勝感激。任何資源,可以幫助我的鏈接?
謝謝。