[Risolto] Errore 500 con amministratore pubblico

Domande sulle funzionalità di backend: amministrazione utenti e corsi, certificati, iscrizioni, report, ...
Post Reply
User avatar
robykirk
FormaLms User
Posts: 140
Joined: Mon Mar 12, 2012 10:06 pm

[Risolto] Errore 500 con amministratore pubblico

Post by robykirk »

Sono incappato in un altro problema nella versione 4.05 di docebo.
Ho creato un amministratore pubblico ed un amministratore.
In entrambi i casi, nel voler gestire i corsi, ricevevo un errore 500 dal server.
Per risolvere il problema è stato modificato il file lib/lib.preference.php, sostituendo la funzione

Code: Select all

	public function getAdminUsersQuery($id_admin, $idst_field_name) {

		$acl_man = $this->acl_man;
		$admin_tree		= $this->getAdminTree( $id_admin );
		$admin_users = $acl_man->getAllUsersFromIdst($admin_tree);
		$query = '';
		if(!empty($admin_users)) $query = " $idst_field_name IN (".implode(',', $admin_users).") ";
		if($query !== '')
			return $query;
		else
			return " 0 ";
con la funzione:

Code: Select all

  public function getAdminUsersQuery($id_admin, $idst_field_name) {
 
        $acl_man = Docebo::aclm();
        $admin_tree     = $this->getAdminTree( $id_admin );
        // separate the users and the groups
        $admin_users    = $acl_man->getUsersFromMixedIdst($admin_tree);
        $admin_groups   = $acl_man->getGroupsFromMixedIdst($admin_tree);
 
        // retrive parent groups
        $tmp_admin_groups = array();
        foreach($admin_groups as $id_group) {
            $tmp_admin_groups = array_merge( $tmp_admin_groups, $acl_man->getGroupGDescendants($id_group) );
        }
        $admin_groups = $tmp_admin_groups;
 
        $arr_query = array();
        if(!empty($admin_users)) $arr_query[] = " $idst_field_name IN (".implode(',', $admin_users).") ";
        if(!empty($admin_groups))  $arr_query[] = " $idst_field_name IN ( SELECT idstMember FROM %adm_group_members WHERE idst IN (".implode(',', $admin_groups).") ) ";
         
        if(!empty($arr_query)) $query = "( ".implode($arr_query, 'OR')." )";
        else $query = " 0 ";
        return $query;
    }
Questa modifica non è stata effettuata da me, ma è stata trovata nel web.
Sembra funzionare correttamente.

N.B.: Ricorda di salvare una copia di sicurezza dei files, prima di modificarli.


Ciao
Roby Kirk
User avatar
alberto
FormaLms Guru
Posts: 1134
Joined: Fri Mar 02, 2012 9:18 am
Contact:

Re: [Risolto] Errore 500 con amministratore pubblico

Post by alberto »

Ciao Robykirk, ho verificato l'errore e il fix, grazie mille per averlo condiviso! :)
Allego la versione corretta del file, basta decomprimere il file nella root di installazione.

Ciao!
Attachments
lib.preference.php.zip
(15.45 KiB) Downloaded 302 times
User avatar
davide.desimone
FormaLms User
Posts: 108
Joined: Sun Mar 04, 2012 12:11 pm

Re: [Risolto] Errore 500 con amministratore pubblico

Post by davide.desimone »

grazie!
Amigamerlin
FormaLms User
Posts: 46
Joined: Sun Apr 22, 2012 10:58 am

Re: [Risolto] Errore 500 con amministratore pubblico

Post by Amigamerlin »

grazie per il fix.
User avatar
renato.gambella
FormaLms User
Posts: 73
Joined: Tue Mar 12, 2013 8:49 am

Re: [Risolto] Errore 500 con amministratore pubblico

Post by renato.gambella »

Siete dei grandi... ogni volta che ho un problema qui trovo la soluzione. Grazie mille ;-)
Post Reply