PbootCMS---权限管理
最近再用PbootCMS二次开发,新增了权限管理。下面来梳理一下它的权限管理逻辑:
首先是在【系统菜单】新增了三个菜单管理:
这里注意下面的【续费列表】和【续费客户】的URL应该是不同的:
不能写成:
/admin/Renewal/index
/admin/Renewal/Customer
选择对应的功能:
新增完成后,可以查看 ay_menu_action 表:主要是 M162 M163
然后在【系统角色】里面进行权限分配。
分配完成后,查看 ay_role_level 表:主要分配了一个R102的角色:
这些生成的具体规则,就是做权限验证的规则。
然后我们查看生成:查看、删改、修改的按钮:
查看其具体方法:apps / common / function.php 以:删除和修改为例:
核心的按钮权限验证方法,在 120 和 130 行:
in_array('/' . M . '/' . C . '/del', $user_level) in_array('/' . M . '/' . C . '/mod', $user_level)
通过 M 和 C 方法,获取当前 模块(admin)控制器(Renewal / Customer)然后拼接对于的方法(del / mod)去和 $user_level 进行 in_array 的匹配,这样就完成了按钮权限的验证。
这里就是为什么在上面提到的 续费客户 的URL不能写成:admin/Renewal/Customer 的原因。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理