我有这个PHP混合(过程和OOP)应用程序,我想为它创建一个RBAC。
我可以创建数据库表(权限、角色、用户等),我也可以在网上找到很多关于主题的文章,但它们似乎都缺少了我们想要保护的最重要的部分:“资源”。
Zend_ACL看起来不错,但我的应用程序不是基于MVC框架的。
问题1我想知道zend_acl是否足够松散地耦合到使用,即使我的整个应用程序不是基于对象的.
问题2当整个应用程序不是基于对象的时,如何定义资源?
问题3,,有什么好的、不过时的白皮书可以让我在处理异构(过程和面向对象的)系统时创建一个基于角色的系统?
再次感谢
发布于 2011-11-24 03:54:10
“参考资料”只是一个非常笼统、抽象的东西,实际上它可以是任何东西。在结构良好的MVC架构中,这种资源通常对应于类/方法名称,而后者又对应于URL。不过,这和其他事情一样武断。即使在纯过程PHP中,也可以任意定义资源:
$resource = 'root.foo.bar';
$user = getCurrentUser();
if (!isAllowedToAccess($user, $resource)) {
exit;
}
// do something that represents root.foo.bar如果没有良好的OO结构(但绝不是不可能的),那么跟踪哪些代码代表了哪些资源更难执行的操作。如果脚本组织得很好,您可以简单地使用脚本的文件名。
我不能对Zend_ACL做任何具体的说明,但如果它是与OO概念硬连在一起的话,我会感到惊讶的。
https://stackoverflow.com/questions/8245054
复制相似问题