首页 / 知识
关于php:CakePHP ACL数据库设置:ARO / ACO结构?
2023-04-14 20:07:00

CakePHP ACL Database Setup: ARO / ACO structure?我正在努力在CakePHP中实现ACL。 阅读Cake手册中的文档以及其他一些教程,博客文章等之后,我发现Aran Johnson的出色教程帮助填补了许多空白。 尽管在某些地方,他的示例似乎与我所看到的其他示例发生了冲突-特别是在他使用的ARO树结构中。 在他的示例中,他的用户组被设置为级联树,最普通的用户类型位于树的顶部,并且其子级针对每种更严格的访问类型进行分支。 在其他地方,我通常将每种用户类型视为相同的通用用户类型的子级。 如何在CakePHP中设置ARO和ACO? 任何和所有提示表示赞赏! CakePHP的内置ACL系统确实功能强大,但是在实际实现细节方面的文档很少。我们在许多基于CakePHP的项目中成功使用的系统如下。
它是对某些在其他地方记录过的组级访问系统的修改。我们系统的目标是建立一个简单的系统,在该系统中,可以在组级别上授权用户,但是他们可以对他们创建的项或基于每个用户的项具有特定的附加权限。我们希望避免在 我们有一个用户表和一个角色表。 用户数
的角色
为每个角色创建ARO树(我们通常有4个角色-未经授权的访客(ID 1),授权的用户(ID 2),站点主持人(ID 3)和管理员(ID 4)):
此后,您必须使用SQL或phpMyAdmin或类似方法为所有这些方法添加别名,因为Cake命令行工具无法执行此操作。我们对所有人都使用"角色-{id}"和"用户-{id}"。 然后,我们创建一个ROOT ACO-
然后为该ROOT目录下的所有控制器创建ACO:
到目前为止,一切正常。我们在aros_acos表中添加了一个名为
然后,我们可以将Auth组件设置为使用'crud'方法,该方法针对AclComponent :: check()验证请求的控制器/操作。在app_controller中,我们遵循以下原则:
同样,这是相当标准的CakePHP东西。然后,我们在AppController中有一个checkAccess方法,该方法添加了组级别的内容以检查是否检查组ARO或用户ARO的访问权限:
在 真的就是全部。然后,您可以允许/拒绝特定的组访问特定的acos-
我确定你知道图片。 无论如何,这个答案比我预期的要更长的时间,可能几乎没有任何意义,但我希望它对您有所帮助... -编辑-
根据要求,这里是一个经过编辑的方法(纯粹是为了清楚起见-我们的样板代码中有很多东西在这里是没有意义的)
|
最新内容
相关内容
linux设置路由器命令?
linux设置路由器命令?,网络,信息,代码,地址,电脑,工作,环境,系统,密码,路由,linux如何配置路由?注:其中第一条配置的为默认路由,默认路由掩码和linux设置根命令过短?
linux设置根命令过短?,系统,工作,软件,地址,命令,代码,情况,管理,基础,位置,30个必知的Linux命令技巧,你都掌握了吗1、su:切换用户身份。sudo:以linux上数据库的命令?
linux上数据库的命令?,服务,系统,信息,地址,命令,密码,工具,管理,数据,单位,在Linux上用命令怎么连接数据库(linux连接oracle数据库命令)1、登linux命令dm数据库?
linux命令dm数据库?,地址,软件,时间,设备,名字,服务,位置,名称,公司,命令,linux创建dm数据库超时linux/sys下无法新建 方法如下打开c盘,在用户linux命令行设置字体?
linux命令行设置字体?,系统,工具,终端,软件,电脑,数字,位置,等级,字体,命令,Linux命令行字符太小如何调大1、在命令模式下,将光标移动到将要粘linux命令详细教程?
linux命令详细教程?,系统,命令,代码,位置,工作,信息,数据,网址,地址,选项,Linux系统中的curl命令使用教程linux系统下命令行访问网页是curl命linux目录结构树命令?
linux目录结构树命令?,系统,工作,信息,数据,设备,管理,目录,发展,时间,结构,Linux系统常用操作命令有哪些1、linux常用命令: pwd命令 该命令linux命令快捷设置?
linux命令快捷设置?,第一,系统,名称,终端,发行,首页,命令,快捷键,窗口,桌面,linux下建立打开终端的快捷方式方法第一种方法:按“Ctrl+Alt+T”即linux教程零基础命令?
linux教程零基础命令?,工作,系统,地址,信息,基础,命令,管理,单位,数据,目录,linux必学的60个命令安装和登录命令:login、shutdown、halt、reboolinux命令设置扩展屏?
linux命令设置扩展屏?,工具,系统,电脑,技术,软件,装备,情况,工作,命令,显示器,Linux中如何分屏显示的命令是什么linux中如果想要把某个命令或linux命令设置自启动?
linux命令设置自启动?,服务,系统,信息,数字,检测,工具,状态,密码,跨行,脚本,linux下通过脚本实现自动重启程序自动重启脚本 假定需要实现重启linux数据库查找命令?
linux数据库查找命令?,位置,名称,状态,服务,软件,信息,系统,命令,名字,密码,在linux中如何用命令查找文件在哪使用查找命令 “find”命令允许