From 71a6cf120747d3d7f4b0f3496e3a0e8ff66bbf24 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Aug 2020 14:38:03 +0200 Subject: [PATCH] Fix permission on type of email templates must depends on user perms. Conflicts: htdocs/admin/mails_templates.php --- htdocs/admin/mails_templates.php | 43 +++++++++++++++++--------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/htdocs/admin/mails_templates.php b/htdocs/admin/mails_templates.php index 320d2e1d8a1..a26e0801238 100644 --- a/htdocs/admin/mails_templates.php +++ b/htdocs/admin/mails_templates.php @@ -155,20 +155,20 @@ $sourceList = array(); // We save list of template email Dolibarr can manage. This list can found by a grep into code on "->param['models']" $elementList = array(); -if ($conf->propal->enabled) $elementList['propal_send'] = $langs->trans('MailToSendProposal'); -if ($conf->commande->enabled) $elementList['order_send'] = $langs->trans('MailToSendOrder'); -if ($conf->facture->enabled) $elementList['facture_send'] = $langs->trans('MailToSendInvoice'); +if ($conf->propal->enabled && $user->rights->propal->lire) $elementList['propal_send'] = $langs->trans('MailToSendProposal'); +if ($conf->commande->enabled && $user->rights->commande->lire) $elementList['order_send'] = $langs->trans('MailToSendOrder'); +if ($conf->facture->enabled && $user->rights->facture->lire) $elementList['facture_send'] = $langs->trans('MailToSendInvoice'); if ($conf->expedition->enabled) $elementList['shipping_send'] = $langs->trans('MailToSendShipment'); if ($conf->reception->enabled) $elementList['reception_send'] = $langs->trans('MailToSendReception'); if ($conf->ficheinter->enabled) $elementList['fichinter_send'] = $langs->trans('MailToSendIntervention'); if ($conf->supplier_proposal->enabled) $elementList['supplier_proposal_send'] = $langs->trans('MailToSendSupplierRequestForQuotation'); -if ($conf->fournisseur->enabled && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || $conf->supplier_order->enabled) $elementList['order_supplier_send'] = $langs->trans('MailToSendSupplierOrder'); -if ($conf->fournisseur->enabled && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || $conf->supplier_invoice->enabled) $elementList['invoice_supplier_send'] = $langs->trans('MailToSendSupplierInvoice'); -if ($conf->societe->enabled) $elementList['thirdparty'] = $langs->trans('MailToThirdparty'); -if ($conf->adherent->enabled) $elementList['member'] = $langs->trans('MailToMember'); -if ($conf->contrat->enabled) $elementList['contract'] = $langs->trans('MailToSendContract'); +if (($conf->fournisseur->enabled && $user->rights->fournisseur->commande->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || ($conf->supplier_order->enabled && $user->rights->supplier_order->lire)) $elementList['order_supplier_send'] = $langs->trans('MailToSendSupplierOrder'); +if (($conf->fournisseur->enabled && $user->rights->fournisseur->facture->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || ($conf->supplier_invoice->enabled && $user->rights->supplier_invoice->lire)) $elementList['invoice_supplier_send'] = $langs->trans('MailToSendSupplierInvoice'); +if ($conf->societe->enabled && $user->rights->societe->lire) $elementList['thirdparty'] = $langs->trans('MailToThirdparty'); +if ($conf->adherent->enabled && $user->rights->adherent->lire) $elementList['member'] = $langs->trans('MailToMember'); +if ($conf->contrat->enabled && $user->rights->contrat->lire) $elementList['contract'] = $langs->trans('MailToSendContract'); if ($conf->projet->enabled) $elementList['project'] = $langs->trans('MailToProject'); -if ($conf->ticket->enabled) $elementList['ticket_send'] = $langs->trans('MailToTicket'); +if ($conf->ticket->enabled && $user->rights->ticket->read) $elementList['ticket_send'] = $langs->trans('MailToTicket'); $elementList['user'] = $langs->trans('MailToUser'); $parameters = array('elementList'=>$elementList); @@ -558,6 +558,7 @@ if (!empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) { $fieldsforco foreach ($fieldsforcontent as $tmpfieldlist) { print ''; + // Label if ($tmpfieldlist == 'topic') { @@ -571,6 +572,7 @@ foreach ($fieldsforcontent as $tmpfieldlist) print $form->textwithpicto($langs->trans("Content"), $tabhelp[$id][$tmpfieldlist], 1, 'help', '', 0, 2, $tmpfieldlist).'
'; if ($tmpfieldlist == 'content_lines') print $form->textwithpicto($langs->trans("ContentForLines"), $tabhelp[$id][$tmpfieldlist], 1, 'help', '', 0, 2, $tmpfieldlist).'
'; + // Input field if ($tmpfieldlist == 'topic') { print ''; @@ -652,33 +654,34 @@ if ($resql) // Title line with search boxes print ''; + $filterfound = 0; foreach ($fieldlist as $field => $value) { - if ($value == 'label') print ''; - elseif ($value == 'lang') - { + if ($value == 'label') { + print ''; + } elseif ($value == 'lang') { print ''; print $formadmin->select_language($search_lang, 'search_lang', 0, null, 1, 0, 0, 'maxwidth100'); print ''; - } - elseif ($value == 'fk_user') - { + } elseif ($value == 'fk_user') { print ''; $restrictid = array(); if (!$user->admin) $restrictid = array($user->id); //var_dump($restrictid); print $form->select_dolusers($search_fk_user, 'search_fk_user', 1, null, 0, 'hierarchyme', null, 0, 0, 1, '', 0, '', 'maxwidth100'); print ''; - } - elseif ($value == 'topic') print ''; - elseif ($value == 'type_template') - { + } elseif ($value == 'topic') { + print ''; + } elseif ($value == 'type_template') { print ''.$form->selectarray('search_type_template', $elementList, $search_type_template, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth100 maxwidth100onsmartphone').''; + } elseif (!in_array($value, array('content', 'content_lines'))) { + print ''; } - elseif (!in_array($value, array('content', 'content_lines'))) print ''; } + if (empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) print ''; + // Action column print ''; $searchpicto = $form->showFilterButtons();