Bug in get Template

Installazione, configurazione generale, notifiche, API, lingue, problemi server
Post Reply
jasmines
Senior Boarder
Posts: 277
Joined: Fri May 03, 2013 12:29 pm

Bug in get Template

Post by jasmines »

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:

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";
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:

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";
Che mi sembra funzionare ...
User avatar
canelli
FormaLms Guru
Posts: 496
Joined: Thu Nov 08, 2012 12:21 pm
Version: forma.lms 2.0
Contact:

Re: Bug in get Template

Post by canelli »

CIao Jasmine
su quale versione di Docebo hai trovato il problema?
Cercate nel forum le riposte prima di chiedere. Check the forum before posting
---------------
Claudio Anelli
Joint Technologies - Sistemi avanzati per l'information technology

http://www.joint-tech.com
---------------
jasmines
Senior Boarder
Posts: 277
Joined: Fri May 03, 2013 12:29 pm

Re: Bug in get Template

Post by jasmines »

Nella 4.0.5, sono quasi certa che è ricorrente, e non solo in quella funzione.
jasmines
Senior Boarder
Posts: 277
Joined: Fri May 03, 2013 12:29 pm

Re: Bug in get Template

Post by jasmines »

Riporto alla vostra attenzione questo problema... Ne discutiamo please?
User avatar
CisterNino
FormaLms User
Posts: 72
Joined: Mon May 06, 2013 2:59 pm

Re: Bug in get Template

Post by CisterNino »

In effetti, Docebo::user()->getArrSt() ritorna tutti i gruppi in cui l'utente, idst_oc, compare: nodi dell'organigramma, gruppi trasversali, gruppi all'interno dei corsi, gruppi associati a ruoli etc. etc.
Nella query, però è impostato il parametro "associated_template IS NOT NULL" che è un attributo della tabella, core_org_chart_tree, valorizzato solo nel caso dei gruppi che corrispondono a nodi dell'organigramma. Questo implica che la query estrae solamente record associati a gruppi che corrispondono a nodi dell'organigramma. Infine, la clausola "limit 0,1" visualizza un solo record nel caso in cui l'utente sia inserito in più nodi. Dunque la query, a mio avviso, ritrova correttamente il template associato al nodo più nuovo (iLeft DESC) in cui l'utente è stato inserito nel caso di inserimento in più nodi, altrimenti ritrova l'unico template, se esiste, a lui associato.
D'altro canto, la tua query, mi sembra leggermente più complessa dal punto di vista computazionale. Per tanto, a mio avviso, la query presente in Docebo è corretta.

Ciao
I'm Livio, the Two. If you need, you can contact the one.
Post Reply