diff --git a/htdocs/user/fiche.php b/htdocs/user/fiche.php index 2c7ec81ac27..2471c5df406 100644 --- a/htdocs/user/fiche.php +++ b/htdocs/user/fiche.php @@ -38,6 +38,8 @@ require_once(DOL_DOCUMENT_ROOT."/contact.class.php"); $canreadperms=($user->admin || $user->rights->user->user->lire); $caneditperms=($user->admin || $user->rights->user->user->creer); $candisableperms=($user->admin || $user->rights->user->user->supprimer); +$caneditselfperms=($user->rights->user->self->supprimer); +$caneditpassword=($user->rights->user->self->password); if ($user->id <> $_GET["id"]) { @@ -177,7 +179,7 @@ if ($_GET["action"] == 'removegroup' && $caneditperms) } } -if ($_POST["action"] == 'update' && $caneditperms) +if ($_POST["action"] == 'update' && ($caneditperms || $caneditselfperms)) { $message=""; @@ -249,7 +251,7 @@ if ($_POST["action"] == 'update' && $caneditperms) // Action modif mot de passe if ((($_POST["action"] == 'confirm_password' && $_POST["confirm"] == 'yes') - || $_GET["action"] == 'confirm_passwordsend') && $caneditperms) + || $_GET["action"] == 'confirm_passwordsend') && ($caneditperms || $caneditpassword) { $edituser = new User($db, $_GET["id"]); $edituser->fetch(); @@ -581,7 +583,7 @@ else */ print '
'; - if ($caneditperms || ($user->id == $fuser->id)) + if ($caneditperms || (($user->id == $fuser->id) && $caneditselfperms)) { print ''.$langs->trans("Edit").''; }