thinkPHP框架RBAC实现原理分析(2)

<?php namespace Admin\Controller; use Think\Controller; class FatherController extends Controller{ // 构造函数 public function __construct(){ // 实例化父类构造函数 parent::__construct(); // session('admin_id')会在后面的验证成功后被保存 // session()中的?表示判断 fi(!session('?admin_id')){ $this->error('必须登录后才可以执行操作',U('Back/login')); } // 这里是后面新建的内容 // CONTROLLER_NAME 当前调用的控制器名,think的变量 // ACTION_NAME 与CONTROLLER_NAME一样,表示当前调用的控制器下的方法 $currentMethod=CONTROLLER_NAME.'https://www.jb51.net/'.ACTION_NAME; // 上面其实是thinkphp一般的pathinfo模式的url格式 // Index随便调用,其实就是主页,在主页有其他设置,用于展现其所拥有的权限,这个后面再看 if(CONTROLLER_NAME=='Index'){ return true; } // 读取用户所拥有的所有权限,已经将字符串解析成数组形式了 $allowMethod=session('auth_id_lst'); // *表示超级用户,拥有所有权限,如果用户请求超越自己权限的操作,则会显示错误提示页面 if($allowMethod!='*' && !in_array($currentMethod, $allowMethod)){ $this->error('越权操作',U('Index/index')); } } } ?>

1.4 主页显示内容

主页是使用thinkphp的内置标签自动生成的,所以只要把握好输出的内容,就可以限制住给于用户的操作权限,上面说过,其中赋予用户的操作权限都是保存在session('menu')中,所以只要在内置标签中调用这个值进行显示就可以了,具体内容就是这样。

讲的很烂我知道,毕竟只花了半个小时看其中的具体内容,之后可能会尝试自己写写看吧,那时候再说吧。

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/addf9d97b8f7109fe4b42ed31698885b.html