Admin.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2018 https://www.sapixx.com All rights reserved.
  4. * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
  5. * @author pillar<ltmn@qq.com>
  6. * 后台管理基础控制器
  7. */
  8. namespace app\common\controller;
  9. use app\common\model\SystemMiniapp;
  10. use app\common\event\Admin as AdminLogin;
  11. class Admin extends Base {
  12. protected $miniapp = []; //管理的应用
  13. protected $miniapp_id = 0; //管理的应用ID
  14. protected function initialize(){
  15. parent::initialize();
  16. self::isLogin(); //判断是否登录
  17. $admin_miniapp = AdminLogin::getMiniapp(); //判断后台管理的应用
  18. if($admin_miniapp){
  19. $this->miniapp = SystemMiniapp::where(['id' => $admin_miniapp['miniapp_id']])->field('id,title,types,is_openapp,miniapp_dir')->find();
  20. $this->miniapp_id = $admin_miniapp['miniapp_id'];
  21. $this->isAppTyes($this->miniapp->types);
  22. }
  23. $assign['miniapp_id'] = $this->miniapp_id;
  24. $assign['miniapp'] = $this->miniapp;
  25. $this->assign($assign);
  26. }
  27. /**
  28. * 判断管理员是否登录
  29. * @access protected
  30. * @return boolean
  31. */
  32. protected function isLogin(){
  33. //不需要登录验证的页面
  34. $noLogin = ['system' =>['Admin.index'=>['login','logout']]];
  35. //当前请求方法
  36. $module = $this->request->module();
  37. $controller = $this->request->controller();
  38. $action = $this->request->action();
  39. //如果当前访问是无需登录验证则直接返回
  40. if(isset($noLogin[$module])){
  41. if(isset($noLogin[$module][$controller]) && in_array($action,$noLogin[$module][$controller])){
  42. return true;
  43. }
  44. }
  45. if(!AdminLogin::getLoginSession()){
  46. AdminLogin::setlogoutSession();
  47. return $this->redirect('system/admin.index/logout',302);
  48. }
  49. return true;
  50. }
  51. }