jueves, 11 de abril de 2013

Usuario para ver CDRs sin permisos de administrador en Elastix

Elastix es un proyecto opensource muy interesante, logrando mediante la integración de varios otros proyectos una solución de comunicaciones unificadas. Si bien su core es Asterisk, también logra funcionalidades extra integrando Hylafax, Openfire, Postfix, entre otros y por supuesto desarrollo interno y de la comunidad hacia este proyecto.

Posee un sistema de reportes muy bueno, si leemos la historia del proyecto su comienzo fue como un sistema de reportería para Asterisk y no como un sistema de comunicaciones unificadas. También maneja un esquema de usuarios/permisos en el cual permite generar distintos grupos con diferentes accesos a cada uno de los features.

Una de las cosas que entiendo le hace falta es poder generar un usuario/grupo para ver los reportes de llamadas sin necesidad de darle permisos de administrador. Si bien se puede crear, este puede ver únicamente los registros de la extensión asignada y no de todas las extensiones.


Por que necesitaría un usuario ver todos los reportes y no ser administrador?

Esta es una pregunta que me la hicieron en algún momento. Es sencillo de explicar con un ejemplo.
Supongamos que instalamos Elastix en una empresa, en la cual uno de los gerentes quiere tener reportes de cuantas llamadas entrantes/salientes tiene cada uno de sus empleados, así como también el detalle puntual de a donde llama cada uno. Como administrador del equipo no me daría confianza darle acceso a la configuración completa del sistema si lo que necesita ver es un simple reporte.

Existe alguna solución alternativa?

Por supuesto que si, es opensource!.

Como lo hago?

Antes que nada unas aclaraciones, esto no es un manual de Elastix, por lo que no verán detalles puntuales de la configuración del mismo.

Como siempre en toda modificación, solo comparto mi experiencia, yo lo probé en versiones 2.2, 2.3 y 2.4 de Elastix. Si van a aplicar modificaciones de código, lo hacen bajo su propio riesgo.

Ahora los pasos necesarios:

  • Crear un grupo de usuarios en Elastix, en mi caso el grupo se llama "Reportes" y asignarle los permisos de acuerdo a las necesidades.
  • Crear un usuario que sea miembro de este grupo pero que no tenga ninguna extensión asignada.

  • Ahora se debe modificar el código de una de las clases PHP.
    • Realizar copia del archivo "/var/www/html/libs/paloSantoACL.class.php" para tenerlo en caso de tener que hacer un rollback.
    • Editar el archivo original "/var/www/html/libs/paloSantoACL.class.php" y buscar la función "isUserAdministratorGroup", aparecerá de la siguiente forma:


    • Modificar la función, agregando un chequeo al array de grupos para ver si el usuario pertenece al grupo que creé anteriormente, cuidado el grupo debe coincidir con el creado anteriormente.

Eso es todo, intentar ingresar al sistema con el usuario creado y verificar los CDRs.

1 comentario:

  1. Hola, en la versión del 18/Octubre/2016 este proceso no funciona..!!
    Pero la buena noticia es que Elastix incluyó la opción de habilitar el despliegue de los CDRs para un usuario que no sea administrador..
    Aparece como una opción al costado derecho de la opción reportes cuando se agrega esta opción al grupo creado para el usuario..
    Saludos

    ResponderEliminar