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$
*/ */
@ -43,89 +44,110 @@ $action=isset($_GET["action"])?$_GET["action"]:$_POST["action"];
*/ */
if ($_GET["subaction"] == 'addrights' && $user->admin) if ($_GET["subaction"] == 'addrights' && $user->admin)
{ {
$edituser = new User($db,$_GET["id"]); $edituser = new User($db,$_GET["id"]);
$edituser->addrights($_GET["rights"]); $edituser->addrights($_GET["rights"]);
} }
if ($_GET["subaction"] == 'delrights' && $user->admin) if ($_GET["subaction"] == 'delrights' && $user->admin)
{ {
$edituser = new User($db,$_GET["id"]); $edituser = new User($db,$_GET["id"]);
$edituser->delrights($_GET["rights"]); $edituser->delrights($_GET["rights"]);
} }
if ($_POST["action"] == 'confirm_disable' && $_POST["confirm"] == "yes") if ($_POST["action"] == 'confirm_disable' && $_POST["confirm"] == "yes")
{ {
if ($_GET["id"] <> $user->id) if ($_GET["id"] <> $user->id)
{ {
$edituser = new User($db, $_GET["id"]); $edituser = new User($db, $_GET["id"]);
$edituser->fetch($_GET["id"]); $edituser->fetch($_GET["id"]);
$edituser->disable(); $edituser->disable();
Header("Location: index.php"); Header("Location: index.php");
} }
} }
if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == "yes") if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == "yes")
{ {
if ($_GET["id"] <> $user->id) if ($_GET["id"] <> $user->id)
{ {
$edituser = new User($db, $_GET["id"]); $edituser = new User($db, $_GET["id"]);
$edituser->fetch($_GET["id"]); $edituser->fetch($_GET["id"]);
$edituser->delete(); $edituser->delete();
Header("Location: index.php"); Header("Location: index.php");
} }
} }
/** /**
* Action ajout user * Action ajout user
*/ */
if ($_POST["action"] == 'add' && $user->admin) if ($_POST["action"] == 'add' && $user->admin)
{ {
$message=""; $message="";
if (! $_POST["nom"]) { if (! $_POST["nom"]) {
$message='<div class="error">'.$langs->trans("NameNotDefined").'</div>'; $message='<div class="error">'.$langs->trans("NameNotDefined").'</div>';
$action="create"; // Go back to create page $action="create"; // Go back to create page
} }
if (! $_POST["login"]) { if (! $_POST["login"]) {
$message='<div class="error">'.$langs->trans("LoginNotDefined").'</div>'; $message='<div class="error">'.$langs->trans("LoginNotDefined").'</div>';
$action="create"; // Go back to create page
}
if (! $message) {
$edituser = new User($db,0);
$edituser->nom = trim($_POST["nom"]);
$edituser->note = trim($_POST["note"]);
$edituser->prenom = trim($_POST["prenom"]);
$edituser->login = trim($_POST["login"]);
$edituser->email = trim($_POST["email"]);
$edituser->admin = trim($_POST["admin"]);
$edituser->webcal_login = trim($_POST["webcal_login"]);
$db->begin();
$id = $edituser->create();
if ($id > 0)
{
if (isset($_POST['password']) && trim($_POST['password']))
{
$edituser->password($user,trim($_POST['password']),$conf->password_encrypted);
}
$db->commit();
Header("Location: fiche.php?id=$id");
}
else
{
$db->rollback();
$message='<div class="error">'.$langs->trans("ErrorLoginAlreadyExists",$edituser->login).'</div>';
$action="create"; // Go back to create page $action="create"; // Go back to create page
} }
} if (! $message) {
$edituser = new User($db,0);
$edituser->nom = trim($_POST["nom"]);
$edituser->note = trim($_POST["note"]);
$edituser->prenom = trim($_POST["prenom"]);
$edituser->login = trim($_POST["login"]);
$edituser->email = trim($_POST["email"]);
$edituser->admin = trim($_POST["admin"]);
$edituser->webcal_login = trim($_POST["webcal_login"]);
$db->begin();
$id = $edituser->create();
if ($id > 0)
{
if (isset($_POST['password']) && trim($_POST['password']))
{
$edituser->password($user,trim($_POST['password']),$conf->password_encrypted);
}
$db->commit();
Header("Location: fiche.php?id=$id");
}
else
{
$db->rollback();
$message='<div class="error">'.$langs->trans("ErrorLoginAlreadyExists",$edituser->login).'</div>';
$action="create"; // Go back to create page
}
}
}
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)
@ -133,7 +155,7 @@ if ($_POST["action"] == 'update' && $user->admin)
$message=""; $message="";
$db->begin(); $db->begin();
$edituser = new User($db, $_GET["id"]); $edituser = new User($db, $_GET["id"]);
$edituser->fetch(); $edituser->fetch();
@ -168,7 +190,7 @@ if ($_POST["action"] == 'update' && $user->admin)
$newfile=$conf->users->dir_output . "/" . $edituser->id . ".jpg"; $newfile=$conf->users->dir_output . "/" . $edituser->id . ".jpg";
if (! doliMoveFileUpload($_FILES['photo']['tmp_name'],$newfile)) if (! doliMoveFileUpload($_FILES['photo']['tmp_name'],$newfile))
{ {
$message .= '<div class="error">'.$langs->trans("ErrorFailedToSaveFile").'</div>'; $message .= '<div class="error">'.$langs->trans("ErrorFailedToSaveFile").'</div>';
} }
} }
} }
@ -184,310 +206,422 @@ if ($_POST["action"] == 'update' && $user->admin)
if ($_GET["action"] == 'password' && $user->admin) if ($_GET["action"] == 'password' && $user->admin)
{ {
$edituser = new User($db, $_GET["id"]); $edituser = new User($db, $_GET["id"]);
$edituser->fetch(); $edituser->fetch();
if ($edituser->password($user,'',$conf->password_encrypted)) if ($edituser->password($user,'',$conf->password_encrypted))
{ {
$message = '<div class="ok">'.$langs->trans("PasswordChangedAndSentTo",$edituser->email).'</div>'; $message = '<div class="ok">'.$langs->trans("PasswordChangedAndSentTo",$edituser->email).'</div>';
} }
} }
llxHeader('','Fiche Utilisateur'); llxHeader('',$langs->trans("UserCard"));
if ($action == 'create') if ($action == 'create')
{ {
/* ************************************************************************** */ /* ************************************************************************** */
/* */ /* */
/* Affichage fiche en mode création */ /* Affichage fiche en mode création */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
print_titre($langs->trans("NewUser")); print_titre($langs->trans("NewUser"));
print "<br>"; print "<br>";
if ($message) { print $message."<br>"; } if ($message) { print $message."<br>"; }
print '<form action="fiche.php" method="post" name="createuser">'; print '<form action="fiche.php" method="post" name="createuser">';
print '<input type="hidden" name="action" value="add">'; print '<input type="hidden" name="action" value="add">';
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
print "<tr>".'<td valign="top">'.$langs->trans("Lastname").'</td>'; print "<tr>".'<td valign="top">'.$langs->trans("Lastname").'</td>';
print '<td class="valeur"><input size="30" type="text" name="nom" value=""></td></tr>'; print '<td class="valeur"><input size="30" type="text" name="nom" value=""></td></tr>';
print '<tr><td valign="top" width="20%">'.$langs->trans("Firstname").'</td>'; print '<tr><td valign="top" width="20%">'.$langs->trans("Firstname").'</td>';
print '<td class="valeur"><input size="30" type="text" name="prenom" value=""></td></tr>'; print '<td class="valeur"><input size="30" type="text" name="prenom" value=""></td></tr>';
print '<tr><td valign="top">'.$langs->trans("Login").'</td>'; print '<tr><td valign="top">'.$langs->trans("Login").'</td>';
print '<td class="valeur"><input size="20" type="text" name="login" value=""></td></tr>'; print '<td class="valeur"><input size="20" type="text" name="login" value=""></td></tr>';
print '<tr><td valign="top">'.$langs->trans("Password").'</td>'; print '<tr><td valign="top">'.$langs->trans("Password").'</td>';
print '<td class="valeur"><input size="30" type="text" name="password" value=""></td></tr>'; print '<td class="valeur"><input size="30" type="text" name="password" value=""></td></tr>';
print '<tr><td valign="top">'.$langs->trans("EMail").'</td>'; print '<tr><td valign="top">'.$langs->trans("EMail").'</td>';
print '<td class="valeur"><input size="40" type="text" name="email" value=""></td></tr>'; print '<td class="valeur"><input size="40" type="text" name="email" value=""></td></tr>';
print '<tr><td valign="top">'.$langs->trans("Administrator").'</td>'; print '<tr><td valign="top">'.$langs->trans("Administrator").'</td>';
print '<td class="valeur">'; print '<td class="valeur">';
$form->selectyesnonum('admin',0); $form->selectyesnonum('admin',0);
print "</td></tr>\n"; print "</td></tr>\n";
print '<tr><td valign="top">'.$langs->trans("Note").'</td><td>'; print '<tr><td valign="top">'.$langs->trans("Note").'</td><td>';
print "<textarea name=\"note\" rows=\"12\" cols=\"40\">"; print "<textarea name=\"note\" rows=\"12\" cols=\"40\">";
print "</textarea></td></tr>\n"; print "</textarea></td></tr>\n";
// Autres caractéristiques issus des autres modules // Autres caractéristiques issus des autres modules
if ($conf->webcal->enabled) if ($conf->webcal->enabled)
{ {
print "<tr>".'<td valign="top">'.$langs->trans("LoginWebcal").'</td>'; print "<tr>".'<td valign="top">'.$langs->trans("LoginWebcal").'</td>';
print '<td class="valeur"><input size="30" type="text" name="webcal_login" value=""></td></tr>'; print '<td class="valeur"><input size="30" type="text" name="webcal_login" value=""></td></tr>';
} }
print "<tr>".'<td align="center" colspan="2"><input value="'.$langs->trans("CreateUser").'" type="submit"></td></tr>'; print "<tr>".'<td align="center" colspan="2"><input value="'.$langs->trans("CreateUser").'" type="submit"></td></tr>';
print "</form>"; print "</form>";
print "</table>\n"; print "</table>\n";
} }
else else
{ {
/* ************************************************************************** */ /* ************************************************************************** */
/* */ /* */
/* Visu et edition */ /* Visu et edition */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
if ($_GET["id"]) if ($_GET["id"])
{ {
$fuser = new User($db, $_GET["id"]); $fuser = new User($db, $_GET["id"]);
$fuser->fetch(); $fuser->fetch();
$fuser->getrights(); $fuser->getrights();
/* /*
* Affichage onglets * Affichage onglets
*/ */
$h = 0; $h = 0;
$head[$h][0] = DOL_URL_ROOT.'/user/fiche.php?id='.$fuser->id; $head[$h][0] = DOL_URL_ROOT.'/user/fiche.php?id='.$fuser->id;
$head[$h][1] = $langs->trans("UserCard"); $head[$h][1] = $langs->trans("UserCard");
$hselected=$h; $hselected=$h;
$h++; $h++;
$head[$h][0] = DOL_URL_ROOT.'/user/perms.php?id='.$fuser->id; $head[$h][0] = DOL_URL_ROOT.'/user/perms.php?id='.$fuser->id;
$head[$h][1] = $langs->trans("UserRights"); $head[$h][1] = $langs->trans("UserRights");
$h++; $h++;
if ($conf->bookmark4u->enabled) if ($conf->bookmark4u->enabled)
{ {
$head[$h][0] = DOL_URL_ROOT.'/user/addon.php?id='.$fuser->id; $head[$h][0] = DOL_URL_ROOT.'/user/addon.php?id='.$fuser->id;
$head[$h][1] = $langs->trans("Bookmark4u"); $head[$h][1] = $langs->trans("Bookmark4u");
$h++; $h++;
}
dolibarr_fiche_head($head, $hselected, $langs->trans("User").": ".$fuser->fullname);
/*
* Confirmation désactivation
*/
if ($action == 'disable')
{
$html = new Form($db);
$html->form_confirm("fiche.php?id=$fuser->id",$langs->trans("DisableAUser"),$langs->trans("ConfirmDisableUser",$fuser->login),"confirm_disable");
} }
/* dolibarr_fiche_head($head, $hselected, $langs->trans("User").": ".$fuser->fullname);
* Confirmation suppression
*/
if ($action == 'delete') /*
* Confirmation désactivation
*/
if ($action == 'disable')
{ {
$html = new Form($db); $html = new Form($db);
$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("DisableAUser"),$langs->trans("ConfirmDisableUser",$fuser->login),"confirm_disable");
} }
if ($_GET["action"] != 'edit') /*
{ * Confirmation suppression
/* */
* Fiche en mode visu if ($action == 'delete')
*/ {
$html = new Form($db);
print '<table class="border" width="100%">'; $html->form_confirm("fiche.php?id=$fuser->id",$langs->trans("DeleteAUser"),$langs->trans("ConfirmDeleteUser",$fuser->login),"confirm_delete");
}
print '<tr><td width="25%" valign="top">'.$langs->trans("Lastname").'</td>';
print '<td width="50%" class="valeur">'.$fuser->nom.'</td>';
print '<td align="center" valign="middle" width="25%" rowspan="8">';
if (file_exists($conf->users->dir_output."/".$fuser->id.".jpg"))
{
print '<img width="100" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=userphoto&file='.$fuser->id.'.jpg">';
}
else
{
print '<img src="'.DOL_URL_ROOT.'/theme/nophoto.jpg">';
}
print '</td></tr>';
print '<tr><td width="25%" valign="top">'.$langs->trans("Firstname").'</td>';
print '<td width="50%" class="valeur">'.$fuser->prenom.'</td>';
print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("Login").'</td>';
print '<td width="50%" class="valeur">'.$fuser->login.'</td></tr>';
print '<tr><td width="25%" valign="top">'.$langs->trans("EMail").'</td>'; /*
print '<td width="50%" class="valeur"><a href="mailto:'.$fuser->email.'">'.$fuser->email.'</a></td>'; * Fiche en mode visu
print "</tr>\n"; */
if ($_GET["action"] != 'edit')
print '<tr><td width="25%" valign="top">'.$langs->trans("Administrator").'</td>'; {
print '<td class="valeur">'.yn($fuser->admin).'</td>'; print '<table class="border" width="100%">';
print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("DateCreation").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Lastname").'</td>';
print '<td class="valeur">'.dolibarr_print_date($fuser->datec).'</td>'; print '<td width="50%" class="valeur">'.$fuser->nom.'</td>';
print "</tr>\n"; print '<td align="center" valign="middle" width="25%" rowspan="8">';
if (file_exists($conf->users->dir_output."/".$fuser->id.".jpg"))
print '<tr><td width="25%" valign="top">'.$langs->trans("DateModification").'</td>';
print '<td class="valeur">'.dolibarr_print_date($fuser->datem).'</td>';
print "</tr>\n";
print "<tr>".'<td width="25%" valign="top">'.$langs->trans("ContactCard").'</td>';
print '<td>';
if ($fuser->contact_id)
{ {
print '<a href="../contact/fiche.php?id='.$fuser->contact_id.'">'.$langs->trans("ContactCard").'</a>'; print '<img width="100" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=userphoto&file='.$fuser->id.'.jpg">';
} }
else else
{ {
print $langs->trans("NoContactCard"); print '<img src="'.DOL_URL_ROOT.'/theme/nophoto.jpg">';
} }
print '</td>'; print '</td></tr>';
print "</tr>\n";
if ($fuser->societe_id > 0)
{
$societe = new Societe($db);
$societe->fetch($fuser->societe_id);
print "<tr>".'<td width="25%" valign="top">'.$langs->trans("Company").'</td>';
print '<td colspan="2">'.$societe->nom.'&nbsp;</td>';
print "</tr>\n";
}
print "<tr>".'<td width="25%" valign="top">'.$langs->trans("Note").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Firstname").'</td>';
print '<td colspan="2" class="valeur">'.nl2br($fuser->note).'&nbsp;</td>'; print '<td width="50%" class="valeur">'.$fuser->prenom.'</td>';
print "</tr>\n"; print "</tr>\n";
// Autres caractéristiques issus des autres modules print '<tr><td width="25%" valign="top">'.$langs->trans("Login").'</td>';
if ($conf->webcal->enabled) print '<td width="50%" class="valeur">'.$fuser->login.'</td></tr>';
print '<tr><td width="25%" valign="top">'.$langs->trans("EMail").'</td>';
print '<td width="50%" class="valeur"><a href="mailto:'.$fuser->email.'">'.$fuser->email.'</a></td>';
print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("Administrator").'</td>';
print '<td class="valeur">'.yn($fuser->admin).'</td>';
print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("DateCreation").'</td>';
print '<td class="valeur">'.dolibarr_print_date($fuser->datec).'</td>';
print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("DateModification").'</td>';
print '<td class="valeur">'.dolibarr_print_date($fuser->datem).'</td>';
print "</tr>\n";
print "<tr>".'<td width="25%" valign="top">'.$langs->trans("ContactCard").'</td>';
print '<td>';
if ($fuser->contact_id)
{ {
$langs->load("other"); print '<a href="../contact/fiche.php?id='.$fuser->contact_id.'">'.$langs->trans("ContactCard").'</a>';
print '<tr><td width="25%" valign="top">'.$langs->trans("LoginWebcal").'</td>'; }
print '<td colspan="2">'.$fuser->webcal_login.'&nbsp;</td>'; else
print "</tr>\n"; {
print $langs->trans("NoContactCard");
}
print '</td>';
print "</tr>\n";
if ($fuser->societe_id > 0)
{
$societe = new Societe($db);
$societe->fetch($fuser->societe_id);
print "<tr>".'<td width="25%" valign="top">'.$langs->trans("Company").'</td>';
print '<td colspan="2">'.$societe->nom.'&nbsp;</td>';
print "</tr>\n";
} }
print "</table>\n"; print "<tr>".'<td width="25%" valign="top">'.$langs->trans("Note").'</td>';
print "<br>\n"; print '<td colspan="2" class="valeur">'.nl2br($fuser->note).'&nbsp;</td>';
print "</tr>\n";
print "</div>\n";
if ($message) { print $message; } // Autres caractéristiques issus des autres modules
if ($conf->webcal->enabled)
/*
* Barre d'actions
*
*/
print '<div class="tabsAction">';
if ($user->admin)
{ {
print '<a class="tabAction" href="fiche.php?id='.$fuser->id.'&amp;action=edit">'.$langs->trans("Edit").'</a>'; $langs->load("other");
print '<tr><td width="25%" valign="top">'.$langs->trans("LoginWebcal").'</td>';
print '<td colspan="2">'.$fuser->webcal_login.'&nbsp;</td>';
print "</tr>\n";
} }
if ($user->id == $_GET["id"] or $user->admin) print "</table>\n";
print "<br>\n";
print "</div>\n";
if ($message) { print $message; }
/*
* Barre d'actions
*/
print '<div class="tabsAction">';
if ($user->admin)
{ {
print '<a class="tabAction" href="fiche.php?id='.$fuser->id.'&amp;action=password">'.$langs->trans("SendNewPassword").'</a>'; print '<a class="tabAction" href="fiche.php?id='.$fuser->id.'&amp;action=edit">'.$langs->trans("Edit").'</a>';
} }
if ($user->id <> $_GET["id"] && $user->admin) if ($user->id == $_GET["id"] or $user->admin)
{ {
print '<a class="butDelete" href="fiche.php?action=disable&amp;id='.$fuser->id.'">'.$langs->trans("DisableUser").'</a>'; print '<a class="tabAction" href="fiche.php?id='.$fuser->id.'&amp;action=password">'.$langs->trans("SendNewPassword").'</a>';
} }
if ($user->id <> $_GET["id"] && $user->admin) if ($user->id <> $_GET["id"] && $user->admin)
{ {
print '<a class="butDelete" href="fiche.php?action=delete&amp;id='.$fuser->id.'">'.$langs->trans("DeleteUser").'</a>'; print '<a class="butDelete" href="fiche.php?action=disable&amp;id='.$fuser->id.'">'.$langs->trans("DisableUser").'</a>';
} }
print "</div>\n"; if ($user->id <> $_GET["id"] && $user->admin)
print "<br>\n"; {
print '<a class="butDelete" href="fiche.php?action=delete&amp;id='.$fuser->id.'">'.$langs->trans("DeleteUser").'</a>';
} }
/* print "</div>\n";
* Fiche en mode edition print "<br>\n";
*/
if ($_GET["action"] == 'edit' && $user->admin)
/*
* 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);
}
}
/*
* Fiche en mode edition
*/
if ($_GET["action"] == 'edit' && $user->admin)
{ {
print '<form action="fiche.php?id='.$fuser->id.'" method="post" name="updateuser" enctype="multipart/form-data">'; print '<form action="fiche.php?id='.$fuser->id.'" method="post" name="updateuser" enctype="multipart/form-data">';
print '<input type="hidden" name="action" value="update">'; print '<input type="hidden" name="action" value="update">';
print '<table width="100%" class="border">'; print '<table width="100%" class="border">';
print '<tr><td width="25%" valign="top">'.$langs->trans("Lastname").'</td>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Lastname").'</td>';
print '<td width="50%" class="valeur"><input size="30" type="text" name="nom" value="'.$fuser->nom.'"></td>'; print '<td width="50%" class="valeur"><input size="30" type="text" name="nom" value="'.$fuser->nom.'"></td>';
print '<td align="center" valign="middle" width="25%" rowspan="6">'; print '<td align="center" valign="middle" width="25%" rowspan="6">';
if (file_exists($conf->users->dir_output."/".$fuser->id.".jpg")) if (file_exists($conf->users->dir_output."/".$fuser->id.".jpg"))
{ {
print '<img width="100" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=userphoto&file='.$fuser->id.'.jpg">'; print '<img width="100" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=userphoto&file='.$fuser->id.'.jpg">';
} }
else else
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/nophoto.jpg">'; print '<img src="'.DOL_URL_ROOT.'/theme/nophoto.jpg">';
} }
print '<br><br><table class="noborder"><tr><td>'.$langs->trans("PhotoFile").'</td></tr><tr><td><input type="file" name="photo" class="flat"></td></tr></table>'; print '<br><br><table class="noborder"><tr><td>'.$langs->trans("PhotoFile").'</td></tr><tr><td><input type="file" name="photo" class="flat"></td></tr></table>';
print '</td></tr>'; print '</td></tr>';
print "<tr>".'<td valign="top">'.$langs->trans("Firstname").'</td>';
print '<td><input size="30" type="text" name="prenom" value="'.$fuser->prenom.'"></td></tr>';
print "<tr>".'<td valign="top">'.$langs->trans("Login").'</td>'; print "<tr>".'<td valign="top">'.$langs->trans("Firstname").'</td>';
print '<td><input size="12" maxlength="8" type="text" name="login" value="'.$fuser->login.'"></td></tr>'; print '<td><input size="30" type="text" name="prenom" value="'.$fuser->prenom.'"></td></tr>';
print "<tr>".'<td valign="top">'.$langs->trans("EMail").'</td>'; print "<tr>".'<td valign="top">'.$langs->trans("Login").'</td>';
print '<td><input size="30" type="text" name="email" value="'.$fuser->email.'"></td></tr>'; print '<td><input size="12" maxlength="8" type="text" name="login" value="'.$fuser->login.'"></td></tr>';
print "<tr>".'<td valign="top">'.$langs->trans("Administrator").'</td>'; print "<tr>".'<td valign="top">'.$langs->trans("EMail").'</td>';
if ($fuser->societe_id > 0) print '<td><input size="30" type="text" name="email" value="'.$fuser->email.'"></td></tr>';
{
print '<td class="valeur">';
print '<input type="hidden" name="admin" value="0">'.$langs->trans("No");
print '</td></tr>';
}
else
{
print '<td class="valeur">';
$form->selectyesnonum('admin',$fuser->admin);
print '</td></tr>';
}
print "<tr>".'<td valign="top">'.$langs->trans("Note").'</td><td>'; print "<tr>".'<td valign="top">'.$langs->trans("Administrator").'</td>';
print '<textarea name="note" rows="10" cols="40">'; if ($fuser->societe_id > 0)
print $fuser->note; {
print "</textarea></td></tr>"; print '<td class="valeur">';
print '<input type="hidden" name="admin" value="0">'.$langs->trans("No");
print '</td></tr>';
}
else
{
print '<td class="valeur">';
$form->selectyesnonum('admin',$fuser->admin);
print '</td></tr>';
}
// Autres caractéristiques issus des autres modules print "<tr>".'<td valign="top">'.$langs->trans("Note").'</td><td>';
$langs->load("other"); print '<textarea name="note" rows="10" cols="40">';
print "<tr>".'<td valign="top">'.$langs->trans("LoginWebcal").'</td>'; print $fuser->note;
print '<td class="valeur" colspan="2"><input size="30" type="text" name="webcal_login" value="'.$fuser->webcal_login.'"></td></tr>'; print "</textarea></td></tr>";
print '<tr><td align="center" colspan="3"><input value="'.$langs->trans("Save").'" type="submit"></td></tr>'; // Autres caractéristiques issus des autres modules
$langs->load("other");
print "<tr>".'<td valign="top">'.$langs->trans("LoginWebcal").'</td>';
print '<td class="valeur" colspan="2"><input size="30" type="text" name="webcal_login" value="'.$fuser->webcal_login.'"></td></tr>';
print '</table><br>'; print '<tr><td align="center" colspan="3"><input value="'.$langs->trans("Save").'" type="submit"></td></tr>';
print '</form>';
print '</table><br>';
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"));
/* ************************************************************************** */ /* ************************************************************************** */
@ -145,7 +170,7 @@ if ($action == 'create')
/* ************************************************************************** */ /* ************************************************************************** */
else else
{ {
if ($_GET["id"]) if ($_GET["id"] )
{ {
$group = new UserGroup($db); $group = new UserGroup($db);
$group->fetch($_GET["id"]); $group->fetch($_GET["id"]);
@ -182,141 +207,182 @@ else
* Fiche en mode visu * Fiche en mode visu
*/ */
print '<table class="border" width="100%">'; if ($_GET["action"] != 'edit') {
print '<tr><td width="25%" valign="top">'.$langs->trans("Name").'</td>';
print '<td width="75%" class="valeur">'.$group->nom.'</td>';
print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("Note").'</td>';
print '<td class="valeur">'.nl2br($group->note).'&nbsp;</td>';
print "</tr>\n";
print "</table>\n";
print "<br>\n";
print '<table class="border" width="100%">';
print '</div>'; print '<tr><td width="25%" valign="top">'.$langs->trans("Name").'</td>';
print '<td width="75%" class="valeur">'.$group->nom.'</td>';
if ($message) { print $message; } print "</tr>\n";
print '<tr><td width="25%" valign="top">'.$langs->trans("Note").'</td>';
/* print '<td class="valeur">'.nl2br($group->note).'&nbsp;</td>';
* Barre d'actions print "</tr>\n";
* print "</table>\n";
*/ print "<br>\n";
print '<div class="tabsAction">';
print '</div>';
if ($user->admin)
{ if ($message) { print $message; }
print '<a class="tabAction" href="fiche.php?id='.$group->id.'&amp;action=edit">'.$langs->trans("Edit").'</a>';
} /*
* Barre d'actions
if ($user->id <> $_GET["id"] && $user->admin) *
{ */
print '<a class="butDelete" href="fiche.php?action=delete&amp;id='.$group->id.'">'.$langs->trans("DeleteGroup").'</a>'; print '<div class="tabsAction">';
}
if ($user->admin)
print "</div>\n";
print "<br>\n";
print_titre($langs->trans("ListOfUsersInGroup"));
print "<br>\n";
// On sélectionne les users qui ne sont pas déjà dans le groupe
$uss = array();
$sql = "SELECT u.rowid, u.name, u.firstname, u.code ";
$sql .= " FROM ".MAIN_DB_PREFIX."user as u ";
# $sql .= " LEFT JOIN llx_usergroup_user ug ON u.rowid = ug.fk_user";
# $sql .= " WHERE ug.fk_usergroup IS NULL";
$sql .= " ORDER BY u.name";
$result = $db->query($sql);
if ($result)
{
$num = $db->num_rows();
$i = 0;
while ($i < $num)
{ {
$obj = $db->fetch_object(); print '<a class="tabAction" href="fiche.php?id='.$group->id.'&amp;action=edit">'.$langs->trans("Edit").'</a>';
$uss[$obj->rowid] = ucfirst(stripslashes($obj->firstname)) . " ".ucfirst(stripslashes($obj->name));
$i++;
} }
}
else { if ($user->id <> $_GET["id"] && $user->admin)
dolibarr_print_error($db);
}
if ($user->admin)
{
$form = new Form($db);
print '<form action="fiche.php?id='.$group->id.'" method="post">'."\n";
print '<input type="hidden" name="action" value="adduser">';
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("Users").'</td>'."\n";
print '<td>';
print $form->select_array("user",$uss);
print ' &nbsp; ';
print '<input type="submit" class=button value="'.$langs->trans("Add").'">';
print '</td></tr>'."\n";
print '</table></form>'."\n";
}
/*
* Membres du groupe
*/
$sql = "SELECT u.rowid, u.login, u.name, u.firstname, u.code ";
$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;
print '<br>';
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td width="25%">'.$langs->trans("Login").'</td>';
print '<td width="25%">'.$langs->trans("Lastname").'</td>';
print '<td width="25%">'.$langs->trans("Firstname").'</td>';
print '<td>'.$langs->trans("Code").'</td>';
print "<td>&nbsp;</td></tr>\n";
$var=True;
while ($i < $num)
{ {
$obj = $db->fetch_object($result); print '<a class="butDelete" href="fiche.php?action=delete&amp;id='.$group->id.'">'.$langs->trans("DeleteGroup").'</a>';
$var=!$var; }
print "<tr $bc[$var]>"; print "</div>\n";
print '<td>'; print "<br>\n";
print '<a href="'.DOL_URL_ROOT.'/user/fiche.php?id='.$obj->rowid.'">'.img_object($langs->trans("ShowUser"),"user").' '.$obj->login.'</a>';
print '</td>';
print '<td>'.ucfirst(stripslashes($obj->name)).'</td>'; /*
print '<td>'.ucfirst(stripslashes($obj->firstname)).'</td>'; * Liste des utilisateurs dans le groupe
print '<td>'.$obj->code.'</td><td>'; */
if ($user->admin) print_titre($langs->trans("ListOfUsersInGroup"));
print "<br>\n";
// On sélectionne les users qui ne sont pas déjà dans le groupe
$uss = array();
$sql = "SELECT u.rowid, u.login, u.name, u.firstname, u.code ";
$sql .= " FROM ".MAIN_DB_PREFIX."user as u ";
# $sql .= " LEFT JOIN llx_usergroup_user ug ON u.rowid = ug.fk_user";
# $sql .= " WHERE ug.fk_usergroup IS NULL";
$sql .= " ORDER BY u.name";
$result = $db->query($sql);
if ($result)
{
$num = $db->num_rows();
$i = 0;
while ($i < $num)
{ {
$obj = $db->fetch_object();
print '<a href="fiche.php?id='.$group->id.'&amp;action=removeuser&amp;user='.$obj->rowid.'">';
print img_delete($langs->trans("RemoveFromGroup")); $uss[$obj->rowid] = ucfirst(stripslashes($obj->name)).' '.ucfirst(stripslashes($obj->firstname).' ('.$obj->login.')');
$i++;
}
}
else {
dolibarr_print_error($db);
}
if ($user->admin)
{
$form = new Form($db);
print '<form action="fiche.php?id='.$group->id.'" method="post">'."\n";
print '<input type="hidden" name="action" value="adduser">';
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("UsersToAdd").'</td>'."\n";
print '<td>';
print $form->select_array("user",$uss);
print ' &nbsp; ';
print '<input type="submit" class=button value="'.$langs->trans("Add").'">';
print '</td></tr>'."\n";
print '</table></form>'."\n";
}
/*
* Membres du groupe
*/
$sql = "SELECT u.rowid, u.login, u.name, u.firstname, u.code ";
$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;
print '<br>';
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td width="25%">'.$langs->trans("Login").'</td>';
print '<td width="25%">'.$langs->trans("Lastname").'</td>';
print '<td width="25%">'.$langs->trans("Firstname").'</td>';
print '<td>'.$langs->trans("Code").'</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/fiche.php?id='.$obj->rowid.'">'.img_object($langs->trans("ShowUser"),"user").' '.$obj->login.'</a>';
print '</td>';
print '<td>'.ucfirst(stripslashes($obj->name)).'</td>';
print '<td>'.ucfirst(stripslashes($obj->firstname)).'</td>';
print '<td>'.$obj->code.'</td><td>';
if ($user->admin)
{
print '<a href="fiche.php?id='.$group->id.'&amp;action=removeuser&amp;user='.$obj->rowid.'">';
print img_delete($langs->trans("RemoveFromGroup"));
}
else
{
print "-";
}
print "</td></tr>\n";
$i++;
}
} }
else else
{ {
print "-"; print '<tr><td colspan=2>'.$langs->trans("None").'</td></tr>';
} }
print "</td></tr>\n"; print "</table>";
$i++; print "<br>";
$db->free($result);
} }
print "</table>"; else {
print "<br>"; dolibarr_print_error($db);
$db->free($result); }
}
/*
* 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;