diff --git a/warpgate-protocol-ssh/src/server/session.rs b/warpgate-protocol-ssh/src/server/session.rs index 7cdad45c..d5c45d4c 100644 --- a/warpgate-protocol-ssh/src/server/session.rs +++ b/warpgate-protocol-ssh/src/server/session.rs @@ -1472,12 +1472,17 @@ impl ServerSession { .map(|(t, opt)| (t.clone(), opt.clone())) }; - let Some((target, ssh_options)) = target else { + let Some((target, mut ssh_options)) = target else { self.target = TargetSelection::NotFound(target_name.to_string()); warn!("Selected target not found"); return Ok(()); }; + // Forward username from the authenticated user to the target, if target has no username + if ssh_options.username.is_empty() { + ssh_options.username = username.to_string(); + } + let _ = self.server_handle.lock().await.set_target(&target).await; self.target = TargetSelection::Found(target, ssh_options); Ok(()) diff --git a/warpgate-web/src/admin/Target.svelte b/warpgate-web/src/admin/Target.svelte index e9ffced1..6a88ac77 100644 --- a/warpgate-web/src/admin/Target.svelte +++ b/warpgate-web/src/admin/Target.svelte @@ -148,7 +148,10 @@ async function toggleRole (role: Role) { - +
diff --git a/warpgate-web/src/theme/_theme.scss b/warpgate-web/src/theme/_theme.scss index fa093ca0..87a58d1d 100644 --- a/warpgate-web/src/theme/_theme.scss +++ b/warpgate-web/src/theme/_theme.scss @@ -92,3 +92,12 @@ input:-webkit-autofill:focus { .page-item.active .page-link { text-decoration: underline; } + +// Fix placeholder text with floating FormGroup labels +.form-floating>.form-control::placeholder { + color: revert; +} + +.form-floating>.form-control:not(:focus)::placeholder { + color: transparent; +}