From c667f8734a61621acc18095b98c3cec4561e8ee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sun, 18 Jan 2015 16:42:11 +0100 Subject: [PATCH] [ task #1793 ] Create new permission to restrict commercial agent margin to logged user --- ChangeLog | 1 + htdocs/core/modules/modMargin.class.php | 9 +++++++++ htdocs/langs/en_US/admin.lang | 1 + htdocs/langs/en_US/margins.lang | 1 + htdocs/margin/agentMargins.php | 18 +++++++++++++----- htdocs/margin/lib/margins.lib.php | 12 +++++++++--- 6 files changed, 34 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6691ddb2007..67bb5d91ba2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,7 @@ For users: MARGIN_PMP_AS_DEFAULT_BUY_PRICE to replace with first supplier price. - Introduce option MAIN_HTML_TITLE to start to control format of html title content. - Add extrafields on bank account cards. +- [ task #1793 ] Create new permission to restrict commercial agent margin to logged user For translators: - Update language files. diff --git a/htdocs/core/modules/modMargin.class.php b/htdocs/core/modules/modMargin.class.php index 19100576a83..a9bfb987ca1 100644 --- a/htdocs/core/modules/modMargin.class.php +++ b/htdocs/core/modules/modMargin.class.php @@ -1,5 +1,6 @@ + * Copyright (C) 2015 Marcos García * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -129,6 +130,14 @@ class modMargin extends DolibarrModules $this->rights[$r][2] = 'w'; // type de la permission (deprecie a ce jour) $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut $this->rights[$r][4] = 'creer'; + + $r++; + $this->rights[$r][0] = 59003; // id de la permission + $this->rights[$r][1] = 'Read every user margin'; // libelle de la permission + $this->rights[$r][2] = 'r'; // type de la permission (deprecie a ce jour) + $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut + $this->rights[$r][4] = 'read'; + $this->rights[$r][5] = 'all'; } /** diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 0b328e705a7..391c6eeaef6 100755 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -761,6 +761,7 @@ Permission55001=Read polls Permission55002=Create/modify polls Permission59001=Read commercial margins Permission59002=Define commercial margins +Permission59003=Read every user margin DictionaryCompanyType=Thirdparties type DictionaryCompanyJuridicalType=Juridical kinds of thirdparties DictionaryProspectLevel=Prospect potential level diff --git a/htdocs/langs/en_US/margins.lang b/htdocs/langs/en_US/margins.lang index 0cf9bc34410..bc7446f51f9 100644 --- a/htdocs/langs/en_US/margins.lang +++ b/htdocs/langs/en_US/margins.lang @@ -16,6 +16,7 @@ MarginDetails=Margin details ProductMargins=Product margins CustomerMargins=Customer margins SalesRepresentativeMargins=Sales representative margins +UserMargins=User margins ProductService=Product or Service AllProducts=All products and services ChooseProduct/Service=Choose product or service diff --git a/htdocs/margin/agentMargins.php b/htdocs/margin/agentMargins.php index 8a0aefba711..32525114ee3 100644 --- a/htdocs/margin/agentMargins.php +++ b/htdocs/margin/agentMargins.php @@ -1,6 +1,7 @@ * Copyright (C) 2014 Ferran Marcet + * Copyright (C) 2015 Marcos García * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -34,7 +35,12 @@ $langs->load("products"); $langs->load("margins"); // Security check -$agentid = GETPOST('agentid','int'); + +if ($user->rights->margin->read->all) { + $agentid = GETPOST('agentid', 'int'); +} else { + $agentid = $user->id; +} $mesg = ''; @@ -85,10 +91,12 @@ dol_fiche_head($head, 'agentMargins', $titre, 0, $picto); print '
'; print ''; -print ''; -print ''; +if ($user->rights->margin->read->all) { + print ''; + print ''; +} // Start date print ''; diff --git a/htdocs/margin/lib/margins.lib.php b/htdocs/margin/lib/margins.lib.php index d3ffd9c1bf4..39f9acc5ae4 100644 --- a/htdocs/margin/lib/margins.lib.php +++ b/htdocs/margin/lib/margins.lib.php @@ -1,5 +1,6 @@ + * Copyright (C) 2015 Marcos García * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -56,7 +57,7 @@ function marges_admin_prepare_head() */ function marges_prepare_head() { - global $langs, $conf; + global $langs, $conf, $user; $langs->load("marges@marges"); $h = 0; @@ -72,10 +73,15 @@ function marges_prepare_head() $head[$h][2] = 'customerMargins'; $h++; + if ($user->rights->margin->read->all) { + $title = 'UserMargins'; + } else { + $title = 'SalesRepresentativeMargins'; + } + $head[$h][0] = DOL_URL_ROOT."/margin/agentMargins.php"; - $head[$h][1] = $langs->trans("SalesRepresentativeMargins"); + $head[$h][1] = $langs->trans($title); $head[$h][2] = 'agentMargins'; - $h++; return $head; }
'.$langs->trans('SalesRepresentative').''; -print $form->select_dolusers($agentid,'agentid',1); -print '
'.$langs->trans('SalesRepresentative').''; + print $form->select_dolusers($agentid, 'agentid', 1); + print '
'.$langs->trans('StartDate').' ('.$langs->trans("DateValidation").')