重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个网上方法挺多的,个人认为最简单的就是在管理员表加个权限字段,在显示栏目处加个判断,不过这种方法不是很安全;再就是在数据库建张node表、role表、role_user表、access表,其中node表存放结点,也就是栏目,role表存放权限,role_user表就是用户权限表,access表存放node_id、role_id等,不过中间有好多细节需要好好琢磨
网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于企业网站设计,高端网页制作,对酒楼设计等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业成都网站营销优化,H5建站,响应式网站。
可以使用acl控制实现,参考acl全集如下:
1、角色表
角色id - 用户组id - 特殊权限id(其中特殊权限 用户组所包含权限)
2、用户组表
用户组id - 用户组信息
3、权限表
权限表id - 权限信息 - 与功能模块的关系
4、用户组-权限关联表
用户组id - 权限集合
5、特殊权限表
特殊权限id - 权限集合
注意:
1、设置权限的删除、添加主要围绕在 用户组-权限关联表、特殊权限表。
2、用户的权限获取则是验证登陆的时候通过用户组和特殊权限获取权限集合。
3、展示的时候,根据2获取的权限集合从权限表获取所有功能模块的导航菜单。
实例代码不给你提供了,还是自己去写的好。
提供一下思路:
按照我的方法,这样去写:
首先管理员表:
tb_admin #管理员表
ad_id #管理员ID
ad_username # 管理员用户名
ad_password # 管理员密码(多重MD5)或其他加密
ad_power # 管理员权限 默认null
ad_super # 超级管理员 0否 1是 默认0
超级管理员拥有所有权限,包括可以设定其他管理员的权限
你肯定是想控制管理员左侧菜单栏的权限,首先建立一个数组,(左侧菜单数组)
然后给定每一个菜单一个id 例如:
商品管理 a
新增商品 a1
商品列表 a2 (包含删改查)
ad_power 中设定某个为 a1,a2
那么该管理员就有新增和列表两个权限。
根据登录者id查询管理员表,得到权限
例如:
ad_id =》3
ad_username=》 guanli003
ad_password =》xayufdashfhdkajshfjahsk
ad_power =》 a1,a2
ad_super =》0
// $left_menu 左侧菜单
$left_menu = array(
0 =array(
'flog' ='a1' ,
'title' = '新增商品',
)
)
// 生成一个新的数组,只包含当前登录者的权限
foreach($left_menu as $k = $v){
// 判断管理员信息权限字段是否有该权限
if(strpos($v['flog'],$admin[ad_power])){
// 组建新数组
}
}
在前端输出该数组即可。
当然这只是我的一个思路,你可以扩充一下,引入自己的实际项目当中。包括,当power字段为空时设定默认的菜单等。