From 4b9d086ae63fa873ab87d6b7522ec806dd80f267 Mon Sep 17 00:00:00 2001 From: Baobhan Sith <80159437+Heavrnl@users.noreply.github.com> Date: Sat, 10 May 2025 15:18:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BC=96=E8=BE=91=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E4=B8=8B=E7=A7=81=E9=92=A5=E5=AD=97=E6=AE=B5=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/SshKeyManagementModal.vue | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/frontend/src/components/SshKeyManagementModal.vue b/packages/frontend/src/components/SshKeyManagementModal.vue index 154212b..24f0ae9 100644 --- a/packages/frontend/src/components/SshKeyManagementModal.vue +++ b/packages/frontend/src/components/SshKeyManagementModal.vue @@ -47,7 +47,7 @@ const showEditForm = async (key: SshKeyBasicInfo) => { const details = await sshKeysStore.fetchDecryptedSshKey(key.id); if (details) { formData.name = details.name; - formData.private_key = details.privateKey; + formData.private_key = ''; // Do not pre-fill private key, empty means no change formData.passphrase = ''; // Do not pre-fill passphrase isAddEditFormVisible.value = true; } else { @@ -60,7 +60,7 @@ const showEditForm = async (key: SshKeyBasicInfo) => { // Handle form submission (add or edit) const handleSubmit = async () => { formError.value = null; - if (!formData.name || !formData.private_key) { + if (!formData.name || (!keyToEdit.value && !formData.private_key)) { // Private key is required only for new keys formError.value = t('sshKeys.modal.errorRequiredFields'); return; } @@ -68,11 +68,20 @@ const handleSubmit = async () => { let success = false; const dataToSend: Partial = { name: formData.name, - private_key: formData.private_key, - // Only send passphrase if it's not empty - ...(formData.passphrase && { passphrase: formData.passphrase }), }; + // Add private_key to dataToSend only if it's provided by the user. + // In edit mode, an empty formData.private_key means the user does not want to change the key. + // In add mode, formData.private_key is guaranteed to be non-empty by the validation above. + if (formData.private_key) { + dataToSend.private_key = formData.private_key; + } + + // Only send passphrase if it's not empty + if (formData.passphrase) { + dataToSend.passphrase = formData.passphrase; + } + if (keyToEdit.value) { // Edit mode