查看: 840|回复: 0

fastadmin插件控制器

[复制链接]

748

主题

39

回帖

3907

积分

管理员

总舵主

积分
3907
QQ
发表于 2024-1-9 16:58:06 | 显示全部楼层 |阅读模式
目录:/vendor/karsonzhang/fastadmin-addons/src/addons/Controller.php

  1. protected function _initialize()
  2.     {
  3.         // 检测IP是否允许
  4.         if (function_exists("check_ip_allowed")) {
  5.             check_ip_allowed();
  6.         }

  7.         // 渲染配置到视图中
  8.         $config = get_addon_config($this->addon);
  9.         $this->view->assign("config", $config);

  10.         $lang = $this->request->langset();
  11.         $lang = preg_match("/^([a-zA-Z\-_]{2,10})\$/i", $lang) ? $lang : 'zh-cn';

  12.         // 加载系统语言包
  13.         Lang::load([
  14.             ADDON_PATH . $this->addon . DS . 'lang' . DS . $lang . EXT,
  15.         ]);

  16.         // 设置替换字符串
  17.         $cdnurl = Config::get('site.cdnurl');
  18.         $this->view->replace('__ADDON__', $cdnurl . "/assets/addons/" . $this->addon);

  19.         $this->auth = Auth::instance();
  20.         // token
  21.         $token = $this->request->server('HTTP_TOKEN', $this->request->request('token', \think\Cookie::get('token')));

  22.         $path = 'addons/' . $this->addon . '/' . str_replace('.', '/', $this->controller) . '/' . $this->action;
  23.         // 设置当前请求的URI
  24.         $this->auth->setRequestUri($path);
  25.         // 检测是否需要验证登录
  26.         if (!$this->auth->match($this->noNeedLogin)) {
  27.             //初始化
  28.             $this->auth->init($token);
  29.             //检测是否登录
  30.             if (!$this->auth->isLogin()) {
  31.                 $this->error(__('Please login first'), 'index/user/login');
  32.             }
  33.             // 判断是否需要验证权限
  34.             if (!$this->auth->match($this->noNeedRight)) {
  35.                 // 判断控制器和方法判断是否有对应权限
  36.                 if (!$this->auth->check($path)) {
  37.                     $this->error(__('You have no permission'));
  38.                 }
  39.             }
  40.         } else {
  41.             // 如果有传递token才验证是否登录状态
  42.             if ($token) {
  43.                 $this->auth->init($token);
  44.             }
  45.         }

  46.         // 如果有使用模板布局
  47.         if ($this->layout) {
  48.             $this->view->engine->layout('layout/' . $this->layout);
  49.         }

  50.         $this->view->assign('user', $this->auth->getUser());

  51.         $site = Config::get("site");

  52.         $upload = \app\common\model\Config::upload();

  53.         // 上传信息配置后
  54.         Hook::listen("upload_config_init", $upload);
  55.         Config::set('upload', array_merge(Config::get('upload'), $upload));

  56.         // 加载当前控制器语言包
  57.         $this->assign('site', $site);
  58.     }
复制代码


道不同,不相为谋!理想要有,万一实现了呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:2513533699@qq.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|鲁ICP备19000917号|鲁公网安备37078302000320号

在本版发帖
关注公众号
QQ客服返回顶部