feat: add mx login mode selection

This commit is contained in:
Marek Miklewicz
2026-06-30 12:06:32 +02:00
parent 54b2e620ff
commit b23e959491
7 changed files with 74 additions and 7 deletions
+19 -2
View File
@@ -44,7 +44,7 @@ final class RemoteLoginUrlClient
*/
public static function buildCommand(Settings $settings, LoginUrlRequest $request): array
{
return [
$base = [
'ssh',
'-o',
'BatchMode=yes',
@@ -59,6 +59,23 @@ final class RemoteLoginUrlClient
'-p',
(string)$settings->sshPort(),
$settings->sshUser() . '@' . $settings->sshHost(),
];
if ($settings->mxLoginMode() === 1) {
$command = array_merge($base, [
'/usr/bin/da',
'login-url',
'--user=' . $request->username,
'--redirect-url=' . $request->redirectPath,
'--expiry=' . $request->ttl . 's',
]);
if ($request->userIpBound) {
$command[] = '--ip=' . $request->clientIp;
}
return $command;
}
return array_merge($base, [
'mail-login-create-url',
$request->username,
$request->sourceHost,
@@ -68,7 +85,7 @@ final class RemoteLoginUrlClient
$request->clientIp,
$request->redirectPath,
(string)$request->createdAt,
];
]);
}
public function create(Settings $settings, LoginUrlRequest $request): string