From 3a2fcaae6cddd38d3ded4c2b0dbeb4abead9d9bb Mon Sep 17 00:00:00 2001 From: steve Date: Mon, 21 Feb 2022 10:12:28 +0100 Subject: [PATCH 01/10] wip: SendMail dolGetButtonAction --- htdocs/user/card.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index be91f302b97..63ced51d852 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1827,10 +1827,20 @@ if ($action == 'create' || $action == 'adduserldap') { if (empty($user->socid)) { if (!empty($object->email)) { $langs->load("mails"); - print '
'.$langs->trans('SendMail').'
'; + // TODO Replace div with dolGetButtonAction + print dolGetButtonAction($langs->trans('SendMail'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle', ''); + //print '
'.$langs->trans('SendMail').'
'; } else { $langs->load("mails"); - print '
'.$langs->trans('SendMail').'
'; + // TODO Replace div with dolGetButtonAction + //$params = array( + // 'attr' => array( + // 'title' => $langs->trans('ImpersonateButtonDescription'), + // 'class' => 'classfortooltip' + // ) + //); + print dolGetButtonAction($langs->trans('SendMail'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle', '', $permissiontoadd, $params); + //print '
'.$langs->trans('SendMail').'
'; } } From 0e3ec0502866ed5f242baf228e2800ab99bceb13 Mon Sep 17 00:00:00 2001 From: steve Date: Mon, 21 Feb 2022 11:12:06 +0100 Subject: [PATCH 02/10] wip: dolGetButtonAction Nomail --- htdocs/user/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 63ced51d852..3f16f690127 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1839,7 +1839,7 @@ if ($action == 'create' || $action == 'adduserldap') { // 'class' => 'classfortooltip' // ) //); - print dolGetButtonAction($langs->trans('SendMail'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle', '', $permissiontoadd, $params); + print dolGetButtonAction($langs->trans('SendMail'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle', ''); //print ''; } } From c78ec56c8f6e035886f85d98b0764c91da04807d Mon Sep 17 00:00:00 2001 From: steve Date: Mon, 21 Feb 2022 14:43:00 +0100 Subject: [PATCH 03/10] feat: dolGetButtonAction for sendmail --- htdocs/user/card.php | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 3f16f690127..dbc93bd0a2c 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1825,23 +1825,21 @@ if ($action == 'create' || $action == 'adduserldap') { $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook if (empty($reshook)) { if (empty($user->socid)) { + $canSendMail = false; + $params = array( + 'attr' => array( + 'title' => $langs->trans('SendMail'), + 'class' => 'classfortooltip' + ) + ); if (!empty($object->email)) { $langs->load("mails"); - // TODO Replace div with dolGetButtonAction - print dolGetButtonAction($langs->trans('SendMail'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle', ''); - //print ''; + $canSendMail = true; } else { $langs->load("mails"); - // TODO Replace div with dolGetButtonAction - //$params = array( - // 'attr' => array( - // 'title' => $langs->trans('ImpersonateButtonDescription'), - // 'class' => 'classfortooltip' - // ) - //); - print dolGetButtonAction($langs->trans('SendMail'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle', ''); - //print ''; + $params['attr']['title'] = $langs->trans('NoEMail'); } + print dolGetButtonAction($langs->trans('SendMail'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle', '', $canSendMail, $params); } if ($caneditfield && (empty($conf->multicompany->enabled) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { From fefd4a407bd798fd9de60d264191c4b089b46c37 Mon Sep 17 00:00:00 2001 From: steve Date: Tue, 22 Feb 2022 09:43:09 +0100 Subject: [PATCH 04/10] feat: dolGetButtonAction for Enable and disable user --- htdocs/user/card.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index dbc93bd0a2c..a55b04bf0d0 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1877,15 +1877,23 @@ if ($action == 'create' || $action == 'adduserldap') { // Enable user if ($user->id <> $id && $candisableuser && $object->statut == 0 && ((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { - print ''; + //print ''; + print dolGetButtonAction($langs->trans('Reactivate'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=enable&token='.newToken().$langs->trans("Reactivate"), ''); } // Disable user if ($user->id <> $id && $candisableuser && $object->statut == 1 && ((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { - print ''; + //print ''; + print dolGetButtonAction($langs->trans('DisableUser'), '', 'default', $_SERVER['PHP_SELF'] . '?action=disable&id=' . $object->id . '&token='.newToken().$langs->trans("DisableUser"), ''); } else { if ($user->id == $id) { - print ''; + $params = array( + 'attr' => array( + 'title' => $langs->trans('CantDisableYourself'), + 'class' => 'classfortooltip' + ) + ); + print dolGetButtonAction($langs->trans('DisableUser'), '', 'default', $_SERVER['PHP_SELF'].'#', '', false, $params); } } // Delete From ad4a3c63daa55fad91a18d44430f4714e1baaad6 Mon Sep 17 00:00:00 2001 From: steve Date: Tue, 22 Feb 2022 12:19:24 +0100 Subject: [PATCH 05/10] feat: dolGetButtonAction for Delete --- htdocs/user/card.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index a55b04bf0d0..dcaceaff43c 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1900,9 +1900,15 @@ if ($action == 'create' || $action == 'adduserldap') { if ($user->id <> $id && $candisableuser && ((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { if ($user->admin || !$object->admin) { // If user edited is admin, delete is possible on for an admin - print ''; + print dolGetButtonAction($langs->trans('DeleteUser'), '', 'default', $_SERVER['PHP_SELF'].'?action=delete&token='.newToken().'&id='.$object->id, ''); } else { - print ''; + $params = array( + 'attr' => array( + 'title' => $langs->trans('MustBeAdminToDeleteOtherAdmin'), + 'class' => 'classfortooltip' + ) + ); + print dolGetButtonAction($langs->trans('DeleteUser'), '', 'default', $_SERVER['PHP_SELF'].'?action=delete&token='.newToken().'&id='.$object->id, '', false); } } } From 679665fb080b5bc7b22f7549484a6696aef9ed27 Mon Sep 17 00:00:00 2001 From: steve Date: Tue, 22 Feb 2022 15:39:02 +0100 Subject: [PATCH 06/10] feat: dolGetButtonAction for Modify --- htdocs/user/card.php | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index dcaceaff43c..2b44d8f1fcf 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1844,13 +1844,31 @@ if ($action == 'create' || $action == 'adduserldap') { if ($caneditfield && (empty($conf->multicompany->enabled) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { if (!empty($conf->global->MAIN_ONLY_LOGIN_ALLOWED)) { - print ''; - } else { - print ''; - } + $params = array( + 'attr' => array( + 'title' => $langs->trans('DisabledInMonoUserMode'), + 'class' => 'classfortooltip' + ) + ); + print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER['PHP_SELF'].'#', '', false, $params); + } else { + $params = array( + 'attr' => array( + 'title' => '', + 'class' => 'classfortooltip' + ) + ); + print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=edit', '', true, $params); + } } elseif ($caneditpassword && !$object->ldap_sid && (empty($conf->multicompany->enabled) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { - print ''; + $params = array( + 'attr' => array( + 'title' => '', + 'class' => 'classfortooltip' + ) + ); + print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=edit', '', true, $params); } // Si on a un gestionnaire de generation de mot de passe actif From 3fb0d307b17c97c002ad094855edd7f03c706c93 Mon Sep 17 00:00:00 2001 From: Steve Date: Tue, 22 Feb 2022 17:23:34 +0100 Subject: [PATCH 07/10] wip: clean comments --- htdocs/user/card.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 2b44d8f1fcf..3b3d4324323 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1895,13 +1895,11 @@ if ($action == 'create' || $action == 'adduserldap') { // Enable user if ($user->id <> $id && $candisableuser && $object->statut == 0 && ((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { - //print ''; print dolGetButtonAction($langs->trans('Reactivate'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=enable&token='.newToken().$langs->trans("Reactivate"), ''); } // Disable user if ($user->id <> $id && $candisableuser && $object->statut == 1 && ((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { - //print ''; print dolGetButtonAction($langs->trans('DisableUser'), '', 'default', $_SERVER['PHP_SELF'] . '?action=disable&id=' . $object->id . '&token='.newToken().$langs->trans("DisableUser"), ''); } else { if ($user->id == $id) { From 26e23219e6b2b2c378ac4e82f24d30327348719f Mon Sep 17 00:00:00 2001 From: Steve Date: Wed, 23 Feb 2022 10:34:54 +0100 Subject: [PATCH 08/10] feat: dolGetButtonAction --- htdocs/user/card.php | 66 ++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 3b3d4324323..f4ac28b7262 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1843,21 +1843,16 @@ if ($action == 'create' || $action == 'adduserldap') { } if ($caneditfield && (empty($conf->multicompany->enabled) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { + $params = array( + 'attr' => array( + 'title' => '', + 'class' => 'classfortooltip' + ) + ); if (!empty($conf->global->MAIN_ONLY_LOGIN_ALLOWED)) { - $params = array( - 'attr' => array( - 'title' => $langs->trans('DisabledInMonoUserMode'), - 'class' => 'classfortooltip' - ) - ); + $params['attr']['title'] = $langs->trans('DisabledInMonoUserMode'); print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER['PHP_SELF'].'#', '', false, $params); } else { - $params = array( - 'attr' => array( - 'title' => '', - 'class' => 'classfortooltip' - ) - ); print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=edit', '', true, $params); } } elseif ($caneditpassword && !$object->ldap_sid && @@ -1872,43 +1867,53 @@ if ($action == 'create' || $action == 'adduserldap') { } // Si on a un gestionnaire de generation de mot de passe actif + $params = array( + 'attr' => array( + 'title' => '', + 'class' => 'classfortooltip' + ) + ); if ($conf->global->USER_PASSWORD_GENERATED != 'none') { if ($object->statut == 0) { - print ''; + $params['attr']['title'] = $langs->trans('UserDisabled'); + print dolGetButtonAction($langs->trans('ReinitPassword'), '', 'default', $_SERVER['PHP_SELF'].'#', '', false, $params); } elseif (($user->id != $id && $caneditpassword) && $object->login && !$object->ldap_sid && ((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { - print ''; + print dolGetButtonAction($langs->trans('ReinitPassword'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=password', '', true, $params); } if ($object->statut == 0) { - print ''; + $params['attr']['title'] = $langs->trans('UserDisabled'); + print dolGetButtonAction($langs->trans('SendNewPassword'), '', 'default', $_SERVER['PHP_SELF'].'#', '', false, $params); } elseif (($user->id != $id && $caneditpassword) && $object->login && !$object->ldap_sid && ((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { if ($object->email) { - print ''; + print dolGetButtonAction($langs->trans('SendNewPassword'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=passwordsend', '', true, $params); } else { - print ''; + $params['attr']['title'] = $langs->trans('NoEMail'); + print dolGetButtonAction($langs->trans('SendNewPassword'), '', 'default', $_SERVER['PHP_SELF'].'#', '', false, $params); } } } // Enable user + $params = array( + 'attr' => array( + 'title' => '', + 'class' => 'classfortooltip' + ) + ); if ($user->id <> $id && $candisableuser && $object->statut == 0 && ((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { - print dolGetButtonAction($langs->trans('Reactivate'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=enable&token='.newToken().$langs->trans("Reactivate"), ''); + print dolGetButtonAction($langs->trans('Reactivate'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=enable&token='.newToken().$langs->trans("Reactivate"), '', true, $params); } // Disable user if ($user->id <> $id && $candisableuser && $object->statut == 1 && ((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { - print dolGetButtonAction($langs->trans('DisableUser'), '', 'default', $_SERVER['PHP_SELF'] . '?action=disable&id=' . $object->id . '&token='.newToken().$langs->trans("DisableUser"), ''); + print dolGetButtonAction($langs->trans('DisableUser'), '', 'default', $_SERVER['PHP_SELF'] . '?action=disable&id=' . $object->id . '&token='.newToken().$langs->trans("DisableUser"), '', true, $params); } else { if ($user->id == $id) { - $params = array( - 'attr' => array( - 'title' => $langs->trans('CantDisableYourself'), - 'class' => 'classfortooltip' - ) - ); + $params['attr']['title'] = $langs->trans('CantDisableYourself'); print dolGetButtonAction($langs->trans('DisableUser'), '', 'default', $_SERVER['PHP_SELF'].'#', '', false, $params); } } @@ -1916,15 +1921,10 @@ if ($action == 'create' || $action == 'adduserldap') { if ($user->id <> $id && $candisableuser && ((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { if ($user->admin || !$object->admin) { // If user edited is admin, delete is possible on for an admin - print dolGetButtonAction($langs->trans('DeleteUser'), '', 'default', $_SERVER['PHP_SELF'].'?action=delete&token='.newToken().'&id='.$object->id, ''); + print dolGetButtonAction($langs->trans('DeleteUser'), '', 'default', $_SERVER['PHP_SELF'].'?action=delete&token='.newToken().'&id='.$object->id, '', true, $params); } else { - $params = array( - 'attr' => array( - 'title' => $langs->trans('MustBeAdminToDeleteOtherAdmin'), - 'class' => 'classfortooltip' - ) - ); - print dolGetButtonAction($langs->trans('DeleteUser'), '', 'default', $_SERVER['PHP_SELF'].'?action=delete&token='.newToken().'&id='.$object->id, '', false); + $params['attr']['title'] = $langs->trans('MustBeAdminToDeleteOtherAdmin'); + print dolGetButtonAction($langs->trans('DeleteUser'), '', 'default', $_SERVER['PHP_SELF'].'?action=delete&token='.newToken().'&id='.$object->id, '', false, $params); } } } From c26b1e58a29d6b89800fc093b29d298d71731c08 Mon Sep 17 00:00:00 2001 From: Steve Date: Wed, 23 Feb 2022 11:09:59 +0100 Subject: [PATCH 09/10] wip: pull request feedback --- htdocs/user/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index f4ac28b7262..b247fbb0ad5 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1853,7 +1853,7 @@ if ($action == 'create' || $action == 'adduserldap') { $params['attr']['title'] = $langs->trans('DisabledInMonoUserMode'); print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER['PHP_SELF'].'#', '', false, $params); } else { - print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=edit', '', true, $params); + print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=edit&token='.newToken(), '', true, $params); } } elseif ($caneditpassword && !$object->ldap_sid && (empty($conf->multicompany->enabled) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { From 9a95fc7a007a696f5d2f9968a5e1fe1cafed5b19 Mon Sep 17 00:00:00 2001 From: Steve Date: Wed, 23 Feb 2022 11:13:31 +0100 Subject: [PATCH 10/10] wip: pull request feedback --- htdocs/user/card.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index b247fbb0ad5..253431d0098 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1852,9 +1852,9 @@ if ($action == 'create' || $action == 'adduserldap') { if (!empty($conf->global->MAIN_ONLY_LOGIN_ALLOWED)) { $params['attr']['title'] = $langs->trans('DisabledInMonoUserMode'); print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER['PHP_SELF'].'#', '', false, $params); - } else { + } else { print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=edit&token='.newToken(), '', true, $params); - } + } } elseif ($caneditpassword && !$object->ldap_sid && (empty($conf->multicompany->enabled) || !$user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1))) { $params = array(