fix: el selector de empresas se comia los comandos de navegacion

isResetKeyword aceptaba menu, salir, atras, volver, inicio y regresar, o sea el
vocabulario completo de navegacion del bot. Ese chequeo corre en el webhook,
antes de NormalBot, asi que a un usuario que pertenece a varias empresas
cualquiera de esas palabras le borraba la sesion y lo devolvia al selector en
vez de navegar.

Ahora solo responde a palabras que signifiquen cambiar de empresa.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-01 11:01:30 -05:00
co-authored by Claude Sonnet 4.6
parent a64421c527
commit 8825f4e821
+7 -1
View File
@@ -308,11 +308,17 @@ class WpWebhook
self::log('INFO', "Pre-menú de empresa enviado a {$to} (" . count($items) . " opciones)");
}
/**
* Solo palabras que signifiquen "cambiar de empresa". Antes incluía menu,
* salir, atras, volver, inicio y regresar — el vocabulario de navegación del
* bot— así que a un usuario multi-empresa se le comían todos esos comandos
* acá arriba y nunca llegaban a NormalBot.
*/
private static function isResetKeyword(string $text): bool
{
$n = mb_strtolower(trim($text));
$n = str_replace(['á','é','í','ó','ú','ü','ñ'], ['a','e','i','o','u','u','n'], $n);
return in_array($n, ['salir','inicio','menu','reiniciar','volver','reset','0','atras','regresar'], true);
return in_array($n, ['cambiar empresa', 'cambiar de empresa', 'empresas', 'reiniciar', 'reset'], true);
}
private static function getPermissionType(array $companies, int $companyId): int