插件开发中的菜单权限坑:那些年我跳过的ACL大坑
最近在给Discuz!插件加后台菜单时,又双叒叕被权限节点坑了。明明菜单注册代码写得飞起,前台就是不显示。排查半天才发现是权限节点声明漏了个下划线,记录下这些血泪教训:
1. 菜单注册时最容易被忽略的namespace问题。如果插件目录是abc_plugin,权限节点必须写成plugin/abc_plugin,少个斜杠直接GG。我在ThinkPHP插件里就因为这个熬夜到凌晨三点,死活调不出菜单。
2. 权限节点的命名规范比想象中严格。有次用驼峰命名写admin/pluginManage,结果权限系统直接不认。后来发现必须全小写加下划线,改成admin/plugin_manage才生效。
3. 多级菜单的权限陷阱。有次做了三级菜单,第二级能显示但第三级死活出不来。后来发现每级都要单独声明权限节点,光声明父级是不够的。现在我都习惯在插件安装时用脚本自动注册所有节点权限。
4. 最坑的是某些CMS的路由缓存。明明改了权限配置,刷新后还是旧版。后来学会在开发时直接关掉路由缓存,上线前再统一清理。有个项目因为这个被客户投诉了三次,说我们功能时有时无...
现在我的标准操作流程:写完菜单注册代码后,第一时间去数据库的auth_rule表里确认节点是否存在。你们还有哪些踩坑经历?欢迎在评论区补充~
最新打赏

