Merge pull request #8274 from defrance/patch-104

Optimise SQL squery
This commit is contained in:
Laurent Destailleur 2018-03-05 20:50:00 +01:00 committed by GitHub
commit a87d558b41
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -176,11 +176,9 @@ $db->commit();
// Lecture des droits utilisateurs
$permsuser = array();
$sql = "SELECT DISTINCT r.id, r.libelle, r.module";
$sql.= " FROM ".MAIN_DB_PREFIX."rights_def as r,";
$sql.= " ".MAIN_DB_PREFIX."user_rights as ur";
$sql.= " WHERE ur.fk_id = r.id";
$sql.= " AND ur.entity = ".$entity;
$sql = "SELECT DISTINCT ur.fk_id";
$sql.= " FROM ".MAIN_DB_PREFIX."user_rights as ur";
$sql.= " WHERE ur.entity = ".$entity;
$sql.= " AND ur.fk_user = ".$object->id;
dol_syslog("get user perms", LOG_DEBUG);
@ -192,7 +190,7 @@ if ($result)
while ($i < $num)
{
$obj = $db->fetch_object($result);
array_push($permsuser,$obj->id);
array_push($permsuser,$obj->fk_id);
$i++;
}
$db->free($result);
@ -205,12 +203,10 @@ else
// Lecture des droits groupes
$permsgroupbyentity = array();
$sql = "SELECT DISTINCT r.id, r.libelle, r.module, gu.entity";
$sql.= " FROM ".MAIN_DB_PREFIX."rights_def as r,";
$sql.= " ".MAIN_DB_PREFIX."usergroup_rights as gr,";
$sql = "SELECT DISTINCT gr.fk_id, gu.entity";
$sql.= " FROM ".MAIN_DB_PREFIX."usergroup_rights as gr,";
$sql.= " ".MAIN_DB_PREFIX."usergroup_user as gu";
$sql.= " WHERE gr.fk_id = r.id";
$sql.= " AND gr.entity = ".$entity;
$sql.= " WHERE gr.entity = ".$entity;
$sql.= " AND gr.fk_usergroup = gu.fk_usergroup";
$sql.= " AND gu.fk_user = ".$object->id;
@ -225,7 +221,7 @@ if ($result)
$obj = $db->fetch_object($result);
if (! isset($permsgroupbyentity[$obj->entity]))
$permsgroupbyentity[$obj->entity] = array();
array_push($permsgroupbyentity[$obj->entity], $obj->id);
array_push($permsgroupbyentity[$obj->entity], $obj->fk_id);
$i++;
}
$db->free($result);