Optimisation chargement permissions
This commit is contained in:
parent
bfe0fea6a5
commit
a36e89e585
@ -80,6 +80,9 @@ class User
|
|||||||
//! Liste des entrepots auquel a acces l'utilisateur
|
//! Liste des entrepots auquel a acces l'utilisateur
|
||||||
var $entrepots;
|
var $entrepots;
|
||||||
|
|
||||||
|
var $tab_loaded=array(); // Tableau pour signaler les permissions deja chargées
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Constructeur de la classe
|
* \brief Constructeur de la classe
|
||||||
* \param DB Handler accès base de données
|
* \param DB Handler accès base de données
|
||||||
@ -441,7 +444,7 @@ class User
|
|||||||
*/
|
*/
|
||||||
function getrights($module='')
|
function getrights($module='')
|
||||||
{
|
{
|
||||||
dolibarr_syslog('User::Getrights id='.$this->id.' module='.$module, LOG_DEBUG);
|
if ($module && isset($this->tab_loaded[$module]) && $this->tab_loaded[$module]) { return; } // Le fichier de ce module est deja chargé
|
||||||
|
|
||||||
if ($this->all_permissions_are_loaded)
|
if ($this->all_permissions_are_loaded)
|
||||||
{
|
{
|
||||||
@ -450,6 +453,7 @@ class User
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Récupération des droits utilisateurs + récupération des droits groupes
|
// Récupération des droits utilisateurs + récupération des droits groupes
|
||||||
|
dolibarr_syslog('User::Getrights id='.$this->id.' module='.$module, LOG_DEBUG);
|
||||||
|
|
||||||
// D'abord les droits utilisateurs
|
// D'abord les droits utilisateurs
|
||||||
$sql = "SELECT r.module, r.perms, r.subperms";
|
$sql = "SELECT r.module, r.perms, r.subperms";
|
||||||
@ -519,12 +523,17 @@ class User
|
|||||||
$this->db->free($result);
|
$this->db->free($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($module == '')
|
if (! $module)
|
||||||
{
|
{
|
||||||
// Si module etait non defini, alors on a tout chargé, on peut donc considérer
|
// Si module etait non defini, alors on a tout chargé, on peut donc considérer
|
||||||
// que les droits sont en cache (car tous chargés) pour cet instance de user
|
// que les droits sont en cache (car tous chargés) pour cet instance de user
|
||||||
$this->all_permissions_are_loaded=1;
|
$this->all_permissions_are_loaded=1;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Si module défini, on considère chargé en cache que le module
|
||||||
|
$this->tab_loaded[$module]=1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user