Bug in get Template
Posted: Fri Sep 06, 2013 10:51 am
Ciao a tutti, credo di aver scovato un bug piuttosto importante.
in /lib/lib.template.php, nella funzione getTemplate() si trova questa query che serve a capire qual è il template associato all'utente:
Ora, la funzione getArrSt() restituisce NON SOLO I GRUPPI CUI L'UTENTE APPARTIENE, ma anche una serie (molto lunga) di id di roba che non capisco bene, ma comunque non si tratta necessariamente di id di gruppi a cui l'utente appartiene. Questo significa che se per caso uno di quegli id "strani" corrisponde a un gruppo realmente esistente, cui l'utente non appartiene, ma che ha un suo template diverso da quello di default, l'utente vedrà quel template!!!
Se il ragionamento vi "quadra", io proporrei questa modifica alla query:
Che mi sembra funzionare ...
in /lib/lib.template.php, nella funzione getTemplate() si trova questa query che serve a capire qual è il template associato all'utente:
Code: Select all
$qtxt = "SELECT ct.associated_template FROM
%adm_org_chart_tree
WHERE associated_template IS NOT NULL AND
idst_oc IN (".implode(',', Docebo::user()->getArrSt()).")
ORDER BY iLeft DESC
LIMIT 0,1";
Se il ragionamento vi "quadra", io proporrei questa modifica alla query:
Code: Select all
$qtxt = "SELECT ct.associated_template FROM
%adm_org_chart_tree as ct
INNER JOIN %adm_group_members as gm ON ct.idst_oc = gm.idst
WHERE ct.associated_template IS NOT NULL AND
ct.idst_oc IN (".implode(',', Docebo::user()->getArrSt()).")
AND gm.idstMember = ".Docebo::user()->getIdSt()."
ORDER BY ct.iLeft DESC
LIMIT 0,1";