From 7385d7a4780287a47168913889070e787460eebe Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Wed, 30 Oct 2024 10:01:58 +0100 Subject: [PATCH] fix: changing private key manually won't trigger a notification --- app/Livewire/Server/ShowPrivateKey.php | 6 +++--- app/Models/Server.php | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/Livewire/Server/ShowPrivateKey.php b/app/Livewire/Server/ShowPrivateKey.php index cc77fd611..eaa71c70b 100644 --- a/app/Livewire/Server/ShowPrivateKey.php +++ b/app/Livewire/Server/ShowPrivateKey.php @@ -31,16 +31,16 @@ class ShowPrivateKey extends Component $originalPrivateKeyId = $this->server->getOriginal('private_key_id'); try { $this->server->update(['private_key_id' => $privateKeyId]); - ['uptime' => $uptime, 'error' => $error] = $this->server->validateConnection(); + ['uptime' => $uptime, 'error' => $error] = $this->server->validateConnection(justCheckingNewKey: true); if ($uptime) { $this->dispatch('success', 'Private key updated successfully.'); } else { - throw new \Exception('Server is not reachable.

Check this documentation for further help.

Error: '.$error); + throw new \Exception($error); } } catch (\Exception $e) { $this->server->update(['private_key_id' => $originalPrivateKeyId]); $this->server->validateConnection(); - $this->dispatch('error', 'Failed to update private key: '.$e->getMessage()); + $this->dispatch('error', $e->getMessage()); } finally { $this->dispatch('refreshServerShow'); $this->server->refresh(); diff --git a/app/Models/Server.php b/app/Models/Server.php index c9915e3fb..f1792c5e5 100644 --- a/app/Models/Server.php +++ b/app/Models/Server.php @@ -1057,7 +1057,7 @@ $schema://$host { $this->team->notify(new Unreachable($this)); } - public function validateConnection($isManualCheck = true) + public function validateConnection(bool $isManualCheck = true, bool $justCheckingNewKey = false) { config()->set('constants.ssh.mux_enabled', ! $isManualCheck); @@ -1077,6 +1077,9 @@ $schema://$host { return ['uptime' => true, 'error' => null]; } catch (\Throwable $e) { + if ($justCheckingNewKey) { + return ['uptime' => false, 'error' => 'This key is not valid for this server.']; + } if ($this->settings->is_reachable === true) { $this->settings->is_reachable = false; $this->settings->save();