(bugfix) Add SSH private key file upload

Allow SSH credentials to be created from an uploaded private key file
as an alternative to pasting the key into a textarea.

Use multipart form handling in the credential views so server-side
keys can be imported without copy/paste wrapping or formatting damage.

Cover the upload path with a view test while keeping existing pasted
key validation behavior intact.
This commit is contained in:
2026-05-19 18:48:17 +02:00
parent 97797c574d
commit 98d152da06
4 changed files with 46 additions and 5 deletions

View File

@@ -83,7 +83,7 @@ def ssh_credentials(request):
@staff_member_required
def create_ssh_credential(request):
if request.method == "POST":
form = SshCredentialForm(request.POST)
form = SshCredentialForm(request.POST, request.FILES)
if form.is_valid():
credential = form.save()
messages.success(request, f"SSH credential saved for {credential.name}.")
@@ -105,7 +105,7 @@ def create_ssh_credential(request):
def edit_ssh_credential(request, credential_id: int):
credential = get_object_or_404(SshCredential, id=credential_id)
if request.method == "POST":
form = SshCredentialForm(request.POST, instance=credential)
form = SshCredentialForm(request.POST, request.FILES, instance=credential)
if form.is_valid():
saved_credential = form.save()
messages.success(request, f"SSH credential saved for {saved_credential.name}.")