Closed juanSTIC closed 1 month ago
@juanSTIC No he conseguido reproducir el error:
SELECT cast(sum(`sda_stic_payments`.`N`) as decimal(32,0) ) as `(n) Pagos`, `sda_stic_payments`.`assigned_user_name` as `Asignado a`, `sda_stic_attendances`.`description` as `Descripción`
FROM sda_stic_payments
inner join `sda_stic_registrations` on `sda_stic_registrations`.`stic_payments_stic_registrationsstic_payments_ida` = `sda_stic_payments`.`id`
inner join `sda_contacts` on `sda_contacts`.`id` = `sda_stic_payments`.`stic_payments_contactscontacts_ida`
inner join `sda_stic_attendances` on `sda_stic_attendances`.`stic_payments_stic_attendancesstic_payments_ida` = `sda_stic_payments`.`id`
where (`sda_contacts`.`id` in (select record_id from sda_def_security_group_records where `group` = 'SDA_G1' and `table` = 'sda_contacts' )
or `sda_contacts`.`id` in (select record_id from sda_def_security_group_records where `group` = 'SDA_G1' and `table` = 'sda_contacts' )
)
and (`sda_stic_payments`.`id` in (select record_id from sda_def_security_group_records where `group` = 'SDA_G2' and `table` = 'sda_stic_payments' )
or `sda_stic_payments`.`id` in (select record_id from sda_def_security_group_records where `group` = 'SDA_G2' and `table` = 'sda_stic_payments' )
)
group by `sda_stic_payments`.`assigned_user_name`, `sda_stic_attendances`.`description`
order by `(n) Pagos` Desc
Se soluciona con el PR https://github.com/SinergiaTIC/SinergiaDA/pull/188
Descripción
Existe un problema en la ejecución de queries para usuarios que pertenecen a dos o más grupos diferentes. Actualmente, cuando se realiza una query que debería incluir filtros basados en todos los grupos a los que pertenece un usuario, sólo se está aplicando el filtro correspondiente al primer grupo.
Cuando un usuario pertenece a múltiples grupos, la lógica de filtrado de las queries debe considerar todos sus grupos de membresía para aplicar los filtros de seguridad correspondientes. Esto asegura que los resultados de las queries sean precisos y reflejen adecuadamente los permisos de acceso del usuario.
Cómo reproducirlo