From c5f14cc782bf56f1d1211cf761475928e8de1d09 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 4 May 2009 18:13:07 +0000 Subject: [PATCH] Fix: just view non affected user and group --- htdocs/user/group/fiche.php | 310 +++++++++++++++++++++--------------- 1 file changed, 184 insertions(+), 126 deletions(-) diff --git a/htdocs/user/group/fiche.php b/htdocs/user/group/fiche.php index 8d679368501..771f97b7516 100644 --- a/htdocs/user/group/fiche.php +++ b/htdocs/user/group/fiche.php @@ -287,148 +287,206 @@ else if ($message) { print $message."
"; } + /* + * Liste des utilisateurs dans le groupe + */ - /* - * Liste des utilisateurs dans le groupe - */ + print_fiche_titre($langs->trans("ListOfUsersInGroup"),'',''); - print_fiche_titre($langs->trans("ListOfUsersInGroup"),'',''); + // On sélectionne les users qui ne sont pas déjà dans le groupe + $userlistid = array(); + $uss = array(); + + $sql = "SELECT ug.fk_user"; + $sql.= " FROM ".MAIN_DB_PREFIX."usergroup_user as ug"; + $sql.= ", ".MAIN_DB_PREFIX."user as u"; + $sql.= " WHERE ug.fk_usergroup = ".$group->id; + $sql.= " AND ug.fk_user = u.rowid"; + $sql.= " AND u.entity IN (0,".$conf->entity.")"; + + $result = $db->query($sql); + if ($result) + { + $num = $db->num_rows($result); + $i = 0; + + while ($i < $num) + { + $obj = $db->fetch_object($result); + + $userlistid[]=$obj->fk_user; + $i++; + } + } + else { + dol_print_error($db); + } + + $idList = implode(",",$userlistid); + + if (!empty($idList)) + { + $sql = "SELECT u.rowid, u.login, u.name, u.firstname, u.admin"; + $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; + $sql.= " WHERE u.entity IN (0,".$conf->entity.")"; + $sql.= " AND u.rowid NOT IN (".$idList.")"; + $sql.= " ORDER BY u.name"; + + $result = $db->query($sql); + if ($result) + { + $num = $db->num_rows($result); + $i = 0; - // On sélectionne les users qui ne sont pas déjà dans le groupe - $uss = array(); + while ($i < $num) + { + $obj = $db->fetch_object($result); - $sql = "SELECT u.rowid, u.login, u.name, u.firstname, u.admin"; - $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; - $sql.= " WHERE u.entity IN (0,".$conf->entity.")"; - $sql.= " ORDER BY u.name"; + $uss[$obj->rowid] = ucfirst(stripslashes($obj->name)).' '.ucfirst(stripslashes($obj->firstname)); + if ($obj->login) $uss[$obj->rowid].=' ('.$obj->login.')'; + $i++; + } + } + else { + dol_print_error($db); + } + } + else + { + $sql = "SELECT u.rowid, u.login, u.name, u.firstname, u.admin"; + $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; + $sql.= " WHERE u.entity IN (0,".$conf->entity.")"; + $sql.= " ORDER BY u.name"; + + $result = $db->query($sql); + if ($result) + { + $num = $db->num_rows($result); + $i = 0; - $result = $db->query($sql); - if ($result) - { - $num = $db->num_rows($result); - $i = 0; + while ($i < $num) + { + $obj = $db->fetch_object($result); - while ($i < $num) - { - $obj = $db->fetch_object($result); + $uss[$obj->rowid] = ucfirst(stripslashes($obj->name)).' '.ucfirst(stripslashes($obj->firstname)); + if ($obj->login) $uss[$obj->rowid].=' ('.$obj->login.')'; + $i++; + } + } + else { + dol_print_error($db); + } + } - $uss[$obj->rowid] = ucfirst(stripslashes($obj->name)).' '.ucfirst(stripslashes($obj->firstname)); - if ($obj->login) $uss[$obj->rowid].=' ('.$obj->login.')'; - $i++; - } - } - else { - dol_print_error($db); - } + if ($caneditperms) + { + $form = new Form($db); + print '
'."\n"; + print ''; + print ''."\n"; + print ''."\n"; + //print ''."\n"; + print ''."\n"; + print '
'.$langs->trans("NonAffectedUsers").'
'.$langs->trans("UsersToAdd").''; + print $form->select_array("user",$uss,'',1); + print '   '; + print ''; + print '
'."\n"; + print '
'; + } - if ($caneditperms) - { - $form = new Form($db); - print '
'."\n"; - print ''; - print ''."\n"; - // print ''."\n"; - print ''."\n"; - print ''."\n"; - print '
'.$langs->trans("NonAffectedUsers").'
'.$langs->trans("UsersToAdd").''; - print $form->select_array("user",$uss,'',1); - print '   '; - print ''; - print '
'."\n"; - print '
'; - } + /* + * Membres du groupe + */ + $sql = "SELECT u.rowid, u.login, u.name, u.firstname, u.admin, u.entity"; + $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; + $sql.= ", ".MAIN_DB_PREFIX."usergroup_user as ug"; + $sql.= " WHERE ug.fk_user = u.rowid"; + $sql.= " AND ug.fk_usergroup = ".$group->id; + $sql.= " ORDER BY u.name"; - /* - * Membres du groupe - */ - $sql = "SELECT u.rowid, u.login, u.name, u.firstname, u.admin, u.entity"; - $sql.= " FROM ".MAIN_DB_PREFIX."user as u,"; - $sql.= " ".MAIN_DB_PREFIX."usergroup_user as ug"; - $sql.= " WHERE ug.fk_user = u.rowid"; - $sql.= " AND ug.fk_usergroup = ".$group->id; - $sql.= " ORDER BY u.name"; + $result = $db->query($sql); + if ($result) + { + $num = $db->num_rows($result); + $i = 0; - $result = $db->query($sql); - if ($result) - { - $num = $db->num_rows($result); - $i = 0; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print "\n"; + if ($num) { + $var=True; + while ($i < $num) + { + $obj = $db->fetch_object($result); + $var=!$var; - print '
'.$langs->trans("Login").''.$langs->trans("Lastname").''.$langs->trans("Firstname").'  
'; - print ''; - print ''; - print ''; - print ''; - print ''; - print "\n"; - if ($num) { - $var=True; - while ($i < $num) - { - $obj = $db->fetch_object($result); - $var=!$var; + print ""; + print ''; + print ''; + print ''; + print '"; - print ''; - print ''; - print ''; - print '\n"; + $i++; + } + } + else + { + print ''; + } + print "
'.$langs->trans("Login").''.$langs->trans("Lastname").''.$langs->trans("Firstname").'  
'; + print ''.img_object($langs->trans("ShowUser"),"user").' '.$obj->login.''; + if ($obj->admin && !$obj->entity) + { + print img_redstar($langs->trans("SuperAdministrator")); + } + else if ($obj->admin) + { + print img_picto($langs->trans("Administrator"),'star'); + } + print ''.ucfirst(stripslashes($obj->name)).''.ucfirst(stripslashes($obj->firstname)).' '; - print "
'; - print ''.img_object($langs->trans("ShowUser"),"user").' '.$obj->login.''; - if ($obj->admin && !$obj->entity) - { - print img_redstar($langs->trans("SuperAdministrator")); - } - else if ($obj->admin) - { - print img_picto($langs->trans("Administrator"),'star'); - } - print ''.ucfirst(stripslashes($obj->name)).''.ucfirst(stripslashes($obj->firstname)).' '; + if ($user->admin) + { - if ($user->admin) - { + print ''; + print img_delete($langs->trans("RemoveFromGroup")); + } + else + { + print "-"; + } + print "
'.$langs->trans("None").'
"; + print "
"; + $db->free($result); + } + else { + dol_print_error($db); + } + } - print ''; - print img_delete($langs->trans("RemoveFromGroup")); - } - else - { - print "-"; - } - print "\n"; - $i++; - } - } - else - { - print ''.$langs->trans("None").''; - } - print ""; - print "
"; - $db->free($result); - } - else { - dol_print_error($db); - } - } + /* + * Fiche en mode edition + */ + if ($_GET["action"] == 'edit' && $caneditperms) + { + print '
'; + print ''; - /* - * Fiche en mode edition - */ - if ($_GET["action"] == 'edit' && $caneditperms) - { - print ''; - print ''; + print ''; + print ''; + print '\n"; + print ''; + print '
'.$langs->trans("Name").''; + if (!$group->entity) + { + print img_redstar($langs->trans("GlobalGroup")); + } + print "
'.$langs->trans("Note").''; - print ''; - print ''; - print '\n"; - print ''; - print '
'.$langs->trans("Name").''; - if (!$group->entity) - { - print img_redstar($langs->trans("GlobalGroup")); - } - print "
'.$langs->trans("Note").''; if ($conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_USER) { require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php");