Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incidencia - EDA - SDA - Seguridad aplicada a módulos relacionados limita la visibilidad de registros #200

Open
juanSTIC opened this issue Sep 9, 2024 · 0 comments
Assignees
Labels
bug Something isn't working enhancement New feature or request

Comments

@juanSTIC
Copy link
Collaborator

juanSTIC commented Sep 9, 2024

Descripción

En informes que utilizan LEFT JOIN para relacionar dos o más módulos, el sistema aplica incorrectamente los filtros de seguridad. Actualmente, las restricciones de acceso de los módulos secundarios están limitando la visibilidad de los registros del módulo principal. Como resultado, los usuarios no pueden ver todos los registros del módulo principal a los que deberían tener acceso, sino solo aquellos que también tienen registros relacionados y accesibles en los módulos secundarios. Este comportamiento compromete la integridad y utilidad de los informes multi-módulo para usuarios con permisos de acceso limitados.

Comportamiento actual vs. esperado

Actual

  • Los usuarios solo ven registros del módulo principal que están relacionados con registros del módulo secundario a los que también tienen acceso.

Esperado

  • Los usuarios deben ver todos los registros del módulo principal a los que tienen acceso.
  • En las columnas de módulos secundarios, solo deben ver datos en los registros a los que tienen acceso, manteniendo vacíos los demás.

Problema técnico

La consulta SQL actual aplica los filtros de seguridad de ambos módulos en la cláusula WHERE, lo que limita incorrectamente los resultados del LEFT JOIN.

Solución propuesta

Modificar la generación de consultas SQL para aplicar los filtros de seguridad de los módulos relacionados en la cláusula ON del LEFT JOIN, manteniendo solo los filtros del módulo principal en la cláusula WHERE.

Ejemplo de consulta corregida:

SELECT `sda_contacts`.`full_name` AS `Nombre completo`, 
       CAST(SUM(`sda_stic_payment_commitments`.`amount`) AS DECIMAL(32,2)) AS `Importe`
FROM sda_contacts
LEFT JOIN `sda_stic_payment_commitments` 
     ON `sda_contacts`.`id` = `sda_stic_payment_commitments`.`stic_payment_commitments_contactscontacts_ida`
    AND ( -- Filtros de seguridad del módulo secundario
        `sda_stic_payment_commitments`.`id` IN (SELECT record_id FROM sda_def_security_group_records WHERE `group` = 'SDA_G1' AND `table` = 'sda_stic_payment_commitments')
        OR `sda_stic_payment_commitments`.`assigned_user_name` IN (SELECT `assigned_user_name` FROM sda_stic_payment_commitments WHERE `assigned_user_name` = 'u1')
    )
WHERE ( -- Filtros de seguridad del módulo principal
    `sda_contacts`.`id` IN (SELECT record_id FROM sda_def_security_group_records WHERE `group` = 'SDA_G1' AND `table` = 'sda_contacts')
    OR `sda_contacts`.`assigned_user_name` IN (SELECT `assigned_user_name` FROM sda_contacts WHERE `assigned_user_name` = 'u1')
)
GROUP BY `sda_contacts`.`full_name`
ORDER BY `Importe` DESC
@juanSTIC juanSTIC added bug Something isn't working enhancement New feature or request labels Sep 9, 2024
@juanSTIC juanSTIC changed the title Hotfix - API - Seguridad aplicada a módulos relacionados limita la visibilidad de registros Incidencia - API - Seguridad aplicada a módulos relacionados limita la visibilidad de registros Sep 10, 2024
@juanSTIC juanSTIC changed the title Incidencia - API - Seguridad aplicada a módulos relacionados limita la visibilidad de registros Incidencia - EDA - SDA - Seguridad aplicada a módulos relacionados limita la visibilidad de registros Sep 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants