app = $app; $this->request = $this->app->request; $this->module = strtolower(app('http')->getName()); $this->controller = strtolower($this->request->controller()); $this->action = strtolower($this->request->action()); $this->uid = 0; // 控制器初始化 $this->initialize(); } // 初始化 protected function initialize() { // 检测权限 $this->checkLogin(); $this->param = $this->request->param(); } /** * 显示当前登录账户信息 */ protected function showLoginUserInfo() { $session_admin = get_config('app.session_admin'); if (Session::has($session_admin)) { $loginUser = Session::get($session_admin); // 输出当前登录账户信息 // echo '当前登录账户信息:' . $loginUser['username']; } } /** *验证用户登录 */ protected function checkLogin() { // 定义一个不需要登录验证的接口白名单 $noNeedLogin = [ 'apiout/businessinfo/product_info', 'apiout/businessinfo/bifill', 'apiout/index/getpicbedfolder', 'apiout/download/catelist', 'apiout/download/cateinfo', ]; // 当前请求的路径 $currentPath = $this->module . '/' . $this->controller . '/' . $this->action; // 检查当前路径是否在白名单中 if (in_array($currentPath, $noNeedLogin)) { return true; } if ($this->controller !== 'login' && $this->controller !== 'captcha') { $session_admin = get_config('app.session_admin'); if (!Session::has($session_admin)) { if ($this->request->isAjax()) { return to_assign(404, '请先登录'); } else { // redirect('/home/login/index.html')->send(); // exit; return to_assign(404, '请先登录'); } } else { $loginUser = Session::get($session_admin); $loginInfo = Db::name('Admin')->where('id', $loginUser['id'])->find(); $this->uid = $loginInfo['id']; $params = [ 'uid' => $this->uid, 'name' => $loginInfo['name'], 'thumb' => $loginInfo['thumb'], 'module' => $this->module, 'controller' => $this->controller, 'action' => $this->action, 'url' => $this->module . '/' . $this->controller . '/' . $this->action, 'version' => get_system_config('web', 'version') ]; View::assign('params', $params); // 验证用户访问权限 if (($this->module == 'api') || ($this->module == 'home') || ($this->module == 'apiout')) { return true; } else { $reg_pwd = Db::name('Admin')->where(['id' => $this->uid])->value('reg_pwd'); if ($reg_pwd !== '') { redirect('/home/user/edit_password.html')->send(); exit; } if (!$this->checkAuth()) { if ($this->request->isAjax()) { return to_assign(202, '你没有权限,请联系管理员或者人事部'); } else { echo '