Commit graph

475 commits

Author SHA1 Message Date
copilot-swe-agent[bot]
57400aba81
fix: address code review — log curl_exec errors, update discordmsg docblock
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/e4d38343-77ed-4c7a-afac-a2a815a059fd

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 20:23:05 +00:00
copilot-swe-agent[bot]
4babef08eb
fix: remove hardcoded Discord webhook URLs, centralize via discordmsg() helper
- Improve discordmsg() in includes/functions.php: add curl_init existence
  check, CURLOPT_TIMEOUT/CONNECTTIMEOUT, safe no-op when webhook is empty,
  correct false-return on curl_init failure
- index.php: replace hardcoded webhook URL + 15-line inline cURL block with
  discordmsg() using $settings['discord_webhook_admin']
- modules/user_admin/edit_user.php: same — role-change notification now
  uses discordmsg() + discord_webhook_admin setting
- modules/tickets/submitTicket.php: add global $settings; replace hardcoded
  webhook URL + inline cURL with discordmsg() using discord_webhook_main
- modules/billing/create_servers.php: replace $settings['webhookurl'] +
  inline cURL blocks (x2) with discordmsg() using discord_webhook_main

All modules now use the centralized discord_webhook_main / discord_webhook_admin
settings already managed in Admin > Settings. No DB migration needed.

Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/e4d38343-77ed-4c7a-afac-a2a815a059fd

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 20:21:59 +00:00
8abe2653f7
Merge pull request #126 from GameServerPanel/copilot/audit-fix-billing-migration 2026-05-05 15:16:10 -05:00
copilot-swe-agent[bot]
a0be9ede66
add inline comment explaining service_id=0 sentinel value
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/862c51a7-d835-4eb2-bd0e-2e2a5459036b

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 20:14:02 +00:00
copilot-swe-agent[bot]
e010085347
fix billing+migration: correct migration indexes, table name, column names, webhook URL
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/862c51a7-d835-4eb2-bd0e-2e2a5459036b

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 20:13:08 +00:00
9dc051d090
Merge pull request #125 from GameServerPanel/copilot/implement-billing-checkout-changes 2026-05-05 14:14:49 -05:00
copilot-swe-agent[bot]
2c1f87b54a
fix: address code review feedback — setStatus always defined, prepared stmt in checkout_free, better DB error message
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/d18a8f6c-0715-46c4-9c97-94ec7e2a22fc

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 19:09:23 +00:00
copilot-swe-agent[bot]
73f125ea21
fix: billing checkout — auto-provisioning, zero-dollar flow, duplicate prevention, paid-invoice cart fix
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/d18a8f6c-0715-46c4-9c97-94ec7e2a22fc

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 19:07:21 +00:00
a7a8dd791a
Merge pull request #124 from GameServerPanel/copilot/standardize-billing-order-status 2026-05-05 12:48:25 -05:00
copilot-swe-agent[bot]
e13c00e89d
fix: address code review feedback - spacing and SQL comment
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/439845e0-926e-4b49-9cd0-810457b73c12

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 17:25:36 +00:00
copilot-swe-agent[bot]
5b2162fb28
fix: standardize billing order status values and apply full-day expiry grace rule
- home_handling_functions.php: display expiration as Y-m-d only (not Y-m-d H:i);
  apply full-day grace by comparing date-only (midnight) in PHP so a server
  expiring on today's date remains Active the entire day
- cron-shop.php Step B & C: change server_expiration_date comparisons from
  < DATE_SUB(NOW(), ...) to DATE(server_expiration_date) < DATE_SUB(CURDATE(), ...)
  ensuring the full expiration day is honoured
- user_games/check_expire.php: change all three expiration queries from
  <= time() to < strtotime(date('Y-m-d')) (today-midnight) for full-day grace
- billing/test_integration.php: replace status='paid' (old order status) with
  status IN ('Active','paid') for backward compat during migration
- user_games/billing_integration.php: clarify comment that billing_invoices.status
  uses the payment lifecycle ('paid'/'unpaid'/'due'), separate from billing_orders.status
- Add modules/billing/sql/normalize_billing_order_status.sql migration script
  to convert installed->Active, paid->Active, suspended->Expired in existing rows
- Update CHANGELOG.md

Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/439845e0-926e-4b49-9cd0-810457b73c12

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 17:24:41 +00:00
5f3013b4a4
Merge pull request #123 from GameServerPanel/copilot/fix-billing-order-expiration-logic 2026-05-05 12:01:45 -05:00
copilot-swe-agent[bot]
cb9c54b858
fix: address code review comments (spelling, add comment to renewable_statuses)
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/c56f04bb-ecce-4f1b-9bbd-c5f83107da1d

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 15:56:26 +00:00
copilot-swe-agent[bot]
2f62bd32c9
fix: standardize billing order status values and fix expiration lookup
- billing_integration.php: admin-created servers now use status='Active' (was 'installed')
- home_handling_functions.php: expiration query uses status IN ('Active','Invoiced') only
- my_account.php: renewable_statuses includes canonical 'active'/'invoiced'; legacy labels updated
- admin_orders.php: add orphaned home_id diagnostics section
- normalize_billing_order_status.sql: new migration to convert installed/paid→Active, suspended→Invoiced

Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/c56f04bb-ecce-4f1b-9bbd-c5f83107da1d

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 15:55:39 +00:00
edb2f90b4a
Merge pull request #122 from GameServerPanel/copilot/fix-gsp-issues-expiration-lookup-xml-cleanup 2026-05-05 08:33:59 -05:00
copilot-swe-agent[bot]
c7f1c95a6a
fix: direct billing_orders expiration query with whitelist status filter
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/20ae119c-b626-4e1b-8180-0908d070bf1c

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 13:10:42 +00:00
0a3dd271f0
Merge pull request #121 from GameServerPanel/copilot/fix-gsp-update-module-issues 2026-05-05 07:38:23 -05:00
copilot-swe-agent[bot]
f1c96ff1b7
fix: Steam Workshop module issues and modulemanager PHP 8.3 warning
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/773ab9dc-a9f7-463e-8bf1-c37ac01b0b37

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 12:35:39 +00:00
8c7c63bb72
Merge pull request #120 from GameServerPanel/copilot/delete-old-steam-workshop-implementation 2026-05-05 07:21:39 -05:00
copilot-swe-agent[bot]
1bd34c07a0
fix: use static path hint for agent CLI command in user.php
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/d9a824dc-5568-4604-a1e1-c72ccf240e13

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 12:20:23 +00:00
copilot-swe-agent[bot]
59bd545ab3
feat: replace Steam Workshop with clean rebuild (no adapters/controllers)
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/d9a824dc-5568-4604-a1e1-c72ccf240e13

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 12:18:35 +00:00
16433fc77b
Merge pull request #119 from GameServerPanel/copilot/fix-server-expiration-display-issues 2026-05-05 06:05:08 -05:00
copilot-swe-agent[bot]
6e424bee60
fix: server expiration LEFT JOIN and Steam Workshop MySQL 5.7 safe migration
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/fca65480-29f6-4a76-ae4f-442477782a2c

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 10:54:48 +00:00
7016b79805
Merge pull request #118 from GameServerPanel/copilot/update-game-monitor-expiration 2026-05-05 05:19:30 -05:00
copilot-swe-agent[bot]
2a5dd10181
Fix game monitor billing expiration display
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/0bb2bf91-6e30-4a24-a514-110dfa54397f

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-05 10:13:58 +00:00
d36e85c71f
Merge pull request #117 from GameServerPanel/copilot/fix-ui-module-issues 2026-05-04 16:39:11 -05:00
copilot-swe-agent[bot]
ade2aabdf0
fix: address code review - add aria-label to jump link, localize optional text, add LANG_optional key
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/7c776773-fa8f-4f5d-afec-ff62cf7b2bba

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-04 20:35:59 +00:00
copilot-swe-agent[bot]
e30c6ac25d
feat: config_games XML tag descriptions + jump link; support optional fields; steam_workshop remove adapter terminology
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/7c776773-fa8f-4f5d-afec-ff62cf7b2bba

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-04 20:34:14 +00:00
e338eafb36
Merge pull request #116 from GameServerPanel/copilot/add-admin-configuration-page 2026-05-04 14:57:59 -05:00
copilot-swe-agent[bot]
df4f1d1bdc
fix(steam_workshop): address code review feedback
- WorkshopInstaller: rename cachePath/installPath params to sourcePath/targetPath in checkNeedsSync; replace account_placeholder with TODO comment explaining feature is pending
- WorkshopRepository: remove duplicate docblock on insertOrUpdateMod
- module.php: improve install_queries version comments
- user_workshop_mods.php: rename $scriptPath to $requestPath
- profile_form.php: add symlink limitation note to copy method dropdown
- lang/en_US.php: update steamcmd login mode hint to reflect account mode status"

Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/e7f0d80d-f775-4794-adbd-cf48b55bc9c1

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-04 19:52:22 +00:00
copilot-swe-agent[bot]
69f415ad86
feat(steam_workshop): production rewrite with full admin profile page and server settings
- module.php: bump db_version to 2; full v2 schema in install_queries[0]; ALTER TABLE migration in install_queries[2] adding 11 new profile columns plus server_workshop_settings table
- WorkshopRepository: expand saveProfile() with all new fields (steam_app_id, steamcmd_login_mode, steamcmd_path, mod_separator, copy_keys, key paths, pre/post scripts, validation_notes); add nullOrStr helper; add server settings CRUD (getServerSettings, saveServerSettings, recordUpdateResult, setUpdateQueued, listQueuedUpdateHomes); update insertOrUpdateMod with custom_folder; update listAllEnabledMods to select new columns
- WorkshopProfileController: full extractProfileData() with all new fields; validateProfileData with folder template check
- views/admin/profile_form.php: full rewrite – all required fields (steam_app_id, workshop_app_id, login mode, SteamCMD path, OS, cache path, install path, folder naming dropdown, launch params, mod separator, copy method, copy keys with JS show/hide, key paths, pre/per-mod/post bash scripts with DayZ example, validation notes, config file template)
- views/admin/profiles.php: updated list view columns (App IDs, Login, Method)
- WorkshopInstaller.php: full rewrite with %var% template support (+ legacy {var} compat); buildTemplateVars() resolves all 14 variables; pre/post script execution; triggerSteamCmdDownload uses new profile fields; copyKeys helper
- WorkshopModController: add save_settings and queue_update POST actions; handleModsPage loads serverSettings + allProfiles
- views/user_workshop_mods.php: full rewrite – server settings form (enable, profile selector, update mode, restart behavior), update status grid (status/error/time/success time), queue update button, mod table with custom_folder column and toggle/order auto-submit
- lang/en_US.php: ~80 new string keys for all v2 fields
- steam_workshop.css: new v2 styles (3-col grid, script textarea, status grid, server settings card, badges)"

Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/e7f0d80d-f775-4794-adbd-cf48b55bc9c1

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-04 19:49:36 +00:00
199b398543
Merge pull request #115 from GameServerPanel/copilot/fix-html-entities-remove-unused-themes 2026-05-04 14:29:37 -05:00
copilot-swe-agent[bot]
7377f955fd
Fix PHP 8.3 htmlentities null safety, remove unused themes, rename OGP_LANG_ to LANG_
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/9909a053-0a66-4453-a844-d3b80d727b27

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-04 17:31:16 +00:00
53e0b68f4f
Merge pull request #114 from GameServerPanel/copilot/fix-billing-order-flow
Fix billing order page blank, _steam_workshop_ raw lang key, workshop module install
2026-05-04 12:16:50 -05:00
copilot-swe-agent[bot]
9550cd32b4
fix: billing order flow, steam_workshop lang key, workshop module install queries
- order.php: replace foreach((array)$mysqli_result) with proper fetch_assoc() loop
- order.php: fix hidden service_id field to use $_REQUEST instead of $_POST
- order.php: add safe error messages and error_log() on failed service lookup
- lang/English/global.php: add OGP_LANG_steam_workshop to fix _steam_workshop_ raw key
- steam_workshop/module.php: replace unusable $module_db_create heredoc with
  proper $install_queries[0] array so tables are created during module install
- timestamp.txt: updated

Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/70fa0082-93ad-4a4d-a1b3-ea6afa77ee80

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-04 17:15:07 +00:00
d06ac4fb63
Merge pull request #113 from GameServerPanel/copilot/rewrite-steam-workshop-module-again
Steam Workshop admin: replace adapter UI with SteamCMD-backed game configurations
2026-05-04 11:58:14 -05:00
copilot-swe-agent[bot]
86f825e388
feat: rewrite workshop_admin UI – remove adapter terminology, make configurations primary
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/3fc88263-c1c0-46f6-95f1-7070fc6f9d02

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-04 16:56:38 +00:00
e799f5ee5d
Merge pull request #112 from GameServerPanel/copilot/fix-string-interpolation-remove-steam-workshop 2026-05-04 06:12:34 -07:00
copilot-swe-agent[bot]
47c95bb4e7
fix: PHP 8.3 string interpolation and remove Steam Workshop from main nav
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/ddf9efe5-279d-4197-98e5-b3fc5b28ea0c

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-04 12:49:21 +00:00
62749a9a0c
Merge pull request #111 from GameServerPanel/copilot/fix-game-monitor-issues 2026-05-04 05:30:37 -07:00
copilot-swe-agent[bot]
c737f0caa7
fix: remove debug output, Steam Workshop menu item, and PHP 8.3 TypeErrors in admin controller
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/b402e67e-690f-4d0c-be37-181af3833298

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-04 11:40:45 +00:00
2aaf058c45
Merge pull request #110 from GameServerPanel/copilot/fix-faq-php-warnings-and-billing-menu
fix: non-fatal game XML errors, FAQ PHP 8.3 warnings, billing/workshop nav cleanup
2026-05-03 17:43:14 -07:00
copilot-swe-agent[bot]
d0c86926bd
fix: address code review feedback (comment clarity, remove redundant static array, add CSS class)
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/86bb1e0e-2bbd-439b-88cd-7a624ad24761

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-04 00:13:49 +00:00
copilot-swe-agent[bot]
5c463d381f
fix: FAQ PHP warnings, billing nav, XML fatal-skip, Steam Workshop user menu
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/86bb1e0e-2bbd-439b-88cd-7a624ad24761

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-04 00:12:39 +00:00
13de7c8383
Merge pull request #109 from GameServerPanel/copilot/fix-broken-xml-in-dayz-configs
Fix broken XML in DayZ game configs; add CDATA auto-sanitizer to XML editor
2026-05-03 16:46:23 -07:00
copilot-swe-agent[bot]
7391d23487
fix: address code review - add sanitizer comments, fix strrpos false-return edge case
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/1afce49e-510d-49a6-9d11-0b7118d3cf85

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-03 23:44:57 +00:00
copilot-swe-agent[bot]
de80f89619
fix: wrap DayZ post_install scripts in CDATA, add XML editor auto-sanitizer
- dayz_arma2co_win32.xml: wrap post_install in CDATA to fix raw '<' breaking
  XML parsing; fix dbPass generation to use portable tr form
- dayz_epoch_mod_win32.xml: same CDATA wrapping; replace &lt; literals so
  bash actually receives real '<' redirect characters
- config_servers.php: add config_games_sanitize_xml_scripts() that wraps bare
  '<' in script-like nodes with CDATA before saving raw XML; add
  config_games_script_node_names() helper; structured-editor save now uses
  createCDATASection() for post_install/pre_start/etc. nodes so shell
  characters survive DOM round-trips intact

Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/1afce49e-510d-49a6-9d11-0b7118d3cf85

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-03 23:43:41 +00:00
6dbac841e3
Merge pull request #108 from GameServerPanel/copilot/create-new-gsp-baseline
GSP 1.0 baseline: module version reset, FAQ refresh, XML editor validation, Obsidian theme
2026-05-03 16:36:18 -07:00
copilot-swe-agent[bot]
d564476d1c
feat: GSP 1.0 baseline – module versions, FAQ refresh, XML editor validation, Obsidian theme
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/40ca313f-3f17-4f62-8f05-ba72540a8d30

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-03 23:31:07 +00:00
copilot-swe-agent[bot]
1b3b79447f
chore: begin GSP baseline changes (plan only)
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/40ca313f-3f17-4f62-8f05-ba72540a8d30

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-03 23:25:17 +00:00