半年前我开始使用MVC模式,我仍然有一些误解.
现在我想在我的应用程序中实现基于角色的访问控制.但是,我的问题不是关于RBAC,而是关于MVC.
我对RBAC的实现是这样的:
用户>角色的>许可
所以每个用户(例如用户A)都可以拥有多个角色(例如读者,编辑者,管理员),每个角色都可以拥有许多权限(读取,更新,删除等).
>用户(用户列表)
>角色(角色列表)
>权限(权限列表)
> roles_permissions(角色列表 – >权限连接.例如编辑器 – >更新)
> users_roles(用户列表 – >角色连接.例如用户A->编辑器)
现在我的问题是
我应该如何在MVC中实现它?
有一个单独的模型:用户,角色,权限,roles_permissions,users_roles,而不是具有创建用户,roles_permissions和user_roles的authManager类?
这种方式是否正确?有更好的,也许更优雅的方式吗?
基本上我会坚持使用许多现有的Kohana ACL库中的一个,而不是自己编写(或者至少尝试一下它们是否符合您的需求).
您可能想要检查此线程(Wouter A1,A2和ACL模块) – http://forum.kohanaframework.org/discussion/1988/releases-a1-authentication-acl-acl-for-kohana-a2-object-level-authorization/p1
它不断更新和维护,也可用于3.2版本.
如果您觉得Wouter模块很复杂,您还可以检查Vendo ACL模块,这非常简单并且消除了很多并发症 – https://github.com/vendo/acl
示例如何使用它 – http://forum.kohanaframework.org/discussion/9517/getting-started-with-vendo-acl/p1