diff --git a/application/common/controller/GuildAdmin.php b/application/common/controller/GuildAdmin.php index 0a28505..f5e0156 100644 --- a/application/common/controller/GuildAdmin.php +++ b/application/common/controller/GuildAdmin.php @@ -228,7 +228,7 @@ class GuildAdmin extends Controller } // 配置信息后 Hook::listen("config_init", $config); - $this->guildId = Session::get('guild_id') ?? 0; + $this->guildId = Session::get('guild_admin')['guild_id'] ?? 0; //加载当前控制器语言包 $this->loadlang($controllername); //渲染站点配置 @@ -238,7 +238,7 @@ class GuildAdmin extends Controller //渲染权限对象 $this->assign('auth', $this->auth); //渲染管理员对象 - $this->assign('admin', Session::get('admin')); + $this->assign('admin', Session::get('guild_admin')); } /** diff --git a/application/guildadmin/controller/Admin.php b/application/guildadmin/controller/Admin.php index 2a3c162..6d69cfb 100644 --- a/application/guildadmin/controller/Admin.php +++ b/application/guildadmin/controller/Admin.php @@ -40,7 +40,6 @@ class Admin extends GuildAdmin $this->model = model('guildadmin/Admin'); $this->authRuleModel = model('guildadmin/AuthRule'); $this->authGroup = model('guildadmin/AuthGroup'); - $this->guildId = Session::get('guild_id'); $this->childrenAdminIds = $this->auth->getChildrenAdminIds($this->auth->isSuperAdmin()); $this->childrenGroupIds = $this->auth->getChildrenGroupIds($this->auth->isSuperAdmin()); if($this->auth->id ==1){ diff --git a/application/guildadmin/library/Auth.php b/application/guildadmin/library/Auth.php index bf7fea9..48bf8ce 100644 --- a/application/guildadmin/library/Auth.php +++ b/application/guildadmin/library/Auth.php @@ -65,10 +65,10 @@ class Auth extends \fast\GuildaAuth $admin->token = Random::uuid(); $admin->save(); Session::set("guild_admin", $admin->toArray()); + Session::set("guild_id", $admin['guild_id']); Session::set("guild_admin_id", $admin['id']); Session::set("guild_admin.safecode", $this->getEncryptSafecode($admin)); Cache::set("guild_admin_" . $admin->token, json_encode($admin->toArray()), 86400); - Session::set("guild_id", $admin['guild_id']); $this->keeplogin($admin, $keeptime); return true; } @@ -86,6 +86,8 @@ class Auth extends \fast\GuildaAuth } $this->logined = false; //重置登录状态 Session::delete("guild_admin"); + Session::delete("guild_id"); + Session::delete("guild_admin_id"); Cookie::delete("guild_keeplogin"); Cache::rm("guild_admin_" . $admin->token); setcookie('guild_userinfo', '', $_SERVER['REQUEST_TIME'] - 3600, rtrim(url("/" . request()->module(), '', false), '/')); @@ -118,6 +120,8 @@ class Auth extends \fast\GuildaAuth return false; } Session::set("guild_admin", $admin->toArray()); + Session::set("guild_id", $admin['guild_id']); + Session::set("guild_admin_id", $admin['id']); Session::set("guild_admin.safecode", $this->getEncryptSafecode($admin)); //刷新自动登录的时效 $this->keeplogin($admin, $keeptime); @@ -292,21 +296,22 @@ class Auth extends \fast\GuildaAuth public function getGroups($uid = null) { $uid = is_null($uid) ? $this->id : $uid; + $guild_id = Session::get('guild_admin')['guild_id'] ?? 0; // return parent::getGroups($uid); if($uid == 1){ - $user_groups = Db::name('vs_guild_admin_auth_group_access') + $user_groups = db::name('vs_guild_admin_auth_group_access') ->alias('aga') ->join('fa_vs_guild_admin_auth_group ag', 'aga.group_id = ag.id', 'LEFT') ->field('aga.uid,aga.group_id,ag.id,ag.pid,ag.name,ag.rules') ->where("aga.uid='{$uid}' and ag.status='normal'") ->select(); }else{ - $user_groups = Db::name('vs_guild_admin_auth_group_access') + $user_groups = db::name('vs_guild_admin_auth_group_access') ->alias('aga') ->join('fa_vs_guild_admin_auth_group ag', 'aga.group_id = ag.id', 'LEFT') ->field('aga.uid,aga.group_id,ag.id,ag.pid,ag.name,ag.rules') ->where("aga.uid='{$uid}' and ag.status='normal'") - ->where('ag.guild_id', Session::get('guild_id')) + ->where('ag.guild_id', $guild_id) ->select(); } @@ -330,6 +335,7 @@ class Auth extends \fast\GuildaAuth public function getRuleIds($uid = null) { $uid = is_null($uid) ? $this->id : $uid; + $guild_id = Session::get('guild_admin')['guild_id'] ?? 0; // 执行查询 if($uid==1){ return parent::getRuleIds($uid); @@ -339,7 +345,7 @@ class Auth extends \fast\GuildaAuth ->join('fa_vs_guild_admin_auth_group ag', 'aga.group_id = ag.id', 'LEFT') ->field('aga.uid,aga.group_id,ag.id,ag.pid,ag.name,ag.rules') ->where("aga.uid='{$uid}' and ag.status='normal'") - ->where('ag.guild_id', Session::get('guild_id')) + ->where('ag.guild_id', $guild_id) ->select(); $groups[$uid] = $user_groups ?: []; $ids = []; //保存用户所属用户组设置的所有权限规则id @@ -379,6 +385,7 @@ class Auth extends \fast\GuildaAuth public function getChildrenGroupIds($withself = false) { //取出当前管理员所有的分组 + $guild_id = Session::get('guild_admin')['guild_id'] ?? 0; $groups = $this->getGroups(); $groupIds = array_column($groups, 'id'); $originGroupIds = $groupIds; @@ -389,7 +396,7 @@ class Auth extends \fast\GuildaAuth } } // 取出所有分组 - $groupList = \app\guildadmin\model\AuthGroup::where($this->isSuperAdmin() ? '1=1' : ['status' => 'normal'])->where('guild_id', Session::get('guild_id'))->select(); + $groupList = \app\guildadmin\model\AuthGroup::where($this->isSuperAdmin() ? '1=1' : ['status' => 'normal'])->where('guild_id', $guild_id)->select(); $objList = []; foreach ($groups as $k => $v) { if ($v['rules'] === '*') { @@ -418,6 +425,7 @@ class Auth extends \fast\GuildaAuth */ public function getChildrenAdminIds($withself = false) { + $guild_id = Session::get('guild_admin')['guild_id'] ?? 0; $childrenAdminIds = []; if (!$this->isSuperAdmin()) { $groupIds = $this->getChildrenGroupIds(false); @@ -425,7 +433,7 @@ class Auth extends \fast\GuildaAuth ->column('uid'); } else { //超级管理员拥有所有人的权限 - $childrenAdminIds = Admin::where('guild_id', Session::get('guild_id'))->column('id'); + $childrenAdminIds = Admin::where('guild_id', $guild_id)->column('id'); } if ($withself) {