thinkPHP5 权限验证 附数据表

浏览:1338 发布日期:2017/08/21 分类:ThinkPHP5专区 关键字: 权限验证
http://v.badbabe.cn/dianying
这是一个后台的基类,控制器继承这个就可以了namespace app\admin\controller;
use think\Controller;

class Init extends Controller
{
    public function _initialize()
    {
        $admin = session('admin');

        if(empty($admin)){
            $this->error('您还未登录,请登录后再来',url('login/index'),0);
        }

        $nodes = db('role')->where(['id'=>$admin['role_id']])->value('nodes');
        $where = '1=1';
        if($admin['role_id'] !=1){
            $where .= ' and id in('.$nodes.')';
        }
        $node = db('node')->where($where)->select()->toArray();
        foreach ($node as $k=>$v){
            $urls[$k] = strtolower($v['url']);
            $node[$k]['url'] = strtolower($v['controller'].'/'.$v['action']);
            $node[$k]['controller'] = strtolower($v['controller']);
            $node[$k]['action'] = strtolower($v['action']);
        }

        $controller = strtolower(request()->controller());
        $action = strtolower(request()->action());
        $url = 'admin/'.$controller.'/'.$action;
        $urls[] = 'admin/index/index';
        $this->assign('node',$node);
        $this->assign('controller',$controller);
        $this->assign('action',$action);

        if(!in_array($url, $urls) && $admin['role_id'] != 1){
            $this->error('您无权操作此内容');
        }
    }
}

附件 sql.zip ( 3.85 KB 下载:34 次 )

最佳答案
评论( 相关
后面还有条评论,点击查看>>