From 7afdd8fd64c862c20f214e405aad9dbc612a134b Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Fri, 29 Oct 2010 08:41:18 +0000 Subject: [PATCH] New: Task #10725 --- htdocs/user/fiche.php | 287 +++++++++++++++++++++--------------------- 1 file changed, 146 insertions(+), 141 deletions(-) diff --git a/htdocs/user/fiche.php b/htdocs/user/fiche.php index 3acbb8a5a3d..7fb36981aa0 100644 --- a/htdocs/user/fiche.php +++ b/htdocs/user/fiche.php @@ -41,6 +41,8 @@ $canadduser=($user->admin || $user->rights->user->user->creer); $canreaduser=($user->admin || $user->rights->user->user->lire); $canedituser=($user->admin || $user->rights->user->user->creer); $candisableuser=($user->admin || $user->rights->user->user->supprimer); +$canreadgroup=($user->admin || $user->rights->user->group->read); +$caneditgroup=($user->admin || $user->rights->user->group->write); // Define value to know what current user can do on properties of edited user if ($_GET["id"]) { @@ -1173,168 +1175,171 @@ else /* * Liste des groupes dans lequel est l'utilisateur */ - - print_fiche_titre($langs->trans("ListOfGroupsForUser"),'',''); - - // On selectionne les groups - $grouplistid = array(); - $uss = array(); - - $sql = "SELECT ug.fk_usergroup"; - $sql.= " FROM ".MAIN_DB_PREFIX."usergroup_user as ug"; - $sql.= ", ".MAIN_DB_PREFIX."usergroup as u"; - $sql.= " WHERE ug.fk_user = ".$fuser->id; - $sql.= " AND ug.fk_usergroup = u.rowid"; - $sql.= " AND u.entity IN (0,".$conf->entity.")"; - - $result = $db->query($sql); - if ($result) + + if ($canreadgroup) { - $num = $db->num_rows($result); - $i = 0; - - while ($i < $num) + print_fiche_titre($langs->trans("ListOfGroupsForUser"),'',''); + + // On selectionne les groups + $grouplistid = array(); + $uss = array(); + + $sql = "SELECT ug.fk_usergroup"; + $sql.= " FROM ".MAIN_DB_PREFIX."usergroup_user as ug"; + $sql.= ", ".MAIN_DB_PREFIX."usergroup as u"; + $sql.= " WHERE ug.fk_user = ".$fuser->id; + $sql.= " AND ug.fk_usergroup = u.rowid"; + $sql.= " AND u.entity IN (0,".$conf->entity.")"; + + $result = $db->query($sql); + if ($result) { - $obj = $db->fetch_object($result); - - $grouplistid[]=$obj->fk_usergroup; - $i++; - } - } - else { - dol_print_error($db); - } - - $idList = implode(",",$grouplistid); - - if (!empty($idList)) - { - $sql = "SELECT ug.rowid, ug.nom "; - $sql.= " FROM ".MAIN_DB_PREFIX."usergroup as ug "; - $sql.= " WHERE ug.entity IN (0,".$conf->entity.")"; - $sql.= " AND ug.rowid NOT IN (".$idList.")"; - $sql.= " ORDER BY ug.nom"; - - $resql = $db->query($sql); - if ($resql) - { - $num = $db->num_rows($resql); + $num = $db->num_rows($result); $i = 0; - + while ($i < $num) { - $obj = $db->fetch_object($resql); - - $uss[$obj->rowid] = $obj->nom; + $obj = $db->fetch_object($result); + + $grouplistid[]=$obj->fk_usergroup; $i++; } } else { dol_print_error($db); } - } - else - { - $sql = "SELECT ug.rowid, ug.nom "; - $sql.= " FROM ".MAIN_DB_PREFIX."usergroup as ug "; - $sql.= " WHERE ug.entity IN (0,".$conf->entity.")"; - $sql.= " ORDER BY ug.nom"; - - $resql = $db->query($sql); - if ($resql) + + $idList = implode(",",$grouplistid); + + if (!empty($idList)) { - $num = $db->num_rows($resql); - $i = 0; - - while ($i < $num) + $sql = "SELECT ug.rowid, ug.nom "; + $sql.= " FROM ".MAIN_DB_PREFIX."usergroup as ug "; + $sql.= " WHERE ug.entity IN (0,".$conf->entity.")"; + $sql.= " AND ug.rowid NOT IN (".$idList.")"; + $sql.= " ORDER BY ug.nom"; + + $resql = $db->query($sql); + if ($resql) { - $obj = $db->fetch_object($resql); - - $uss[$obj->rowid] = $obj->nom; - $i++; + $num = $db->num_rows($resql); + $i = 0; + + while ($i < $num) + { + $obj = $db->fetch_object($resql); + $uss[$obj->rowid] = $obj->nom; + $i++; + } + } + else { + dol_print_error($db); } } - else { - dol_print_error($db); - } - } - $db->free($resql); - - if ($canedituser) - { - $form = new Form($db); - print '
'."\n"; - print ''; - print ''; - print ''."\n"; - print ''."\n"; - print ''."\n"; - print '
'.$langs->trans("GroupsToAdd").''; - print $form->selectarray("group",$uss); - print '   '; - print ''; - print '
'."\n"; - - print '
'; - } - - /* - * Groupes affectes - */ - $usergroup=new UserGroup($db); - $listofgroups=$usergroup->listGroupsForUser($fuser); - $num=sizeof($listofgroups); - - print ''; - print ''; - print ''; - print "\n"; - - if ($num > 0) - { - $i = 0; - - $var=true; - while ($i < $num) + else { - $group = $listofgroups[$i]; - $var=!$var; - - print ""; + $sql = "SELECT ug.rowid, ug.nom "; + $sql.= " FROM ".MAIN_DB_PREFIX."usergroup as ug "; + $sql.= " WHERE ug.entity IN (0,".$conf->entity.")"; + $sql.= " ORDER BY ug.nom"; + + $resql = $db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + $i = 0; + + while ($i < $num) + { + $obj = $db->fetch_object($resql); + + $uss[$obj->rowid] = $obj->nom; + $i++; + } + } + else { + dol_print_error($db); + } + } + $db->free($resql); + + if ($caneditgroup) + { + $form = new Form($db); + print ''."\n"; + print ''; + print ''; + print '
'.$langs->trans("Groups").' 
'."\n"; + print ''."\n"; print ''; - print '\n"; - $i++; + print $form->selectarray("group",$uss); + print '   '; + print ''; + print ''."\n"; + print '
'.$langs->trans("GroupsToAdd").''; - if ($canreaduser) - { - print ''.img_object($langs->trans("ShowGroup"),"group").' '.$group->nom.''; - } - else - { - print img_object($langs->trans("ShowGroup"),"group").' '.$group->nom; - } - print ''; - - if ($canedituser) - { - print 'id.'">'; - print img_delete($langs->trans("RemoveFromGroup")); - } - else - { - print " "; - } - print "
'."\n"; + + print '
'; } + + /* + * Groupes affectes + */ + $usergroup=new UserGroup($db); + $listofgroups=$usergroup->listGroupsForUser($fuser); + $num=sizeof($listofgroups); + + print ''; + print ''; + print ''; + print "\n"; + + if ($num > 0) + { + $i = 0; + + $var=true; + while ($i < $num) + { + $group = $listofgroups[$i]; + $var=!$var; + + print ""; + print ''; + print '\n"; + $i++; + } + } + else + { + print ''; + } + + print "
'.$langs->trans("Groups").' 
'; + if ($caneditgroup) + { + print ''.img_object($langs->trans("ShowGroup"),"group").' '.$group->nom.''; + } + else + { + print img_object($langs->trans("ShowGroup"),"group").' '.$group->nom; + } + print ''; + + if ($caneditgroup) + { + print 'id.'">'; + print img_delete($langs->trans("RemoveFromGroup")); + } + else + { + print " "; + } + print "
'.$langs->trans("None").'
"; + print "
"; } - else - { - print ''.$langs->trans("None").''; - } - - print ""; - print "
"; } + /* * Fiche en mode edition */