我了解 ZF2 中 RBAC 的概念,即使在配置文件中定义了 ACL。但现在我想让我的一些应用程序模块可供个人用户使用。例如。用户“foo@bar.com”可以使用模块A和C,用户“bar@foo.net”有A和B可用,依此类推。我可以在 MySQL 数据库中实现这一点,但是在 ZF2 中如何实现呢?我有一个带有“isAllowed”函数的 ACLService 类,其中比较角色,这是引入某些数据库的正确位置吗?
最佳答案
简而言之,解决方案可能是:
您引入了一个user_role
表和一个role_privileges
表。
在您的 user_role
表中,您将 user_id
、email
或 username
(唯一的用户标识符)链接到 角色
。
在您的role_privileges
表中,您将角色
链接到一个或多个权限
(在您的情况下是模块
,但它也可以是 Controller 名称或路由或任何您想要管理的内容)。
您还可以跳过role_privileges
表并在配置中定义权限。这取决于你的决定...
如果您不想编写所有代码,那么可以使用几个 ZF2 模块来实现这一点。
关于mysql - Zend 2 与数据库的单独访问控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30494654/