测试:-公会后台登录修改

This commit is contained in:
2025-12-03 10:01:20 +08:00
parent 2d5645813b
commit be7dc27d20
3 changed files with 17 additions and 10 deletions

View File

@@ -228,7 +228,7 @@ class GuildAdmin extends Controller
} }
// 配置信息后 // 配置信息后
Hook::listen("config_init", $config); Hook::listen("config_init", $config);
$this->guildId = Session::get('guild_id') ?? 0; $this->guildId = Session::get('guild_admin')['guild_id'] ?? 0;
//加载当前控制器语言包 //加载当前控制器语言包
$this->loadlang($controllername); $this->loadlang($controllername);
//渲染站点配置 //渲染站点配置
@@ -238,7 +238,7 @@ class GuildAdmin extends Controller
//渲染权限对象 //渲染权限对象
$this->assign('auth', $this->auth); $this->assign('auth', $this->auth);
//渲染管理员对象 //渲染管理员对象
$this->assign('admin', Session::get('admin')); $this->assign('admin', Session::get('guild_admin'));
} }
/** /**

View File

@@ -40,7 +40,6 @@ class Admin extends GuildAdmin
$this->model = model('guildadmin/Admin'); $this->model = model('guildadmin/Admin');
$this->authRuleModel = model('guildadmin/AuthRule'); $this->authRuleModel = model('guildadmin/AuthRule');
$this->authGroup = model('guildadmin/AuthGroup'); $this->authGroup = model('guildadmin/AuthGroup');
$this->guildId = Session::get('guild_id');
$this->childrenAdminIds = $this->auth->getChildrenAdminIds($this->auth->isSuperAdmin()); $this->childrenAdminIds = $this->auth->getChildrenAdminIds($this->auth->isSuperAdmin());
$this->childrenGroupIds = $this->auth->getChildrenGroupIds($this->auth->isSuperAdmin()); $this->childrenGroupIds = $this->auth->getChildrenGroupIds($this->auth->isSuperAdmin());
if($this->auth->id ==1){ if($this->auth->id ==1){

View File

@@ -65,10 +65,10 @@ class Auth extends \fast\GuildaAuth
$admin->token = Random::uuid(); $admin->token = Random::uuid();
$admin->save(); $admin->save();
Session::set("guild_admin", $admin->toArray()); Session::set("guild_admin", $admin->toArray());
Session::set("guild_id", $admin['guild_id']);
Session::set("guild_admin_id", $admin['id']); Session::set("guild_admin_id", $admin['id']);
Session::set("guild_admin.safecode", $this->getEncryptSafecode($admin)); Session::set("guild_admin.safecode", $this->getEncryptSafecode($admin));
Cache::set("guild_admin_" . $admin->token, json_encode($admin->toArray()), 86400); Cache::set("guild_admin_" . $admin->token, json_encode($admin->toArray()), 86400);
Session::set("guild_id", $admin['guild_id']);
$this->keeplogin($admin, $keeptime); $this->keeplogin($admin, $keeptime);
return true; return true;
} }
@@ -86,6 +86,8 @@ class Auth extends \fast\GuildaAuth
} }
$this->logined = false; //重置登录状态 $this->logined = false; //重置登录状态
Session::delete("guild_admin"); Session::delete("guild_admin");
Session::delete("guild_id");
Session::delete("guild_admin_id");
Cookie::delete("guild_keeplogin"); Cookie::delete("guild_keeplogin");
Cache::rm("guild_admin_" . $admin->token); Cache::rm("guild_admin_" . $admin->token);
setcookie('guild_userinfo', '', $_SERVER['REQUEST_TIME'] - 3600, rtrim(url("/" . request()->module(), '', false), '/')); setcookie('guild_userinfo', '', $_SERVER['REQUEST_TIME'] - 3600, rtrim(url("/" . request()->module(), '', false), '/'));
@@ -118,6 +120,8 @@ class Auth extends \fast\GuildaAuth
return false; return false;
} }
Session::set("guild_admin", $admin->toArray()); 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)); Session::set("guild_admin.safecode", $this->getEncryptSafecode($admin));
//刷新自动登录的时效 //刷新自动登录的时效
$this->keeplogin($admin, $keeptime); $this->keeplogin($admin, $keeptime);
@@ -292,21 +296,22 @@ class Auth extends \fast\GuildaAuth
public function getGroups($uid = null) public function getGroups($uid = null)
{ {
$uid = is_null($uid) ? $this->id : $uid; $uid = is_null($uid) ? $this->id : $uid;
$guild_id = Session::get('guild_admin')['guild_id'] ?? 0;
// return parent::getGroups($uid); // return parent::getGroups($uid);
if($uid == 1){ 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') ->alias('aga')
->join('fa_vs_guild_admin_auth_group ag', 'aga.group_id = ag.id', 'LEFT') ->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') ->field('aga.uid,aga.group_id,ag.id,ag.pid,ag.name,ag.rules')
->where("aga.uid='{$uid}' and ag.status='normal'") ->where("aga.uid='{$uid}' and ag.status='normal'")
->select(); ->select();
}else{ }else{
$user_groups = Db::name('vs_guild_admin_auth_group_access') $user_groups = db::name('vs_guild_admin_auth_group_access')
->alias('aga') ->alias('aga')
->join('fa_vs_guild_admin_auth_group ag', 'aga.group_id = ag.id', 'LEFT') ->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') ->field('aga.uid,aga.group_id,ag.id,ag.pid,ag.name,ag.rules')
->where("aga.uid='{$uid}' and ag.status='normal'") ->where("aga.uid='{$uid}' and ag.status='normal'")
->where('ag.guild_id', Session::get('guild_id')) ->where('ag.guild_id', $guild_id)
->select(); ->select();
} }
@@ -330,6 +335,7 @@ class Auth extends \fast\GuildaAuth
public function getRuleIds($uid = null) public function getRuleIds($uid = null)
{ {
$uid = is_null($uid) ? $this->id : $uid; $uid = is_null($uid) ? $this->id : $uid;
$guild_id = Session::get('guild_admin')['guild_id'] ?? 0;
// 执行查询 // 执行查询
if($uid==1){ if($uid==1){
return parent::getRuleIds($uid); 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') ->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') ->field('aga.uid,aga.group_id,ag.id,ag.pid,ag.name,ag.rules')
->where("aga.uid='{$uid}' and ag.status='normal'") ->where("aga.uid='{$uid}' and ag.status='normal'")
->where('ag.guild_id', Session::get('guild_id')) ->where('ag.guild_id', $guild_id)
->select(); ->select();
$groups[$uid] = $user_groups ?: []; $groups[$uid] = $user_groups ?: [];
$ids = []; //保存用户所属用户组设置的所有权限规则id $ids = []; //保存用户所属用户组设置的所有权限规则id
@@ -379,6 +385,7 @@ class Auth extends \fast\GuildaAuth
public function getChildrenGroupIds($withself = false) public function getChildrenGroupIds($withself = false)
{ {
//取出当前管理员所有的分组 //取出当前管理员所有的分组
$guild_id = Session::get('guild_admin')['guild_id'] ?? 0;
$groups = $this->getGroups(); $groups = $this->getGroups();
$groupIds = array_column($groups, 'id'); $groupIds = array_column($groups, 'id');
$originGroupIds = $groupIds; $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 = []; $objList = [];
foreach ($groups as $k => $v) { foreach ($groups as $k => $v) {
if ($v['rules'] === '*') { if ($v['rules'] === '*') {
@@ -418,6 +425,7 @@ class Auth extends \fast\GuildaAuth
*/ */
public function getChildrenAdminIds($withself = false) public function getChildrenAdminIds($withself = false)
{ {
$guild_id = Session::get('guild_admin')['guild_id'] ?? 0;
$childrenAdminIds = []; $childrenAdminIds = [];
if (!$this->isSuperAdmin()) { if (!$this->isSuperAdmin()) {
$groupIds = $this->getChildrenGroupIds(false); $groupIds = $this->getChildrenGroupIds(false);
@@ -425,7 +433,7 @@ class Auth extends \fast\GuildaAuth
->column('uid'); ->column('uid');
} else { } else {
//超级管理员拥有所有人的权限 //超级管理员拥有所有人的权限
$childrenAdminIds = Admin::where('guild_id', Session::get('guild_id'))->column('id'); $childrenAdminIds = Admin::where('guild_id', $guild_id)->column('id');
} }
if ($withself) { if ($withself) {