mysql - Zend 2 与数据库的单独访问控制

标签 mysql zend-framework2 acl

我了解 ZF2 中 RBAC 的概念,即使在配置文件中定义了 ACL。但现在我想让我的一些应用程序模块可供个人用户使用。例如。用户“foo@bar.com”可以使用模块A和C,用户“bar@foo.net”有A和B可用,依此类推。我可以在 MySQL 数据库中实现这一点,但是在 ZF2 中如何实现呢?我有一个带有“isAllowed”函数的 ACLService 类,其中比较角色,这是引入某些数据库的正确位置吗?

最佳答案

简而言之,解决方案可能是:

您引入了一个user_role 表和一个role_privileges 表。 在您的 user_role 表中,您将 user_idemailusername(唯一的用户标识符)链接到 角色

在您的role_privileges表中,您将角色链接到一个或多个权限(在您的情况下是模块 ,但它也可以是 Controller 名称或路由或任何您想要管理的内容)。

您还可以跳过role_privileges 表并在配置中定义权限。这取决于你的决定...

如果您不想编写所有代码,那么可以使用几个 ZF2 模块来实现这一点。

关于mysql - Zend 2 与数据库的单独访问控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30494654/

相关文章:

php - 表行值 (MySql)

mySQL 查询获取多个时间范围

zend-framework2 - 使用 ZF2 强制下载

ruby-on-rails - 将 ACL 设置为 public_read 的文件上传到 AWS S3

mysql - 如何在另一个表中使用数据类型字符串作为外键创建无主键

mysql - SQL返回属性不存在的连接的默认值

mysql - Zend Framework 2 Db getColumns

php - ZF2 getServiceLocator() 未找到?

php - F3 (Fat-Free PHP framework) 并向其添加 MVC/OOP 结构

ios - 更新查询对象上的解析 ACL