首页 > 作文

tp5.1 Auth类实现权限管理

更新时间:2023-04-08 00:15:55 阅读: 评论:0

了解来这么久权限控制权限的知识,却不知道如何写代码,网上的代码多数并没有多少完整的源码能提供参考。偶然看到官网的例子,现在终于也把源码的实现也弄得明白了一点。

tp5框架的auth类可以实现页面的访问权限,还可以精确到页面上的按钮。页面访问主要靠rule表的name字段。附加条件权限主要看condition字段。

源码下载:https://files.cnblogs.com/files/mzzone/d.zip,数据库配置在databa.php.数据库名为tp5_db.

源码是从官网的一篇权限管理文章下的,他那里提到了对节点(路由)进行权限管理,但没有具体源码。又查阅了其他几篇文章,加了34ddd一些代码,

仅仅是实现了

1.除开放页干部培训心得面,要求用户登录才能继续访问其他页面。

2.规定哪些用户可以访问哪些页面。

着重控制是访问页面的权限,按钮点击是否有效的权限官网的也有示例。

权限控制分为几个情况

// 1.首先判断是否为超级管理员
// –管理员直接放行
// –非管理员再次判断
// 2.如果是非管理员,再次判断访问的节点是否在开放的数组列表中
// –节点在属于开放权限,直接放行
// –节点不属于开放权限,再次判断
// 3.不属于开放权限,判断有没有登录
// –用户已经登录,继续使用auth类检查有无权限
// —–用户有权限,直接放行
// —–用户无权限,可以选择不做动作,也可以让它跳转到首页。
// –用户未登录,提示并跳转到登录页面。

auth类实现权限控制的原理就是增加一个基础控制器ba继承controller,其他需要进行权限控制的控制器继承ba。ba控制器中的_initialize方法就是这个技术点的核心了。凡是继承自ba的控制器都会优先执行这个方法。这里面的过程分为几个步骤,下面是他的代码及其图解。源码放到根目录之后,将sql导入数据库,数据库名为tp5_db,没有的话,先新建一个。

<?phpnamespace app\index\controller;u think\request;u think\controller;u think\auth\auth;class ba extends controller{    public function _initialize()    {         //获得当前页面的控制器 / 方法           $request=request::instance();        $moudle=$request->module(); //获取当前控制器名称        $con=$request->controller(); //获取当前控制器名称        $action=$request->action();  //获取当前方法名称        // $this->assign(array(        //         'con惊奇近义词'=>$con,        //         'action'=>$action,        // ));        $rules=$con.'/'.$action;  //组合  控制器/方法        $auth=new auth(); //实例化auth类        $notcheck=array('index/index','index/login','index/dologin','index/logout');  //都可以访问的页面        if(ssion('uid')!=2){  //不是超级管理员才进行权限判断           if(!in_array($rules,$notcheck)){  // 是否在开放权限里面            if(!ssion('uid')){                 $this->error('请先登陆系统!','index/login');             }               if(!$auth->check($rules,ssion('uid'))){   // 第一个参数  控制/方法     第二个参数:当前登陆会员的id                  $this->error('没有权限','index/index');                };            } 工作难找怎么办         }    } }

未登录用户演示过程(首页属于开放权限,未登录用户不能访问index/addgoods节点)

未登录用户访问addgoods

登录用户首页

登录用户访问a有何特长ddgoods,并且他是有权限访问的。

本文发布于:2023-04-08 00:15:53,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/d0996b929044584e70d9285e4edd704f.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:tp5.1 Auth类实现权限管理.doc

本文 PDF 下载地址:tp5.1 Auth类实现权限管理.pdf

标签:权限   页面   控制器   用户
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图