From 76d8bd517d4170c31ddccfb0ee22b87f5f43f551 Mon Sep 17 00:00:00 2001 From: BENKE Charlene Date: Mon, 5 Mar 2018 08:45:40 +0100 Subject: [PATCH] Optimise SQL squery Just a suppress a table and fields not needed --- htdocs/user/perms.php | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/htdocs/user/perms.php b/htdocs/user/perms.php index b83a6831053..209bc2541a8 100644 --- a/htdocs/user/perms.php +++ b/htdocs/user/perms.php @@ -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);