alert('角色名称不能为空');location.href='system_manage.php?tab=role';"; exit; } if ($roleId == 0) { mysqli_query($conn, "INSERT INTO sys_role(role_name) VALUES('".mysqli_real_escape_string($conn,$roleName)."')"); $roleId = mysqli_insert_id($conn); } else { mysqli_query($conn, "UPDATE sys_role SET role_name='".mysqli_real_escape_string($conn,$roleName)."' WHERE id=$roleId"); mysqli_query($conn, "DELETE FROM sys_role_permission WHERE role_id=$roleId"); } foreach ($pages as $page) { $page = mysqli_real_escape_string($conn, $page); mysqli_query($conn, "INSERT IGNORE INTO sys_role_permission(role_id,page_key) VALUES($roleId,'$page')"); } echo ""; exit; } if (!empty($_GET['del_role'])) { $delId = intval($_GET['del_role']); mysqli_query($conn, "DELETE FROM sys_role_permission WHERE role_id=$delId"); mysqli_query($conn, "DELETE FROM sys_role WHERE id=$delId"); header("Location: system_manage.php?tab=role"); exit; } // 修复警告:强制初始化为空数组,in_array不会报null $editRole = ['id'=>0,'role_name'=>'','perms'=>[]]; if (!empty($_GET['edit_role'])) { $eid = intval($_GET['edit_role']); $er = mysqli_fetch_assoc(mysqli_query($conn, "SELECT * FROM sys_role WHERE id=$eid")); if ($er) { $editRole = $er; $permRes = mysqli_query($conn, "SELECT page_key FROM sys_role_permission WHERE role_id=$eid"); $permsArr = []; while ($p = mysqli_fetch_assoc($permRes)) { $permsArr[] = $p['page_key']; } $editRole['perms'] = $permsArr; } } $roleList = []; $roleRes = mysqli_query($conn, "SELECT * FROM sys_role ORDER BY id DESC"); while ($r = mysqli_fetch_assoc($roleRes)) $roleList[] = $r; // ========== 用户操作逻辑(沿用bak可创建逻辑 + 自动生成uid修复空值) ========== if ($_POST['act'] == "save_user") { $uid = intval($_POST['user_id'] ?? 0); $username = trim($_POST['username']); $realName = trim($_POST['real_name']); $roleId = intval($_POST['role_id']); $pwd = trim($_POST['password']); $status = intval($_POST['status']); if (empty($username) || empty($realName) || $roleId == 0) { echo ""; exit; } if ($uid == 0) { if (empty($pwd)) { echo ""; exit; } // 自动生成唯一数字uid,解决空uid问题 $maxUidRow = mysqli_fetch_assoc(mysqli_query($conn, "SELECT MAX(CAST(uid AS UNSIGNED)) max_uid FROM sys_user")); $newUid = empty($maxUidRow['max_uid']) ? 1000 : intval($maxUidRow['max_uid']) + 1; $pwdHash = password_hash($pwd, PASSWORD_DEFAULT); // INSERT 补充uid字段,不再空白 $insertSql = "INSERT INTO sys_user(uid,username,real_name,password,role_id,enable,is_admin) VALUES('$newUid','".mysqli_real_escape_string($conn,$username)."','".mysqli_real_escape_string($conn,$realName)."','$pwdHash',$roleId,$status,0)"; mysqli_query($conn, $insertSql); } else { $updateSql = "UPDATE sys_user SET username='".mysqli_real_escape_string($conn,$username)."', real_name='".mysqli_real_escape_string($conn,$realName)."', role_id=$roleId, enable=$status WHERE id=$uid"; if (!empty($pwd)) { $pwdHash = password_hash($pwd, PASSWORD_DEFAULT); $updateSql .= ", password='$pwdHash'"; } mysqli_query($conn, $updateSql); } echo ""; exit; } if (!empty($_GET['del_user'])) { $delId = intval($_GET['del_user']); mysqli_query($conn, "DELETE FROM sys_user_msg WHERE user_id=$delId"); mysqli_query($conn, "DELETE FROM sys_user WHERE id=$delId"); header("Location: system_manage.php?tab=user"); exit; } $roleOptionHtml = ""; $roleDropRes = mysqli_query($conn, "SELECT id,role_name FROM sys_role"); while ($r = mysqli_fetch_assoc($roleDropRes)) { $roleOptionHtml .= ""; } // 用户列表过滤空uid异常用户 $userList = []; $uRes = mysqli_query($conn, "SELECT u.*,r.role_name FROM sys_user u LEFT JOIN sys_role r ON u.role_id=r.id WHERE u.uid <> '' ORDER BY u.id DESC"); while ($u = mysqli_fetch_assoc($uRes)) $userList[] = $u; $editUser = ['id'=>0,'username'=>'','real_name'=>'','role_id'=>0,'status'=>1]; if (!empty($_GET['edit_user'])) { $eid = intval($_GET['edit_user']); $eu = mysqli_fetch_assoc(mysqli_query($conn, "SELECT * FROM sys_user WHERE id=$eid")); if ($eu) $editUser = $eu; } $allPagePerms = [ ['key'=>'dashboard','name'=>'告警总览'], ['key'=>'work_order','name'=>'工单系统'], ['key'=>'disk','name'=>'磁盘容量'], ['key'=>'history_query','name'=>'历史查询'], ['key'=>'smtp_config','name'=>'消息通知配置'], ['key'=>'system_manage','name'=>'系统权限管理'], ['key'=>'docker_mgr','name'=>'Docker容器管理'], ]; ?>