SSH: adiciona consulta usuario Juniper

Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
rodrigo committed 2026-03-30 21:27:31 -03:00
1 parent 89cf8844eb
commit 7f38d16821
3 files changed
+151 -2

No files matched your search

+51 -1
View File
@@ -139,6 +139,11 @@ class BotHandler {
await this.handleListUsers(chatId, target);
break;
case 'consultar_usuario':
console.log(`🔍 Executando handleConsultarUsuario com target: ${target}`);
await this.handleConsultarUsuario(chatId, target);
break;
case 'admin':
case 'administracao':
await this.handleAdmin(chatId);
@@ -331,6 +336,7 @@ Digite /help para ver todos os comandos disponíveis!
• "remover onu SERIAL"
� **JUNIPER:**
• "consultar usuario USER"
• "desconectar cliente USER"
• "listar usuários conectados"
@@ -463,7 +469,12 @@ Digite /help para ver todos os comandos disponíveis!
case 'juniper':
helpMessage = `👥 **JUNIPER - GERENCIAR USUÁRIOS**
**🚫 DESCONECTAR:**
**� CONSULTAR USUÁRIO:**
• "consultar usuario USUARIO"
• "ver usuario USUARIO"
• "status usuario USUARIO"
**�🚫 DESCONECTAR:**
• "desconectar cliente USUARIO"
• "kick usuário USUARIO"
• "remover cliente USUARIO"
@@ -821,6 +832,45 @@ Digite /help para ver todos os comandos disponíveis!
}
}
/**
* Consultar status de um assinante específico no concentrador Juniper
*/
async handleConsultarUsuario(chatId, username) {
if (!username) {
await this.bot.sendMessage(chatId, '❓ Especifique o login do usuário. Exemplo: "consultar usuario joao@provedor"');
return;
}
await this.bot.sendMessage(chatId, `🔍 Consultando usuário *${username}* no concentrador...`, { parse_mode: 'Markdown' });
try {
const result = await this.ssh.getJuniperSubscriberInfo('juniper', username);
if (!result.success) {
await this.bot.sendMessage(chatId, `❌ ${result.message}`);
return;
}
if (!result.connected) {
await this.bot.sendMessage(chatId, `🔴 *${username}* não está conectado no concentrador.`, { parse_mode: 'Markdown' });
return;
}
const message =
`✅ *Usuário conectado!*\n\n` +
`👤 *Login:* \`${result.username}\`\n` +
`🌐 *Endereço IP:* \`${result.ip || 'N/A'}\`\n` +
`🔌 *Interface PPPoE:* \`${result.interface || 'N/A'}\`\n` +
`\n📋 *Linha bruta:*\n\`\`\`\n${result.rawLine}\n\`\`\``;
await this.bot.sendMessage(chatId, message, { parse_mode: 'Markdown' });
} catch (error) {
console.error('Erro ao consultar usuário:', error);
await this.bot.sendMessage(chatId, `❌ Erro interno: ${error.message}`);
}
}
/**
* Verificar sinal de ONU
*/