ECSHOP后台权限分配原理分析
思路
- 在侧边栏里添加导航连接,连接到对应的控制器
- admin_action表里插入记录
parent_id=1,action_code=goods_cart_manage
- 权限界面里添加上这个权限的复选框(inc_priv.php)
- 控制器里添加验证的代码,
admin_priv('goods_cart_manage')
;
ecshop的权限管理非常灵活,设计也非常巧妙,他所有的权限,栏目操作和栏目的名称,都有非常紧密的联系。
步骤
所有的权限操作动作在ecs_admin_action表中,parent_id = 0的为顶级栏目,parent_id:1-11对应权限分配界面的11个栏目,其他子栏目的操作,都继承了parent_id 和顶级栏目关联起来.当你增加了后台栏目,需要给该栏目授权的时候,按下面步骤操作:
A1.左侧列表添加导航goods_cart_manage
导航
-
添加左侧导航栏上goods_cart_manage
在
admin\includes\inc_menu.php
中增加$modules['02_cat_and_goods']['goods_cart_manage'] = 'goods_cart_manage.php?act=list'
; -
定义goods_cart_manage的中文名字
-
['goods_cart_manage']
是在languages\zh_cn\admin\common.php
里定义的中文名称$_LANG['goods_cart_manage'] = '购物车管理'
; //这样goods_cart_manage
就会显示为购物车管理
A2.在admin_action表里插入记录
parent_id=1,action_code=goods_cart_manage
A3.inc_priv.php
中给栏目( goods_cart_manage.php?action=list
)定义权限为goods_cart_manage
-
定义权限.
在
admin\includes\inc_priv.php
中,你可以增加$purview['goods_cart_manage'] = 'goods_cart_manage'; //那么这个栏目(
goods_cart_manage.php?action=list`)将用goods_cart_manage来控制权限. -
定义为成中文名字
在
anguages\zh_cn\admin\priv_action.php
中定义goods_cart_manage
的中文名字$_LANG['goods_cart_manage'] = '购物车管理';
,
权限管理->管理员列表->授权 会显示相应权限
你可以给予授权,权限管理在电子商务系统中特别重要,需要划分合理,安全划分.
A4.程序中检测权限
- 程序中,也就是在
goods_cart_manage.php
中,用函数admin_priv('goods_cart_manage')
来检测权限;
来源:中国B4C电子商务
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构