feat(MikrotikConfigRoutes): add function to retrieve remote MikroTik credentials for speed tests, enhancing server configuration flexibility
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m55s
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m55s
This commit is contained in:
@@ -103,6 +103,26 @@ function getMikrotikCredentials(server) {
|
|||||||
return { host, port: restPort, user, password, secure: false };
|
return { host, port: restPort, user, password, secure: false };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Учётные данные для удалённого конца (speed-test): любой сервер с host,
|
||||||
|
* пароль может быть пустым (доступ по IP без пароля).
|
||||||
|
*/
|
||||||
|
function getRemoteMikrotikCredentials(server) {
|
||||||
|
if (!server) return null;
|
||||||
|
const host = server.mikrotikHost || server.ip || server.dns;
|
||||||
|
if (!host) return null;
|
||||||
|
const user = server.mikrotikUser || 'admin';
|
||||||
|
let password = '';
|
||||||
|
if (server.encryptedMikrotikPassword) {
|
||||||
|
try {
|
||||||
|
password = decrypt(server.encryptedMikrotikPassword);
|
||||||
|
} catch (_) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return { user, password };
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* POST /api/mikrotik/generate
|
* POST /api/mikrotik/generate
|
||||||
* Body: { format?, type?, serverId?, config?, servers? }
|
* Body: { format?, type?, serverId?, config?, servers? }
|
||||||
@@ -941,7 +961,7 @@ async function speedTestViaTunnel(req, res) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const localCreds = getMikrotikCredentials(localServer);
|
const localCreds = getMikrotikCredentials(localServer);
|
||||||
const remoteCreds = getMikrotikCredentials(remoteServer);
|
const remoteCreds = getRemoteMikrotikCredentials(remoteServer);
|
||||||
|
|
||||||
if (!localCreds) {
|
if (!localCreds) {
|
||||||
return sendError(
|
return sendError(
|
||||||
@@ -955,7 +975,7 @@ async function speedTestViaTunnel(req, res) {
|
|||||||
return sendError(
|
return sendError(
|
||||||
res,
|
res,
|
||||||
400,
|
400,
|
||||||
'MikroTik credentials not configured for remote server',
|
'Удалённый сервер не найден или не задан host (ip/dns)',
|
||||||
'E_REMOTE_CREDENTIALS'
|
'E_REMOTE_CREDENTIALS'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user