From bf4402eb89efdd55dc0d00440350ec06f4debb29 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 6 Mar 2018 19:22:59 +0100 Subject: [PATCH] Fix: missing superadmin --- htdocs/user/class/user.class.php | 16 +++++++++------- htdocs/user/home.php | 16 +++++++++------- htdocs/user/index.php | 16 +++++++++------- 3 files changed, 27 insertions(+), 21 deletions(-) diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 7cc6e673d37..3af25797113 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -2744,11 +2744,15 @@ class User extends CommonObject // Init $this->users array $sql = "SELECT DISTINCT u.rowid, u.firstname, u.lastname, u.fk_user, u.fk_soc, u.login, u.email, u.gender, u.admin, u.statut, u.photo, u.entity"; // Distinct reduce pb with old tables with duplicates $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; - if (! empty($conf->multicompany->enabled)) - { + // TODO add hook + if (! empty($conf->multicompany->enabled)) { if (! empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { - if ($conf->entity == 1 && ! empty($user->admin) && empty($user->entity)) { - $sql.= " WHERE u.entity IS NOT NULL"; + if (! empty($user->admin) && empty($user->entity)) { + if ($conf->entity == 1) { + $sql.= " WHERE u.entity IS NOT NULL"; + } else { + $sql.= " WHERE u.entity IN (".getEntity('user').")"; + } } else { $sql.= ",".MAIN_DB_PREFIX."usergroup_user as ug"; $sql.= " WHERE ug.fk_user = u.rowid"; @@ -2757,9 +2761,7 @@ class User extends CommonObject } else { $sql.= " WHERE u.entity IN (".getEntity('user').")"; } - } - else - { + } else { $sql.= " WHERE u.entity IN (".getEntity('user').")"; } if ($filter) $sql.=" AND ".$filter; diff --git a/htdocs/user/home.php b/htdocs/user/home.php index d2ec0ce4f36..0a4cb253c0f 100644 --- a/htdocs/user/home.php +++ b/htdocs/user/home.php @@ -101,11 +101,15 @@ $sql.= ", s.code_client"; $sql.= ", s.canvas"; $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON u.fk_soc = s.rowid"; -if (! empty($conf->multicompany->enabled)) -{ +// TODO add hook +if (! empty($conf->multicompany->enabled)) { if (! empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { - if ($conf->entity == 1 && ! empty($user->admin) && empty($user->entity)) { - $sql.= " WHERE u.entity IS NOT NULL"; + if (! empty($user->admin) && empty($user->entity)) { + if ($conf->entity == 1) { + $sql.= " WHERE u.entity IS NOT NULL"; + } else { + $sql.= " WHERE u.entity IN (".getEntity('user').")"; + } } else { $sql.= ",".MAIN_DB_PREFIX."usergroup_user as ug"; $sql.= " WHERE ug.fk_user = u.rowid"; @@ -114,9 +118,7 @@ if (! empty($conf->multicompany->enabled)) } else { $sql.= " WHERE u.entity IN (".getEntity('user').")"; } -} -else -{ +} else { $sql.= " WHERE u.entity IN (".getEntity('user').")"; } if (!empty($socid)) $sql.= " AND u.fk_soc = ".$socid; diff --git a/htdocs/user/index.php b/htdocs/user/index.php index 52c38497cea..704c04d2593 100644 --- a/htdocs/user/index.php +++ b/htdocs/user/index.php @@ -191,11 +191,15 @@ $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user_extrafields as ef on (u.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON u.fk_soc = s.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u2 ON u.fk_user = u2.rowid"; -if (! empty($conf->multicompany->enabled)) -{ +// TODO add hook +if (! empty($conf->multicompany->enabled)) { if (! empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { - if ($conf->entity == 1 && ! empty($user->admin) && empty($user->entity)) { - $sql.= " WHERE u.entity IS NOT NULL"; + if (! empty($user->admin) && empty($user->entity)) { + if ($conf->entity == 1) { + $sql.= " WHERE u.entity IS NOT NULL"; + } else { + $sql.= " WHERE u.entity IN (".getEntity('user').")"; + } } else { $sql.= ",".MAIN_DB_PREFIX."usergroup_user as ug"; $sql.= " WHERE ug.fk_user = u.rowid"; @@ -204,9 +208,7 @@ if (! empty($conf->multicompany->enabled)) } else { $sql.= " WHERE u.entity IN (".getEntity('user').")"; } -} -else -{ +} else { $sql.= " WHERE u.entity IN (".getEntity('user').")"; } if ($socid > 0) $sql.= " AND u.fk_soc = ".$socid;