feat: add mx login mode selection
This commit is contained in:
@@ -4,7 +4,7 @@ declare(strict_types=1);
|
||||
require_once PLUGIN_ROOT . '/exec/lib/Settings.php';
|
||||
require_once PLUGIN_ROOT . '/exec/lib/RemoteLoginUrlClient.php';
|
||||
|
||||
test('remote login url client builds fixed ssh command with positional arguments', function (): void {
|
||||
test('remote login url client builds direct ssh command by default', function (): void {
|
||||
$settings = Settings::fromArray([
|
||||
'MAIL_LOGIN_TARGET_BASE_URL' => 'https://mx1.domena.pl:2222',
|
||||
'MAIL_LOGIN_SSH_HOST' => 'mx1.domena.pl',
|
||||
@@ -21,6 +21,29 @@ test('remote login url client builds fixed ssh command with positional arguments
|
||||
assert_same('ssh', $command[0]);
|
||||
assert_contains('UserKnownHostsFile=/secure/known_hosts', implode(' ', $command));
|
||||
assert_contains('root@mx1.domena.pl', implode(' ', $command));
|
||||
assert_not_contains('mail-login-create-url', implode(' ', $command));
|
||||
assert_contains('/usr/bin/da login-url', implode(' ', $command));
|
||||
assert_contains('--user=mxtest', implode(' ', $command));
|
||||
assert_contains('--expiry=30s', implode(' ', $command));
|
||||
assert_contains('--ip=198.51.100.10', implode(' ', $command));
|
||||
});
|
||||
|
||||
test('remote login url client builds helper ssh command when mode is helper', function (): void {
|
||||
$settings = Settings::fromArray([
|
||||
'MAIL_LOGIN_TARGET_BASE_URL' => 'https://mx1.domena.pl:2222',
|
||||
'MAIL_LOGIN_SSH_HOST' => 'mx1.domena.pl',
|
||||
'MAIL_LOGIN_SSH_PORT' => '222',
|
||||
'MAIL_LOGIN_SSH_USER' => 'root',
|
||||
'MAIL_LOGIN_SSH_IDENTITY' => '/secure/key',
|
||||
'MAIL_LOGIN_SSH_KNOWN_HOSTS' => '/secure/known_hosts',
|
||||
'LOGIN_KEY_TTL' => '30',
|
||||
'USER_IP_BOUND' => '1',
|
||||
'MX_LOGIN_MODE' => '2',
|
||||
]);
|
||||
$request = new LoginUrlRequest('mxtest', 'h4.domena.pl', 'h4', 30, true, '198.51.100.10', '/', 1782810000);
|
||||
$command = RemoteLoginUrlClient::buildCommand($settings, $request);
|
||||
|
||||
assert_same('ssh', $command[0]);
|
||||
$pos = array_search('mail-login-create-url', $command, true);
|
||||
assert_true(is_int($pos), 'Command marker missing');
|
||||
assert_same('mxtest', $command[$pos + 1]);
|
||||
|
||||
Reference in New Issue
Block a user