tp3.2.3权限控制二之后台管理部分,及菜单栏目显示问题

      上篇记录了一下权限控制部分的实现过程,以及实现的代码。但那些只是实现了简单的权限控制,具体的后台当然要有用户的管理,用户组的管理,规则管理等。这篇主要是写后台部分,和上篇凑成一个完整的环。

第一篇文章传送门:tp3.2.3权限控制详解一

一、用户管理,以及权限管理部分

1、管理员管理

这里写图片描述

这部分是比较简单的,需要注意的是,添加管理员的时候,要添加对应的分组信息。

2、权限管理

这里写图片描述

      这部分是对应权限组的列表信息。在添加管理员的时候,要同时往auth_group_access表中加上管理员对应的权限组。可以考虑使用数据库的事务。

3、添加和修改权限组对应的权限

这里写图片描述

      在新增权限组的时候,我们需要选择赋予的权限。这里是把所有控制器对应的方法都给列出来,超级管理员可以选择赋予普通管理员权限。

这里需要注意,超级管理员是权限最大的,不要限制超级管理员。

二、左边的菜单显示方式

就像之前说的,我们需要根据用户对应的权限来显示菜单栏目。如果用户没有对应的权限,我们就不显示该栏目。

1、线查询用户对应的所有规则id,也就是控制器方法的id

function getRules($adminId)
{
  $ruleArr = M('smj_admin')->where('id='."'$adminId'")->find();
  $type = $ruleArr['type'];
  $ruleStr1 = M('smj_auth_group')->where('id='."'$type'")->find();
  $ruleStr = $ruleStr1['rules'];
  //var_dump($ruleStr);
  $ruleArr = explode(',',$ruleStr);
  return $ruleArr;
}

这个方法是写在Common控制器的,作为一个公用方法。根据传过来的用户id,查询对应的瑞泽信息,并且转化成数组。

2、把获取到的规则数组传递给视图,在视图页进行判断

这里写图片描述

      我这里就是采用最笨的方法。把每个列表页在规则表中对应的id,专门找出来。然后判断这个列表页的id在不在用户对应的权限数组中。在的话就显示,不在的话就不显示。

      比如这个图片,我用户信息在auth_rule表中对应的id是12,那我就判断一下,这个12在不在用户的权限数组中。

      以上配合上第一篇文章,基本就完成一个闭环。注意把所有的方法,包括JS异步请求的方法,都加入到auth_rule表中。这样就基本OK了。

我这边做的比较简单。如果有更好的方案或者问题,请留言,谢谢。

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值