Zend_Acl,角色和权限存储在数据库中 [英] Zend_Acl, with roles and permissions stored in database

查看:154
本文介绍了Zend_Acl,角色和权限存储在数据库中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想为我的应用程序构建一个ACL系统,该系统具有以下要求。

i want to build an ACL system for my application which have the following requirement.


  1. 将为用户分配一个或多个角色。 (管理员,员工)等。

  2. 角色将具有权限。(发送发票,Send_mail,Delete_Invoices,Send_Estimate)等。

  3. 将为用户分配自定义权限

我的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.


  1. 是否可以在当前的数据库结构中实现ACL以在Zend Framework中做需要的事情?

  2. 有没有更好的实现方法可以让我在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部分

开发由Doctrine支持的ACL助手TDD风格,第2部分

另一个简单的ACL:

动态cus zend框架中的tom ACL?

这篇关于Zend_Acl,角色和权限存储在数据库中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆