fix: statisc

This commit is contained in:
hashbro
2026-08-10 03:53:10 +08:00
parent ad30453922
commit aad44bf52e
33 changed files with 1207 additions and 28 deletions
+18 -1
View File
@@ -13,6 +13,8 @@ class SettingsService
'telegram.owner_chat_id',
'channels.max_per_agent',
'channels.domains',
'panel.admin_hosts',
'panel.agent_hosts',
];
/** @return array<string, string|null> */
@@ -89,18 +91,30 @@ class SettingsService
'coruna.deployment_domains' => $domains,
]);
}
// Once saved in settings, DB wins (null/empty = no Host restriction).
if (array_key_exists('panel.admin_hosts', $map)) {
config(['coruna.panel.admin_hosts' => self::parseDomains($map['panel.admin_hosts'])]);
}
if (array_key_exists('panel.agent_hosts', $map)) {
config(['coruna.panel.agent_hosts' => self::parseDomains($map['panel.agent_hosts'])]);
}
}
/** Effective values for the settings form (DB overrides env). */
public function effectiveForForm(): array
{
$domains = config('coruna.channel_domains', []);
$adminHosts = config('coruna.panel.admin_hosts', []);
$agentHosts = config('coruna.panel.agent_hosts', []);
return [
'telegram.bot_token' => (string) (config('coruna.telegram.bot_token') ?: ''),
'telegram.owner_chat_id' => (string) (config('coruna.telegram.owner_chat_id') ?: ''),
'channels.max_per_agent' => (string) (int) config('coruna.channels.max_per_agent', 5),
'channels.domains' => is_array($domains) ? implode("\n", $domains) : '',
'panel.admin_hosts' => is_array($adminHosts) ? implode("\n", $adminHosts) : '',
'panel.agent_hosts' => is_array($agentHosts) ? implode("\n", $agentHosts) : '',
];
}
@@ -116,8 +130,11 @@ class SettingsService
$d = trim((string) $d);
$d = preg_replace('#^https?://#i', '', $d) ?? $d;
$d = rtrim($d, '/');
// Host only (drop path / port).
$d = explode('/', $d, 2)[0];
$d = preg_replace('/:\d+$/', '', $d) ?? $d;
return $d;
return strtolower($d);
}, $parts)));
}