首页 > 代码库 > PHP.48-TP框架商城应用实例-后台23-权限管理-权限验证
PHP.48-TP框架商城应用实例-后台23-权限管理-权限验证
权限验证
1、登录控制器
2、通过tp验证码类生成验证码图片
3、在管理员模型增加登录验证规则
4、后台中所有的控制器必须先登录才能访问
思路:在访问任何一个控制器之前都判断一个session即可,=>增加一个父控制器验证Session
让所有后台的控制器【除了Login控制器之外的】都继承自这个控制器
5、在管理员访问后台的任何一个页面之前先到数据库中查看当前管理员所在的角色是否有权限访问这个页面
在权限模型中增加此检查方法,在父类登录控制器中调用
6、后台左侧只显示当前管理员有权限访问的按钮
思路:取出当前管理员所拥有的前两级的权限,在左侧循环这些权限做为按钮!
在权限模型中增加获取当前管理员权限的方法
/******** 获取当前管理员所拥有的前两级的权限 ***********/ public function getBtns() { // 先取出当前管理员所拥有的所有的权限 $adminId = session(‘id‘); if($adminId == 1) { $priModel = M(‘privilege‘); $priData = $priModel->select(); } else { // 取出当前管理员所在角色所拥有的权限 $arModel = M(‘admin_role‘); $priData = $arModel->alias(‘a‘) ->field(‘DISTINCT c.id, c.pri_name,c.module_name,c.controller_name,c.action_name,c.parent_id‘) ->join (‘LEFT JOIN __ROLE_PRI__ b ON a.role_id=b.role_id LEFT JOIN __PRIVILEGE__ c ON b.pri_id=c.id‘) ->where(array( ‘a.admin_id‘ => array(‘eq‘, $adminId), ))->select(); } /*************** 从所有的中选出前两级 *******************/ $btns = array(); //前两级权限 foreach ($priData as $k => $v) { if($v[‘parent_id‘] == 0) { //再找这个顶的子级 foreach ($priData as $k1 => $v1) { if($v1[‘parent_id‘] == $v[‘id‘]) { $v[‘children‘][] = $v1; } } $btns[] = $v; } } return $btns; }
在menu.html中使用四维函数输出
7、在管理员模型增加一个退出账号功能 => 删除session
PHP.48-TP框架商城应用实例-后台23-权限管理-权限验证
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。