<?php /** * 基础类,验证是否登录 */ namespace app\admins\controller; use think\App; use think\Controller; use think\Db; use think\facade\Request; use think\facade\Session; class Base extends Controller { public function __construct() { parent::__construct(); if(!Session::has('admin')){ header('Location:/index.php/admins/Login/login'); /*$this->error('您还未登陆,请返回登陆!','Login/login');*/ exit(); } $this->admin = Session::get('admin'); $this->assign('admin',$this->admin['username']); //判断用户是否有权限 $group = Db::table('roles')->where(array('gid'=>$this->admin['gid']))->find(); if(!$group){//这里要判断是ajax提交的数据还是路由访问的,二者要返回不一样的数据格式 $this->request_error('对不起,您没有访问权限'); } $rights = json_decode($group['rights']); //通过访问的方法来判断这些控制器或方法是否存在 $controller = Request::controller(); $method = Request::action(); $res = Db::table('admins_menu')->where(array('controller'=>$controller,'method'=>$method))->find(); if(!$res){ $this->request_error('对不起,您访问的功能不存在'); } if($res['status']==1){ $this->request_error('对不起,该功能已禁用'); } if(!in_array($res['mid'],$rights)){ $this->request_error('对不起,您没有权限'); } } private function request_error($msg) { if(Request::isAjax()){//如果是ajax提交 exit(json_encode(array('code'=>1,'msg'=>$msg))); } exit($msg); } }