权限访问控制功能

原创 2019-01-19 14:53:56 259
摘要://访问权限功能主要是用户登录后,通过用户信息在用户权限表中查询当前用 //户所有的权限,并通过用户执行的控制器和方法判断该控制器和方法存不存在,或者是否拥有对应的权限        //该构造函数存于base.php中,其他控制器需引入并继承该类 public function __construct()
//访问权限功能主要是用户登录后,通过用户信息在用户权限表中查询当前用
//户所有的权限,并通过用户执行的控制器和方法判断该控制器和方法存不存在,或者是否拥有对应的权限
       //该构造函数存于base.php中,其他控制器需引入并继承该类
	public function __construct(){
		parent::__construct();
		$this->_admin = session('admin');
		if(!$this->_admin){
			header('Location:/index.php/admins/account/login');
			exit;
		}
		$this->assign('admin',$this->_admin);
		$this->db = new SysDb;
		// 判断用户是否有权限
		$group = $this->db->table('admin_groups')->where(array('gid'=>$this->_admin['gid']))->item();
		if(!$group){
			$this->request_error('对不起,您没有权限');
		}
		$rights = json_decode($group['rights']);
		// 当前访问的菜单
		$controller = request()->controller();//获取当前控制器
		$method = request()->action();//获取当前方法
		$res = $this->db->table('admin_menus')->where(array('controller'=>$controller,'method'=>$method))->item();
		if(!$res){
			$this->request_error('对不起,您访问的功能不存在');
		}
		if($res['status'] == 1){
			$this->request_error('对不起,该功能已禁止使用');
		}
		if(!in_array($res['mid'],$rights)){
			$this->request_error('对不起,您没有权限!');
		}

	}
	//判断请求是不是ajax类型,并返回json数据
	private function request_error($msg){
		if(request()->isAjax()){
			exit(json_encode(array('code'=>1,'msg'=>$msg)));
		}
		exit($msg);
	}



批改老师:天蓬老师批改时间:2019-01-19 15:53:43
老师总结:json_encode()这样的函数,其实不需要加的, 默认就是json

发布手记

热门词条