返回权限访问控制...登陆

权限访问控制

在乎山水2019-04-17 22:17:17234
<?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);
    }
}


最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送