Zend_Acl,角色和权限存储在数据库中 [英] Zend_Acl, with roles and permissions stored in database
问题描述
我想为我的应用程序构建一个ACL系统,该系统具有以下要求。
i want to build an ACL system for my application which have the following requirement.
- 将为用户分配一个或多个角色。 (管理员,员工)等。
- 角色将具有权限。(发送发票,Send_mail,Delete_Invoices,Send_Estimate)等。
- 将为用户分配自定义权限
我的ACL数据库结构如下
my database structure for ACL is as follows
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时遇到问题时,我可以实现当前结构。我的问题是。
i have migrated to Zend Framework, and having problem deciding wether Zend_Acl allows me to implement the current structure. my question is.
- 是否可以在当前的数据库结构中实现ACL以在Zend Framework中做需要的事情?
- 有没有更好的实现方法可以让我在zend框架中实现自己想要的目标?
i如果有人可以为我提供一种开始我需要做的事情的方式,将不胜感激。任何资源,可以帮助我的链接?
i will be grateful if someone could provide me a way to get started with what i need to do. any resources, links that could help me?
谢谢。
推荐答案
好吧,我认为这种结构真的很好,要使其正常工作,您必须执行2步
Well I think this structure is really good , to get this working you had to do 2 steps
1-设置所有数据库和需求
1-Setup all the databases and requirements
2-创建一个用于确定用户角色和权限的ACL插件
2- create an ACL plugin that determine the user's role and his permissions
带有理论支持的示例:
开发由Toctrine支持的ACL帮助程序TDD样式,第1部分
另一个简单的ACL:
这篇关于Zend_Acl,角色和权限存储在数据库中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!