Corregir la sincronización de aplicaciones en el módulo de seguridad | Scriptcase

Corrección de la sincronización de aplicaciones en el módulo de seguridad

En este artículo veremos cómo corregir el problema en la aplicación sync_app (nombre predeterminado) sin necesidad de recrear el módulo de seguridad.

Info
Esta corrección se aplica a un módulo de seguridad creado en una versión anterior a la 9.12.021 y que utilice los siguientes tipos:
  1. Grupo
  2. Aplicación
  3. Ldap/Aplicación

El problema

Al eliminar una aplicación del sistema en la lista de aplicaciones y utilizar la opción de sincronizar aplicaciones para actualizar la base de datos, algunas tablas no se actualizaban y las aplicaciones eliminadas seguían apareciendo.

Cómo corregir

Para solucionar el problema de sincronización de aplicaciones en el módulo de seguridad, será necesario editar el código de los eventos onValidate onValidateSuccess en la aplicación sync_apps (nombre predeterminado).

Paso a paso

Siga los pasos a continuación. En caso de dudas, comuníquese con nuestro soporte a través de los canales oficiales.

1. Localizar la aplicación

Independientemente del prefijo utilizado durante la creación del módulo de seguridad, el nombre predeterminado de la aplicación es sync_apps. En la página inicial de su proyecto, busque por sync_apps.

2. Código para onValidate

Después de abrir la aplicación, acceda al evento onValidate, comente el código actual y agregue el siguiente código.
Alerta
El código a continuación utiliza los nombres predeterminados de las tablas, campos y aplicaciones. Antes de aplicar cambios definitivos, verifique los nombres reales de las tablas en su sistema y ajústelos si es necesario.
A continuación se muestra la lista de comandos SQL utilizados en este código.
  • sc_select(rs, "SELECT app_name FROM sec_apps");
  • sc_exec_sql("DELETE FROM sec_groups_apps WHERE app_name = " . sc_sql_injection($app));
  • sc_exec_sql("DELETE FROM sec_apps WHERE app_name = " . sc_sql_injection($app));
  • sc_select(rs, "SELECT group_id FROM sec_groups");
  • "SELECT count(*) FROM sec_apps WHERE app_name = '". $app ."' ";
  • "INSERT INTO sec_apps(app_name, app_type, description) VALUES ('". $app ."', '".$app_type."', '".$app_desc."')";
  • "INSERT INTO sec_groups_apps(app_name, group_id) VALUES ('". $app ."', '". $grp ."')";
onValidate

3. Código para onValidateSuccess

Después de realizar los cambios necesarios en onValidate, acceda al evento onValidateSuccess.
En este evento los cambios son visuales, únicamente para mejorar el retorno al usar la opción de sincronizar aplicación.

Comente el código actual y agregue el siguiente código.

onValidateSuccess


4. Prueba y publicación

Después de realizar los cambios, compile el código fuente de la aplicación y realice pruebas para verificar si los cambios fueron exitosos.
Si todo funciona correctamente en las pruebas, simplemente publique la aplicación para aplicar la corrección en su sistema en producción.

Si tiene alguna duda o problema con el cambio, consulte con nuestro soporte a través de los canales oficiales.