123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- namespace app\common\controller;
- use app\common\model\SystemMemberMiniapp;
- use app\common\event\Passport;
- use app\system\event\AppConfig;
- class Manage extends Base {
- protected $user;
- protected $member;
- protected $member_miniapp_id = 0;
- protected $member_miniapp;
-
-
- protected function initialize(){
- parent::initialize();
- $this->user = self::isLogin();
- $this->member = $this->user;
-
- if(Passport::getMiniapp()){
- $this->member_miniapp_id = Passport::getMiniapp()['member_miniapp_id'];
- $this->member_miniapp = SystemMemberMiniapp::where(['id' => $this->member_miniapp_id])->find();
- if(!$this->member_miniapp){
- Passport::clearMiniapp();
- }
- $this->isAppTyes($this->member_miniapp->miniapp->types);
- }
- self::isAuth();
- $assign['member_miniapp_id'] = $this->member_miniapp_id;
- $assign['member_miniapp'] = $this->member_miniapp;
- $assign['user'] = $this->user;
- $assign['member'] = $this->member;
- $this->assign($assign);
- }
-
-
-
- protected function isLogin(){
-
- $noLogin = ['system' =>['Passport.login'=>['index','reg','getpassword','logout','getregsms','getloginsms','cloud']]];
-
- $module = $this->request->module();
- $controller = $this->request->controller();
- $action = $this->request->action();
-
- if(isset($noLogin[$module])){
- if(isset($noLogin[$module][$controller]) && in_array($action,$noLogin[$module][$controller])){
- return true;
- }
- }
- $getUser = Passport::getUser();
- return $getUser ? $getUser : $this->redirect('system/passport.login/logout',302);
- }
-
- protected function isAuth(){
- $module = $this->request->module();
- $controller = strtolower($this->request->controller());
- $action = $this->request->action();
-
- if($module == 'system' || !$this->member){
- return;
- }
- if(!$this->member_miniapp){
- $this->error('你未开通任何应用');
- }
- if($module != $this->member_miniapp->miniapp->miniapp_dir){
- $this->error('禁止跨应用管理,请先开通或切换管理应用。');
- }
- if($this->member->parent_id == 0 || $this->member->auth == 0){
- return;
- }
- $authconfig = AppConfig::auth($this->member_miniapp->miniapp->miniapp_dir);
- if(empty($authconfig)){
- return;
- }
-
- foreach ($authconfig as $key => $value) {
- if($this->member->auth == $value['auth'] && isset($value['group'])){
- if(!isset($value['group'][$controller])){
- $this->error('你无权限访问当前功能,请联系创始人更改你的权限。');
- }
- if(!empty($value['group'][$controller]['action']) && !in_array($action,$value['group'][$controller]['action'])){
- $this->error('你无权限访问当前功能,请联系创始人更改你的权限。');
- }
- break;
- }
- }
- return;
- }
- }
|