首页 > 代码库 > ThinkPHP权限问题
ThinkPHP权限问题
1 <?php 2 namespace Common\Controller; 3 use Think\Controller; 4 use Think\Auth; 5 6 class AuthController extends Controller { 7 //判断用户是否有该操作的权限,并判断是否要将这个权限插入规则表 8 private function checkAuth() { 9 $user = session(‘result.username‘); 10 $uid = session(‘result.id‘); 11 $controllerIndex = MODULE_NAME."/".CONTROLLER_NAME."/".ACTION_NAME; 12 $dbAuthRule = M(‘auth_rule‘); 13 $map[‘name‘] = $controllerIndex; 14 $rule = $dbAuthRule->where($map)->select(); 15 16 //如果权限表中没有这个操作,就将其插入表中 17 if(!$rule) { 18 $data[‘name‘] = $controllerIndex; 19 $data[‘status‘] = ‘1‘; 20 $data[‘type‘] = MODULE_NAME; 21 $dbAuthRule->add($data); 22 } 23 24 //判断当前用户是否在登录状态 25 if (empty($user)) { 26 $this->error("请重新登录"); 27 die; 28 } 29 30 //实例化权限类,检查用户的访问权限 31 $auth = new Auth(); 32 //$test = $auth->check($controllerIndex, $uid); 33 if (!$auth->check($controllerIndex, $uid)) { 34 $this->error(‘您没有权限访问,请联系管理员‘); 35 } 36 } 37 //实例化AuthController时,会自动调用_initialize函数 38 protected function _initialize() { 39 $this->checkAuth(); 40 } 41 }
使用ThinkPHP框架时,在公共模块Common的Controller 建立AuthController类。之后无论是在前台模块或者后台模块中,在编写接口时,首先实例化AuthController,如果没有访问权限,会自动判断。当然前提是数据库中已建立Think/Auth中指定的表。
ThinkPHP权限问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。