New: Ajout fonction editer groupe.

This commit is contained in:
Laurent Destailleur 2005-02-27 14:12:16 +00:00
parent 6278a051f9
commit e496a9e8ce
5 changed files with 637 additions and 424 deletions

View File

@ -50,6 +50,10 @@ ShowGroup=Show group
ShowUser=Show user ShowUser=Show user
NonAffectedUsers=Non affected users NonAffectedUsers=Non affected users
UserModified=User modified successfully UserModified=User modified successfully
GroupModified=Group modified successfully
PhotoFile=Fichier photo PhotoFile=Fichier photo
UserWithDolibarrAccess=User with Dolibarr access UserWithDolibarrAccess=User with Dolibarr access
ListOfUsersInGroup=List of users in group ListOfUsersInGroup=List of users in this group
ListOfGroupsForUser=List of groups for this user
UsersToAdd=Users to add to this group
GroupsToAdd=Groups to add to this user

View File

@ -50,6 +50,10 @@ ShowGroup=Afficher groupe
ShowUser=Afficher utilisateur ShowUser=Afficher utilisateur
NonAffectedUsers=Utilisateurs non affectés au groupe NonAffectedUsers=Utilisateurs non affectés au groupe
UserModified=Utilisateur modifié avec succès UserModified=Utilisateur modifié avec succès
GroupModified=Groupe modifié avec succès
PhotoFile=Fichier photo PhotoFile=Fichier photo
UserWithDolibarrAccess=Utilisateur avec accès Dolibarr UserWithDolibarrAccess=Utilisateur avec accès Dolibarr
ListOfUsersInGroup=Liste des utilisateurs dans le groupe ListOfUsersInGroup=Liste des utilisateurs dans ce groupe
ListOfGroupsForUser=Liste des groupes pour cet utilisateur
UsersToAdd=Utilisateur à ajouter à ce groupe
GroupsToAdd=Groupes à ajouter pour cet utilisateur

View File

@ -22,7 +22,8 @@
* $Source$ * $Source$
*/ */
/** \file htdocs/user/fiche.php /**
\file htdocs/user/fiche.php
\brief Onglet user et permissions de la fiche utilisateur \brief Onglet user et permissions de la fiche utilisateur
\version $Revision$ \version $Revision$
*/ */
@ -75,7 +76,6 @@ if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == "yes")
} }
} }
/** /**
* Action ajout user * Action ajout user
*/ */
@ -128,6 +128,28 @@ if ($_POST["action"] == 'add' && $user->admin)
} }
} }
if ($_POST["action"] == 'addgroup' && $user->admin)
{
if ($_POST["group"])
{
$edituser = new User($db, $_GET["id"]);
$edituser->SetInGroup($_POST["group"]);
Header("Location: fiche.php?id=".$_GET["id"]);
}
}
if ($_GET["action"] == 'removegroup' && $user->admin)
{
if ($_GET["group"])
{
$edituser = new User($db, $_GET["id"]);
$edituser->RemoveFromGroup($_GET["group"]);
Header("Location: fiche.php?id=".$_GET["id"]);
}
}
if ($_POST["action"] == 'update' && $user->admin) if ($_POST["action"] == 'update' && $user->admin)
{ {
$message=""; $message="";
@ -194,7 +216,7 @@ if ($_GET["action"] == 'password' && $user->admin)
} }
llxHeader('','Fiche Utilisateur'); llxHeader('',$langs->trans("UserCard"));
if ($action == 'create') if ($action == 'create')
{ {
@ -306,12 +328,12 @@ else
$html->form_confirm("fiche.php?id=$fuser->id",$langs->trans("DeleteAUser"),$langs->trans("ConfirmDeleteUser",$fuser->login),"confirm_delete"); $html->form_confirm("fiche.php?id=$fuser->id",$langs->trans("DeleteAUser"),$langs->trans("ConfirmDeleteUser",$fuser->login),"confirm_delete");
} }
if ($_GET["action"] != 'edit')
{
/* /*
* Fiche en mode visu * Fiche en mode visu
*/ */
if ($_GET["action"] != 'edit')
{
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
print '<tr><td width="25%" valign="top">'.$langs->trans("Lastname").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Lastname").'</td>';
@ -394,7 +416,6 @@ else
/* /*
* Barre d'actions * Barre d'actions
*
*/ */
print '<div class="tabsAction">'; print '<div class="tabsAction">';
@ -421,6 +442,120 @@ else
print "</div>\n"; print "</div>\n";
print "<br>\n"; print "<br>\n";
/*
* Liste des groupes dans lequel est l'utilisateur
*/
print_titre($langs->trans("ListOfGroupsForUser"));
print "<br>\n";
// On sélectionne les groups
$uss = array();
$sql = "SELECT ug.rowid, ug.nom ";
$sql .= " FROM ".MAIN_DB_PREFIX."usergroup as ug ";
# $sql .= " LEFT JOIN llx_usergroup_user ug ON u.rowid = ug.fk_user";
# $sql .= " WHERE ug.fk_usergroup IS NULL";
$sql .= " ORDER BY ug.nom";
$result = $db->query($sql);
if ($result)
{
$num = $db->num_rows();
$i = 0;
while ($i < $num)
{
$obj = $db->fetch_object();
$uss[$obj->rowid] = $obj->nom;
$i++;
}
}
else {
dolibarr_print_error($db);
}
if ($user->admin)
{
$form = new Form($db);
print '<form action="fiche.php?id='.$_GET["id"].'" method="post">'."\n";
print '<input type="hidden" name="action" value="addgroup">';
print '<table class="noborder" width="100%">'."\n";
// print '<tr class="liste_titre"><td width="25%">'.$langs->trans("NonAffectedUsers").'</td>'."\n";
print '<tr class="liste_titre"><td width="25%">'.$langs->trans("GroupsToAdd").'</td>'."\n";
print '<td>';
print $form->select_array("group",$uss);
print ' &nbsp; ';
print '<input type="submit" class=button value="'.$langs->trans("Add").'">';
print '</td></tr>'."\n";
print '</table></form>'."\n";
}
/*
* Groupes affectés
*/
$sql = "SELECT g.rowid, g.nom ";
$sql .= " FROM ".MAIN_DB_PREFIX."usergroup as g";
$sql .= ",".MAIN_DB_PREFIX."usergroup_user as ug";
$sql .= " WHERE ug.fk_usergroup = g.rowid";
$sql .= " AND ug.fk_user = ".$_GET["id"];
$sql .= " ORDER BY g.nom";
$result = $db->query($sql);
if ($result)
{
$num = $db->num_rows($result);
$i = 0;
print '<br>';
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td width="25%">'.$langs->trans("Group").'</td>';
print "<td>&nbsp;</td></tr>\n";
if ($num) {
$var=True;
while ($i < $num)
{
$obj = $db->fetch_object($result);
$var=!$var;
print "<tr $bc[$var]>";
print '<td>';
print '<a href="'.DOL_URL_ROOT.'/user/group/fiche.php?id='.$obj->rowid.'">'.img_object($langs->trans("ShowGroup"),"group").' '.$obj->nom.'</a>';
print '</td>';
print '<td>';
if ($user->admin)
{
print '<a href="fiche.php?id='.$_GET["id"].'&amp;action=removegroup&amp;group='.$obj->rowid.'">';
print img_delete($langs->trans("RemoveFromGroup"));
}
else
{
print "-";
}
print "</td></tr>\n";
$i++;
}
}
else
{
print '<tr><td colspan=2>'.$langs->trans("None").'</td></tr>';
}
print "</table>";
print "<br>";
$db->free($result);
}
else {
dolibarr_print_error($db);
}
} }
/* /*
@ -484,11 +619,10 @@ else
print '</table><br>'; print '</table><br>';
print '</form>'; print '</form>';
}
} }
} }
}
$db->close(); $db->close();

View File

@ -104,7 +104,32 @@ if ($_GET["action"] == 'removeuser' && $user->admin)
} }
} }
llxHeader(); if ($_POST["action"] == 'update' && $user->admin)
{
$message="";
$db->begin();
$editgroup = new Usergroup($db, $_GET["id"]);
$editgroup->fetch($_GET["id"]);
$editgroup->nom = $_POST["group"];
$editgroup->note = $_POST["note"];
$ret=$editgroup->update();
if ($ret >= 0) {
$message.='<div class="ok">'.$langs->trans("GroupModified").'</div>';
$db->commit();
} else {
$message.='<div class="error">'.$editgroup->error.'</div>';
$db->rollback;
}
}
llxHeader('',$langs->trans("GroupCard"));
/* ************************************************************************** */ /* ************************************************************************** */
@ -182,6 +207,8 @@ else
* Fiche en mode visu * Fiche en mode visu
*/ */
if ($_GET["action"] != 'edit') {
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
print '<tr><td width="25%" valign="top">'.$langs->trans("Name").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Name").'</td>';
print '<td width="75%" class="valeur">'.$group->nom.'</td>'; print '<td width="75%" class="valeur">'.$group->nom.'</td>';
@ -192,7 +219,6 @@ else
print "</table>\n"; print "</table>\n";
print "<br>\n"; print "<br>\n";
print '</div>'; print '</div>';
if ($message) { print $message; } if ($message) { print $message; }
@ -216,13 +242,18 @@ else
print "</div>\n"; print "</div>\n";
print "<br>\n"; print "<br>\n";
/*
* Liste des utilisateurs dans le groupe
*/
print_titre($langs->trans("ListOfUsersInGroup")); print_titre($langs->trans("ListOfUsersInGroup"));
print "<br>\n"; print "<br>\n";
// On sélectionne les users qui ne sont pas déjà dans le groupe // On sélectionne les users qui ne sont pas déjà dans le groupe
$uss = array(); $uss = array();
$sql = "SELECT u.rowid, u.name, u.firstname, u.code "; $sql = "SELECT u.rowid, u.login, u.name, u.firstname, u.code ";
$sql .= " FROM ".MAIN_DB_PREFIX."user as u "; $sql .= " FROM ".MAIN_DB_PREFIX."user as u ";
# $sql .= " LEFT JOIN llx_usergroup_user ug ON u.rowid = ug.fk_user"; # $sql .= " LEFT JOIN llx_usergroup_user ug ON u.rowid = ug.fk_user";
# $sql .= " WHERE ug.fk_usergroup IS NULL"; # $sql .= " WHERE ug.fk_usergroup IS NULL";
@ -238,7 +269,7 @@ else
{ {
$obj = $db->fetch_object(); $obj = $db->fetch_object();
$uss[$obj->rowid] = ucfirst(stripslashes($obj->firstname)) . " ".ucfirst(stripslashes($obj->name)); $uss[$obj->rowid] = ucfirst(stripslashes($obj->name)).' '.ucfirst(stripslashes($obj->firstname).' ('.$obj->login.')');
$i++; $i++;
} }
} }
@ -253,7 +284,7 @@ else
print '<input type="hidden" name="action" value="adduser">'; print '<input type="hidden" name="action" value="adduser">';
print '<table class="noborder" width="100%">'."\n"; print '<table class="noborder" width="100%">'."\n";
// print '<tr class="liste_titre"><td width="25%">'.$langs->trans("NonAffectedUsers").'</td>'."\n"; // print '<tr class="liste_titre"><td width="25%">'.$langs->trans("NonAffectedUsers").'</td>'."\n";
print '<tr class="liste_titre"><td width="25%">'.$langs->trans("Users").'</td>'."\n"; print '<tr class="liste_titre"><td width="25%">'.$langs->trans("UsersToAdd").'</td>'."\n";
print '<td>'; print '<td>';
print $form->select_array("user",$uss); print $form->select_array("user",$uss);
print ' &nbsp; '; print ' &nbsp; ';
@ -287,6 +318,7 @@ else
print '<td width="25%">'.$langs->trans("Firstname").'</td>'; print '<td width="25%">'.$langs->trans("Firstname").'</td>';
print '<td>'.$langs->trans("Code").'</td>'; print '<td>'.$langs->trans("Code").'</td>';
print "<td>&nbsp;</td></tr>\n"; print "<td>&nbsp;</td></tr>\n";
if ($num) {
$var=True; $var=True;
while ($i < $num) while ($i < $num)
{ {
@ -314,10 +346,44 @@ else
print "</td></tr>\n"; print "</td></tr>\n";
$i++; $i++;
} }
}
else
{
print '<tr><td colspan=2>'.$langs->trans("None").'</td></tr>';
}
print "</table>"; print "</table>";
print "<br>"; print "<br>";
$db->free($result); $db->free($result);
} }
else {
dolibarr_print_error($db);
}
}
/*
* Fiche en mode edition
*/
if ($_GET["action"] == 'edit' && $user->admin)
{
print '<form action="fiche.php?id='.$group->id.'" method="post" name="updategroup" enctype="multipart/form-data">';
print '<input type="hidden" name="action" value="update">';
print '<table class="border" width="100%">';
print '<tr><td width="25%" valign="top">'.$langs->trans("Name").'</td>';
print '<td width="75%" class="valeur"><input size="12" maxlength="8" type="text" name="group" value="'.$group->nom.'"></td>';
print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("Note").'</td>';
print '<td class="valeur"><textarea name="note" rows="12" cols="40">'.nl2br($group->note).'</textarea></td>';
print "</tr>\n";
print '<tr><td align="center" colspan="2"><input value="'.$langs->trans("Save").'" type="submit"></td></tr>';
print "</table>\n";
print "<br>\n";
print '</form>';
print '</div>';
}
} }
} }

View File

@ -37,7 +37,10 @@ class UserGroup
var $db; var $db;
var $id; var $id;
var $label; var $nom;
var $note;
var $datec;
var $datem;
/** /**
@ -64,7 +67,7 @@ class UserGroup
{ {
$this->id = $id; $this->id = $id;
$sql = "SELECT g.rowid, g.nom, g.note"; $sql = "SELECT g.rowid, g.nom, g.note, g.datec, tms as datem";
$sql .= " FROM ".MAIN_DB_PREFIX."usergroup as g"; $sql .= " FROM ".MAIN_DB_PREFIX."usergroup as g";
$sql .= " WHERE g.rowid = ".$this->id; $sql .= " WHERE g.rowid = ".$this->id;
@ -79,7 +82,8 @@ class UserGroup
$this->id = $obj->rowid; $this->id = $obj->rowid;
$this->nom = $obj->nom; $this->nom = $obj->nom;
$this->note = $obj->note; $this->note = $obj->note;
$this->datec = $obj->datec;
$this->datem = $obj->datem;
} }
$this->db->free($result); $this->db->free($result);
@ -344,6 +348,7 @@ class UserGroup
function update() function update()
{ {
$sql = "UPDATE ".MAIN_DB_PREFIX."usergroup SET "; $sql = "UPDATE ".MAIN_DB_PREFIX."usergroup SET ";
$sql .= " nom = '$this->nom',";
$sql .= " note = '$this->note'"; $sql .= " note = '$this->note'";
$sql .= " WHERE rowid = ".$this->id; $sql .= " WHERE rowid = ".$this->id;