From 08fa2dfadd3725e917d18da16e850396956946e2 Mon Sep 17 00:00:00 2001 From: steve Date: Mon, 28 Feb 2022 15:58:23 +0100 Subject: [PATCH 01/11] wip: add read employee and write employee --- htdocs/core/modules/modHRM.class.php | 16 ++++++++++++++++ htdocs/langs/en_US/admin.lang | 2 ++ 2 files changed, 18 insertions(+) diff --git a/htdocs/core/modules/modHRM.class.php b/htdocs/core/modules/modHRM.class.php index 3e75f8efcd5..32bdc267276 100644 --- a/htdocs/core/modules/modHRM.class.php +++ b/htdocs/core/modules/modHRM.class.php @@ -249,6 +249,22 @@ class modHRM extends DolibarrModules $this->rights[$r][4] = 'compare_advance'; $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->compare_advance->read) $r++; + + // Read employee + $this->rights[$r][0] = 4031; // Permission id (must not be already used) + $this->rights[$r][1] = 'Read employee'; // Permission label + $this->rights[$r][3] = 0; // Permission by default for new user (0/1) + $this->rights[$r][4] = 'read_employee'; + $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->compare_advance->read) + $r++; + + // Write employee + $this->rights[$r][0] = 4032; // Permission id (must not be already used) + $this->rights[$r][1] = 'Write employee'; // Permission label + $this->rights[$r][3] = 0; // Permission by default for new user (0/1) + $this->rights[$r][4] = 'write_employee'; + $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->hrm->compare_advance->read) + $r++; } /** diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 426e1186868..61f40fdb1c1 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -969,6 +969,8 @@ Permission4021=Create/modify your evaluation Permission4022=Validate evaluation Permission4023=Delete evaluation Permission4030=See comparison menu +Permission4031=Read employee +Permission4032=Write employee Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. From 91ee90ebeba24a8fcb04ef0535efbc95ceca3aa0 Mon Sep 17 00:00:00 2001 From: steve Date: Mon, 28 Feb 2022 16:48:08 +0100 Subject: [PATCH 02/11] fix: read employee and write employee --- htdocs/core/lib/usergroups.lib.php | 2 +- htdocs/core/modules/modHRM.class.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php index 2792b6d9997..8e764c14ea4 100644 --- a/htdocs/core/lib/usergroups.lib.php +++ b/htdocs/core/lib/usergroups.lib.php @@ -141,7 +141,7 @@ function user_prepare_head($object) // $this->tabs = array('entity:-tabname); to remove a tab complete_head_from_modules($conf, $langs, $object, $head, $h, 'user'); - if ((!empty($conf->salaries->enabled) && !empty($user->rights->salaries->read)) + if ((!empty($conf->salaries->enabled) && !empty($user->rights->salaries->read) && !empty($user->rights->hrm->read_employee->read)) || (!empty($conf->hrm->enabled) && !empty($user->rights->hrm->employee->read)) || (!empty($conf->expensereport->enabled) && !empty($user->rights->expensereport->lire) && ($user->id == $object->id || $user->rights->expensereport->readall)) || (!empty($conf->holiday->enabled) && !empty($user->rights->holiday->read) && ($user->id == $object->id || $user->rights->holiday->readall)) diff --git a/htdocs/core/modules/modHRM.class.php b/htdocs/core/modules/modHRM.class.php index 32bdc267276..35deea09a07 100644 --- a/htdocs/core/modules/modHRM.class.php +++ b/htdocs/core/modules/modHRM.class.php @@ -255,7 +255,7 @@ class modHRM extends DolibarrModules $this->rights[$r][1] = 'Read employee'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'read_employee'; - $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->compare_advance->read) + $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->read_employee->read) $r++; // Write employee @@ -263,7 +263,7 @@ class modHRM extends DolibarrModules $this->rights[$r][1] = 'Write employee'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'write_employee'; - $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->hrm->compare_advance->read) + $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->hrm->write_employee->write) $r++; } From 1908acb1311150e1fcdb7d3a91dc23f0b21e9a61 Mon Sep 17 00:00:00 2001 From: steve Date: Tue, 1 Mar 2022 11:42:10 +0100 Subject: [PATCH 03/11] feat: add Accountancy code --- htdocs/user/bank.php | 6 ++++++ htdocs/user/card.php | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/htdocs/user/bank.php b/htdocs/user/bank.php index fa4c7231de5..47cc3826e51 100644 --- a/htdocs/user/bank.php +++ b/htdocs/user/bank.php @@ -502,6 +502,12 @@ if ($action != 'edit' && $action != 'create') { // If not bank account yet, $ac print ''; } + // Accountancy code + if (!empty($conf->accounting->enabled)) { + print ''.$langs->trans("AccountancyCode").''; + print ''.$object->accountancy_code.''; + } + print ''; print '
'; diff --git a/htdocs/user/card.php b/htdocs/user/card.php index de1ca3a5d92..f50a4622cd4 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1577,10 +1577,10 @@ if ($action == 'create' || $action == 'adduserldap') { } // Accountancy code - if (!empty($conf->accounting->enabled)) { - print ''.$langs->trans("AccountancyCode").''; - print ''.$object->accountancy_code.''; - } + //if (!empty($conf->accounting->enabled)) { + // print ''.$langs->trans("AccountancyCode").''; + // print ''.$object->accountancy_code.''; + //} print ''; From cb17f2029ed1bddd2d6b310bd307725fb251242f Mon Sep 17 00:00:00 2001 From: Steve Date: Wed, 2 Mar 2022 11:20:07 +0100 Subject: [PATCH 04/11] wip: add ref_employee and national_registration_number fields --- .../install/mysql/migration/15.0.0-16.0.0.sql | 5 ++++- htdocs/install/mysql/tables/llx_user.sql | 2 ++ htdocs/user/bank.php | 13 ++++++++++++ htdocs/user/card.php | 21 +++++++++++++++++++ htdocs/user/class/user.class.php | 21 +++++++++++++++++++ 5 files changed, 61 insertions(+), 1 deletion(-) diff --git a/htdocs/install/mysql/migration/15.0.0-16.0.0.sql b/htdocs/install/mysql/migration/15.0.0-16.0.0.sql index 5d838fc8bb1..fd32936fb04 100644 --- a/htdocs/install/mysql/migration/15.0.0-16.0.0.sql +++ b/htdocs/install/mysql/migration/15.0.0-16.0.0.sql @@ -272,4 +272,7 @@ ALTER TABLE llx_reception MODIFY COLUMN ref_supplier varchar(128); ALTER TABLE llx_bank_account ADD COLUMN pti_in_ctti smallint DEFAULT 0 AFTER domiciliation; -- Set default ticket type to OTHER if no default exists -UPDATE llx_c_ticket_type SET use_default=1 WHERE code='OTHER' AND NOT EXISTS(SELECT * FROM (SELECT * FROM llx_c_ticket_type) AS t WHERE use_default=1); \ No newline at end of file +UPDATE llx_c_ticket_type SET use_default=1 WHERE code='OTHER' AND NOT EXISTS(SELECT * FROM (SELECT * FROM llx_c_ticket_type) AS t WHERE use_default=1); + +ALTER TABLE llx_user ADD COLUMN ref_employee varchar(50) DEFAULT NULL; +ALTER TABLE llx_user ADD COLUMN national_registration_number varchar(50) DEFAULT NULL; diff --git a/htdocs/install/mysql/tables/llx_user.sql b/htdocs/install/mysql/tables/llx_user.sql index 6cfdf8bfbb8..694ed360b21 100644 --- a/htdocs/install/mysql/tables/llx_user.sql +++ b/htdocs/install/mysql/tables/llx_user.sql @@ -108,5 +108,7 @@ create table llx_user import_key varchar(14), -- import key default_range integer, default_c_exp_tax_cat integer, + employee_number varchar(50), + national_registration_number varchar(50), fk_warehouse integer -- default warehouse os user )ENGINE=innodb; diff --git a/htdocs/user/bank.php b/htdocs/user/bank.php index 47cc3826e51..17d52d7cbb6 100644 --- a/htdocs/user/bank.php +++ b/htdocs/user/bank.php @@ -508,6 +508,19 @@ if ($action != 'edit' && $action != 'create') { // If not bank account yet, $ac print ''.$object->accountancy_code.''; } + // Employee Number + if (!empty($conf->accounting->enabled)) { + print ''.$langs->trans("ref_employee").''; + print ''.$object->ref_employee.''; + } + + // National registration number + if (!empty($conf->accounting->enabled)) { + print ''.$langs->trans("NationalRegistrationNumber").''; + print ''.$object->national_registration_number.''; + } + + print ''; print '
'; diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 00c94feaf44..68b62950811 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -247,6 +247,8 @@ if (empty($reshook)) { $object->civility_code = GETPOST("civility_code", 'aZ09'); $object->lastname = GETPOST("lastname", 'alphanohtml'); $object->firstname = GETPOST("firstname", 'alphanohtml'); + $object->ref_employee = GETPOST("ref_employee", 'alphanohtml'); + $object->national_registration_number = GETPOST("national_registration_number", 'alphanohtml'); $object->login = GETPOST("login", 'alphanohtml'); $object->api_key = GETPOST("api_key", 'alphanohtml'); $object->gender = GETPOST("gender", 'aZ09'); @@ -259,6 +261,7 @@ if (empty($reshook)) { $object->office_phone = GETPOST("office_phone", 'alphanohtml'); $object->office_fax = GETPOST("office_fax", 'alphanohtml'); $object->user_mobile = GETPOST("user_mobile", 'alphanohtml'); + $object->ref_employee = GETPOST("ref_employee", 'alphanohtml'); if (!empty($conf->socialnetworks->enabled)) { $object->socialnetworks = array(); @@ -402,6 +405,7 @@ if (empty($reshook)) { $object->civility_code = GETPOST("civility_code", 'aZ09'); $object->lastname = GETPOST("lastname", 'alphanohtml'); $object->firstname = GETPOST("firstname", 'alphanohtml'); + $object->ref_employee = GETPOST("ref_employee", 'alphanohtml'); $object->gender = GETPOST("gender", 'aZ09'); $object->pass = GETPOST("password", 'none'); // We can keep 'none' for password fields $object->api_key = (GETPOST("api_key", 'alphanohtml')) ? GETPOST("api_key", 'alphanohtml') : $object->api_key; @@ -845,6 +849,12 @@ if ($action == 'create' || $action == 'adduserldap') { } print ''; + // Ref remployee + print ''.$langs->trans("ref_employee").''; + print ''; + print ''; + print ''; + // Login print ''.$langs->trans("Login").''; print ''; @@ -2089,6 +2099,17 @@ if ($action == 'create' || $action == 'adduserldap') { } print ''; + // Ref employee + print "".''.$langs->trans("ref_employee").''; + print ''; + if ($caneditfield && !$object->ldap_sid) { + print ''; + } else { + print ''; + print $object->ref_employee; + } + print ''; + // Login print "".''.$langs->trans("Login").''; print ''; diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 6c5926f8c43..84118961692 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -339,6 +339,17 @@ class User extends CommonObject public $dateemploymentend; // Define date of employment end by company public $default_c_exp_tax_cat; + + /** + * @var string ref for employee + */ + public $ref_employee; + + /** + * @var string national registration number + */ + public $national_registration_number; + public $default_range; /** @@ -350,6 +361,8 @@ class User extends CommonObject 'rowid'=>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'index'=>1, 'position'=>1, 'comment'=>'Id'), 'lastname'=>array('type'=>'varchar(50)', 'label'=>'LastName', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>20, 'searchall'=>1), 'firstname'=>array('type'=>'varchar(50)', 'label'=>'FirstName', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1), + 'ref_employee'=>array('type'=>'varchar(50)', 'label'=>'ref_employee', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>30, 'searchall'=>1), + 'national_registration_number'=>array('type'=>'varchar(50)', 'label'=>'national_registration_number', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>40, 'searchall'=>1) ); @@ -437,6 +450,8 @@ class User extends CommonObject $sql .= " u.fk_warehouse,"; $sql .= " u.ref_ext,"; $sql .= " u.default_range, u.default_c_exp_tax_cat,"; // Expense report default mode + $sql .= " u.national_registration_number,"; + $sql .= " u.ref_employee,"; $sql .= " c.code as country_code, c.label as country,"; $sql .= " d.code_departement as state_code, d.nom as state"; $sql .= " FROM ".$this->db->prefix()."user as u"; @@ -488,6 +503,8 @@ class User extends CommonObject $this->civility_code = $obj->civility_code; $this->lastname = $obj->lastname; $this->firstname = $obj->firstname; + $this->ref_employee = $obj->ref_employee; + $this->national_registration_number = $obj->national_registration_number; $this->employee = $obj->employee; @@ -1755,6 +1772,8 @@ class User extends CommonObject $this->civility_code = trim($this->civility_code); $this->lastname = trim($this->lastname); $this->firstname = trim($this->firstname); + $this->ref_employee = trim($this->ref_employee); + $this->national_registration_number = trim($this->national_registration_number); $this->employee = $this->employee ? $this->employee : 0; $this->login = trim($this->login); $this->gender = trim($this->gender); @@ -1847,6 +1866,8 @@ class User extends CommonObject $sql .= " civility = '".$this->db->escape($this->civility_code)."'"; $sql .= ", lastname = '".$this->db->escape($this->lastname)."'"; $sql .= ", firstname = '".$this->db->escape($this->firstname)."'"; + $sql .= ", ref_employee = '".$this->db->escape($this->ref_employee)."'"; + $sql .= ", national_registration_number = '".$this->db->escape($this->national_registration_number)."'"; $sql .= ", employee = ".(int) $this->employee; $sql .= ", login = '".$this->db->escape($this->login)."'"; $sql .= ", api_key = ".($this->api_key ? "'".$this->db->escape($this->api_key)."'" : "null"); From dcabd046d92b16f286542eaf6f59176e9bebdfa7 Mon Sep 17 00:00:00 2001 From: steve Date: Wed, 2 Mar 2022 11:52:44 +0100 Subject: [PATCH 05/11] feat: add ref_employee and national_registration_number fields --- htdocs/user/card.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 68b62950811..961ace97f53 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -261,7 +261,6 @@ if (empty($reshook)) { $object->office_phone = GETPOST("office_phone", 'alphanohtml'); $object->office_fax = GETPOST("office_fax", 'alphanohtml'); $object->user_mobile = GETPOST("user_mobile", 'alphanohtml'); - $object->ref_employee = GETPOST("ref_employee", 'alphanohtml'); if (!empty($conf->socialnetworks->enabled)) { $object->socialnetworks = array(); @@ -406,6 +405,7 @@ if (empty($reshook)) { $object->lastname = GETPOST("lastname", 'alphanohtml'); $object->firstname = GETPOST("firstname", 'alphanohtml'); $object->ref_employee = GETPOST("ref_employee", 'alphanohtml'); + $object->national_registration_number = GETPOST("national_registration_number", 'alphanohtml'); $object->gender = GETPOST("gender", 'aZ09'); $object->pass = GETPOST("password", 'none'); // We can keep 'none' for password fields $object->api_key = (GETPOST("api_key", 'alphanohtml')) ? GETPOST("api_key", 'alphanohtml') : $object->api_key; @@ -855,6 +855,12 @@ if ($action == 'create' || $action == 'adduserldap') { print ''; print ''; + // National registration number + print ''.$langs->trans("national_registration_number").''; + print ''; + print ''; + print ''; + // Login print ''.$langs->trans("Login").''; print ''; @@ -2110,6 +2116,17 @@ if ($action == 'create' || $action == 'adduserldap') { } print ''; + // National registration number + print "".''.$langs->trans("national_registration_number").''; + print ''; + if ($caneditfield && !$object->ldap_sid) { + print ''; + } else { + print ''; + print $object->national_registration_number; + } + print ''; + // Login print "".''.$langs->trans("Login").''; print ''; From e2f727ef55b794c5a0d9b63593040bbc3bcd5687 Mon Sep 17 00:00:00 2001 From: steve Date: Wed, 2 Mar 2022 14:21:49 +0100 Subject: [PATCH 06/11] feat: langs trans ref_employee and national registration number --- htdocs/langs/en_US/companies.lang | 2 ++ htdocs/user/bank.php | 2 +- htdocs/user/card.php | 8 ++++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index 3e85f1b35f7..edd6f7b7dd8 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -51,6 +51,8 @@ CivilityCode=Civility code RegisteredOffice=Registered office Lastname=Last name Firstname=First name +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Job position UserTitle=Title NatureOfThirdParty=Nature of Third party diff --git a/htdocs/user/bank.php b/htdocs/user/bank.php index 17d52d7cbb6..b84ae16c55f 100644 --- a/htdocs/user/bank.php +++ b/htdocs/user/bank.php @@ -510,7 +510,7 @@ if ($action != 'edit' && $action != 'create') { // If not bank account yet, $ac // Employee Number if (!empty($conf->accounting->enabled)) { - print ''.$langs->trans("ref_employee").''; + print ''.$langs->trans("RefEmployee").''; print ''.$object->ref_employee.''; } diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 961ace97f53..3bbf6438489 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -850,13 +850,13 @@ if ($action == 'create' || $action == 'adduserldap') { print ''; // Ref remployee - print ''.$langs->trans("ref_employee").''; + print ''.$langs->trans("RefEmployee").''; print ''; print ''; print ''; // National registration number - print ''.$langs->trans("national_registration_number").''; + print ''.$langs->trans("NationalRegistrationNumber").''; print ''; print ''; print ''; @@ -2106,7 +2106,7 @@ if ($action == 'create' || $action == 'adduserldap') { print ''; // Ref employee - print "".''.$langs->trans("ref_employee").''; + print "".''.$langs->trans("RefEmployee").''; print ''; if ($caneditfield && !$object->ldap_sid) { print ''; @@ -2117,7 +2117,7 @@ if ($action == 'create' || $action == 'adduserldap') { print ''; // National registration number - print "".''.$langs->trans("national_registration_number").''; + print "".''.$langs->trans("NationalRegistrationNumber").''; print ''; if ($caneditfield && !$object->ldap_sid) { print ''; From 9900e5dd319692905785bbdbbf3406740021490a Mon Sep 17 00:00:00 2001 From: steve Date: Wed, 2 Mar 2022 14:51:16 +0100 Subject: [PATCH 07/11] Clean --- htdocs/user/card.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 3bbf6438489..720387e6c47 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1592,12 +1592,6 @@ if ($action == 'create' || $action == 'adduserldap') { print ''; } - // Accountancy code - //if (!empty($conf->accounting->enabled)) { - // print ''.$langs->trans("AccountancyCode").''; - // print ''.$object->accountancy_code.''; - //} - print ''; print '
'; From 436b8fa5b5d94a9df8da0b17e958c00468f38baf Mon Sep 17 00:00:00 2001 From: steve Date: Thu, 3 Mar 2022 16:18:09 +0100 Subject: [PATCH 08/11] apply feedbacks --- htdocs/core/lib/usergroups.lib.php | 2 +- htdocs/core/modules/modHRM.class.php | 16 ----------- htdocs/langs/en_US/admin.lang | 2 -- htdocs/user/bank.php | 41 ++++++++++++++++++++++------ htdocs/user/card.php | 34 ----------------------- 5 files changed, 33 insertions(+), 62 deletions(-) diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php index 8e764c14ea4..2792b6d9997 100644 --- a/htdocs/core/lib/usergroups.lib.php +++ b/htdocs/core/lib/usergroups.lib.php @@ -141,7 +141,7 @@ function user_prepare_head($object) // $this->tabs = array('entity:-tabname); to remove a tab complete_head_from_modules($conf, $langs, $object, $head, $h, 'user'); - if ((!empty($conf->salaries->enabled) && !empty($user->rights->salaries->read) && !empty($user->rights->hrm->read_employee->read)) + if ((!empty($conf->salaries->enabled) && !empty($user->rights->salaries->read)) || (!empty($conf->hrm->enabled) && !empty($user->rights->hrm->employee->read)) || (!empty($conf->expensereport->enabled) && !empty($user->rights->expensereport->lire) && ($user->id == $object->id || $user->rights->expensereport->readall)) || (!empty($conf->holiday->enabled) && !empty($user->rights->holiday->read) && ($user->id == $object->id || $user->rights->holiday->readall)) diff --git a/htdocs/core/modules/modHRM.class.php b/htdocs/core/modules/modHRM.class.php index 35deea09a07..3e75f8efcd5 100644 --- a/htdocs/core/modules/modHRM.class.php +++ b/htdocs/core/modules/modHRM.class.php @@ -249,22 +249,6 @@ class modHRM extends DolibarrModules $this->rights[$r][4] = 'compare_advance'; $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->compare_advance->read) $r++; - - // Read employee - $this->rights[$r][0] = 4031; // Permission id (must not be already used) - $this->rights[$r][1] = 'Read employee'; // Permission label - $this->rights[$r][3] = 0; // Permission by default for new user (0/1) - $this->rights[$r][4] = 'read_employee'; - $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->read_employee->read) - $r++; - - // Write employee - $this->rights[$r][0] = 4032; // Permission id (must not be already used) - $this->rights[$r][1] = 'Write employee'; // Permission label - $this->rights[$r][3] = 0; // Permission by default for new user (0/1) - $this->rights[$r][4] = 'write_employee'; - $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->hrm->write_employee->write) - $r++; } /** diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 6674f6cb58a..cffd3532c05 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -969,8 +969,6 @@ Permission4021=Create/modify your evaluation Permission4022=Validate evaluation Permission4023=Delete evaluation Permission4030=See comparison menu -Permission4031=Read employee -Permission4032=Write employee Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. diff --git a/htdocs/user/bank.php b/htdocs/user/bank.php index b84ae16c55f..38b6066e9d2 100644 --- a/htdocs/user/bank.php +++ b/htdocs/user/bank.php @@ -230,6 +230,24 @@ if ($action == 'setpersonal_mobile' && $canadduser && !$cancel) { } } +// update ref_employee +if ($action == 'setref_employee' && $canadduser && !$cancel) { + $object->ref_employee = (string) GETPOST('ref_employee', 'alphanohtml'); + $result = $object->update($user); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } +} + +// update national_registration_number +if ($action == 'setnational_registration_number' && $canadduser && !$cancel) { + $object->national_registration_number = (string) GETPOST('national_registration_number', 'alphanohtml'); + $result = $object->update($user); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } +} + if (!empty($conf->global->MAIN_USE_EXPENSE_IK)) { // update default_c_exp_tax_cat if ($action == 'setdefault_c_exp_tax_cat' && $canadduser) { @@ -509,17 +527,22 @@ if ($action != 'edit' && $action != 'create') { // If not bank account yet, $ac } // Employee Number - if (!empty($conf->accounting->enabled)) { - print ''.$langs->trans("RefEmployee").''; - print ''.$object->ref_employee.''; - } + print ''; + print ''; + print $form->editfieldkey("RefEmployee", 'ref_employee', $object->ref_employee, $object, $user->rights->user->user->creer); + print ''; + print $form->editfieldval("RefEmployee", 'ref_employee', $object->ref_employee, $object, $user->rights->user->user->creer, 'string', $object->ref_employee); + print ''; + print ''; // National registration number - if (!empty($conf->accounting->enabled)) { - print ''.$langs->trans("NationalRegistrationNumber").''; - print ''.$object->national_registration_number.''; - } - + print ''; + print ''; + print $form->editfieldkey("NationalRegistrationNumber", 'national_registration_number', $object->national_registration_number, $object, $user->rights->user->user->creer); + print ''; + print $form->editfieldval("NationalRegistrationNumber", 'national_registration_number', $object->national_registration_number, $object, $user->rights->user->user->creer, 'string', $object->national_registration_number); + print ''; + print ''; print ''; diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 720387e6c47..e5381a7271e 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -849,18 +849,6 @@ if ($action == 'create' || $action == 'adduserldap') { } print ''; - // Ref remployee - print ''.$langs->trans("RefEmployee").''; - print ''; - print ''; - print ''; - - // National registration number - print ''.$langs->trans("NationalRegistrationNumber").''; - print ''; - print ''; - print ''; - // Login print ''.$langs->trans("Login").''; print ''; @@ -2099,28 +2087,6 @@ if ($action == 'create' || $action == 'adduserldap') { } print ''; - // Ref employee - print "".''.$langs->trans("RefEmployee").''; - print ''; - if ($caneditfield && !$object->ldap_sid) { - print ''; - } else { - print ''; - print $object->ref_employee; - } - print ''; - - // National registration number - print "".''.$langs->trans("NationalRegistrationNumber").''; - print ''; - if ($caneditfield && !$object->ldap_sid) { - print ''; - } else { - print ''; - print $object->national_registration_number; - } - print ''; - // Login print "".''.$langs->trans("Login").''; print ''; From 1555a95ce881bcc8c278c43426c98d784fa63226 Mon Sep 17 00:00:00 2001 From: steve Date: Mon, 14 Mar 2022 16:50:43 +0100 Subject: [PATCH 09/11] Activate new rights read and write --- htdocs/core/modules/modHRM.class.php | 16 ++++++ htdocs/langs/en_US/admin.lang | 2 + htdocs/user/bank.php | 86 ++++++++++++++++------------ 3 files changed, 66 insertions(+), 38 deletions(-) diff --git a/htdocs/core/modules/modHRM.class.php b/htdocs/core/modules/modHRM.class.php index 3e75f8efcd5..35deea09a07 100644 --- a/htdocs/core/modules/modHRM.class.php +++ b/htdocs/core/modules/modHRM.class.php @@ -249,6 +249,22 @@ class modHRM extends DolibarrModules $this->rights[$r][4] = 'compare_advance'; $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->compare_advance->read) $r++; + + // Read employee + $this->rights[$r][0] = 4031; // Permission id (must not be already used) + $this->rights[$r][1] = 'Read employee'; // Permission label + $this->rights[$r][3] = 0; // Permission by default for new user (0/1) + $this->rights[$r][4] = 'read_employee'; + $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->read_employee->read) + $r++; + + // Write employee + $this->rights[$r][0] = 4032; // Permission id (must not be already used) + $this->rights[$r][1] = 'Write employee'; // Permission label + $this->rights[$r][3] = 0; // Permission by default for new user (0/1) + $this->rights[$r][4] = 'write_employee'; + $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->hrm->write_employee->write) + $r++; } /** diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index cffd3532c05..6674f6cb58a 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -969,6 +969,8 @@ Permission4021=Create/modify your evaluation Permission4022=Validate evaluation Permission4023=Delete evaluation Permission4030=See comparison menu +Permission4031=Read employee +Permission4032=Write employee Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. diff --git a/htdocs/user/bank.php b/htdocs/user/bank.php index 38b6066e9d2..d9bbb16f3aa 100644 --- a/htdocs/user/bank.php +++ b/htdocs/user/bank.php @@ -78,8 +78,8 @@ if (empty($account->userid)) { // Define value to know what current user can do on users -$canadduser = (!empty($user->admin) || $user->rights->user->user->creer); -$canreaduser = (!empty($user->admin) || $user->rights->user->user->lire); +$canadduser = (!empty($user->admin) || $user->rights->user->user->creer || $user->rights->hrm->write_employee->write); +$canreaduser = (!empty($user->admin) || $user->rights->user->user->lire || $user->rights->hrm->read_employee->read); $permissiontoaddbankaccount = (!empty($user->rights->salaries->write) || !empty($user->rights->hrm->employee->write) || !empty($user->rights->user->creer)); // Ok if user->rights->salaries->read or user->rights->hrm->read @@ -281,7 +281,7 @@ llxHeader(null, $langs->trans("BankAccounts")); $head = user_prepare_head($object); -if ($id && $bankid && $action == 'edit' && $user->rights->user->user->creer) { +if ($id && $bankid && $action == 'edit' && ($user->rights->user->user->creer || $user->rights->hrm->write_employee->write)) { print '
'; print ''; print ''; @@ -446,31 +446,37 @@ if ($action != 'edit' && $action != 'create') { // If not bank account yet, $ac print "\n"; // Date of birth - print ''; - print ''; - print $form->editfieldkey("DateOfBirth", 'birth', $object->birth, $object, $user->rights->user->user->creer); - print ''; - print $form->editfieldval("DateOfBirth", 'birth', $object->birth, $object, $user->rights->user->user->creer, 'day', $object->birth); - print ''; - print "\n"; + if ($user->rights->hrm->read_employee->read || $user->rights->hrm->write_employee->write) { + print ''; + print ''; + print $form->editfieldkey("DateOfBirth", 'birth', $object->birth, $object, $user->rights->user->user->creer); + print ''; + print $form->editfieldval("DateOfBirth", 'birth', $object->birth, $object, $user->rights->user->user->creer, 'day', $object->birth); + print ''; + print "\n"; + } // Personal email - print ''; - print ''; - print $form->editfieldkey("UserPersonalEmail", 'personal_email', $object->personal_email, $object, $user->rights->user->user->creer); - print ''; - print $form->editfieldval("UserPersonalEmail", 'personal_email', $object->personal_email, $object, $user->rights->user->user->creer, 'email', '', null, null, '', 0, 'dol_print_email'); - print ''; - print ''; + if ($user->rights->hrm->read_employee->read || $user->rights->hrm->write_employee->write) { + print ''; + print ''; + print $form->editfieldkey("UserPersonalEmail", 'personal_email', $object->personal_email, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write); + print ''; + print $form->editfieldval("UserPersonalEmail", 'personal_email', $object->personal_email, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write, 'email', '', null, null, '', 0, 'dol_print_email'); + print ''; + print ''; + } // Personal phone - print ''; - print ''; - print $form->editfieldkey("UserPersonalMobile", 'personal_mobile', $object->personal_mobile, $object, $user->rights->user->user->creer); - print ''; - print $form->editfieldval("UserPersonalMobile", 'personal_mobile', $object->personal_mobile, $object, $user->rights->user->user->creer, 'string', '', null, null, '', 0, 'dol_print_phone'); - print ''; - print ''; + if ($user->rights->hrm->read_employee->read || $user->rights->hrm->write_employee->write) { + print ''; + print ''; + print $form->editfieldkey("UserPersonalMobile", 'personal_mobile', $object->personal_mobile, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write); + print ''; + print $form->editfieldval("UserPersonalMobile", 'personal_mobile', $object->personal_mobile, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write, 'string', '', null, null, '', 0, 'dol_print_phone'); + print ''; + print ''; + } if (!empty($conf->global->MAIN_USE_EXPENSE_IK)) { print ''; @@ -527,22 +533,26 @@ if ($action != 'edit' && $action != 'create') { // If not bank account yet, $ac } // Employee Number - print ''; - print ''; - print $form->editfieldkey("RefEmployee", 'ref_employee', $object->ref_employee, $object, $user->rights->user->user->creer); - print ''; - print $form->editfieldval("RefEmployee", 'ref_employee', $object->ref_employee, $object, $user->rights->user->user->creer, 'string', $object->ref_employee); - print ''; - print ''; + if ($user->rights->hrm->read_employee->read || $user->rights->hrm->write_employee->write) { + print ''; + print ''; + print $form->editfieldkey("RefEmployee", 'ref_employee', $object->ref_employee, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write); + print ''; + print $form->editfieldval("RefEmployee", 'ref_employee', $object->ref_employee, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write, 'string', $object->ref_employee); + print ''; + print ''; + } // National registration number - print ''; - print ''; - print $form->editfieldkey("NationalRegistrationNumber", 'national_registration_number', $object->national_registration_number, $object, $user->rights->user->user->creer); - print ''; - print $form->editfieldval("NationalRegistrationNumber", 'national_registration_number', $object->national_registration_number, $object, $user->rights->user->user->creer, 'string', $object->national_registration_number); - print ''; - print ''; + if ($user->rights->hrm->read_employee->read || $user->rights->hrm->write_employee->write) { + print ''; + print ''; + print $form->editfieldkey("NationalRegistrationNumber", 'national_registration_number', $object->national_registration_number, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write); + print ''; + print $form->editfieldval("NationalRegistrationNumber", 'national_registration_number', $object->national_registration_number, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write, 'string', $object->national_registration_number); + print ''; + print ''; + } print ''; From 8f39efd2b915d07be5aab11a3a5b66bb3b35ec01 Mon Sep 17 00:00:00 2001 From: steve Date: Wed, 30 Mar 2022 12:10:06 +0200 Subject: [PATCH 10/11] fix: change Read and Write employee label with personal information --- htdocs/core/modules/modHRM.class.php | 12 +++++------ htdocs/langs/en_US/admin.lang | 4 ++-- htdocs/user/bank.php | 32 ++++++++++++++-------------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/htdocs/core/modules/modHRM.class.php b/htdocs/core/modules/modHRM.class.php index 35deea09a07..bffd760bad6 100644 --- a/htdocs/core/modules/modHRM.class.php +++ b/htdocs/core/modules/modHRM.class.php @@ -252,18 +252,18 @@ class modHRM extends DolibarrModules // Read employee $this->rights[$r][0] = 4031; // Permission id (must not be already used) - $this->rights[$r][1] = 'Read employee'; // Permission label + $this->rights[$r][1] = 'Read personal information'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) - $this->rights[$r][4] = 'read_employee'; - $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->read_employee->read) + $this->rights[$r][4] = 'read_personal_information'; + $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->read_personal_information->read) $r++; // Write employee $this->rights[$r][0] = 4032; // Permission id (must not be already used) - $this->rights[$r][1] = 'Write employee'; // Permission label + $this->rights[$r][1] = 'Write personal information'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) - $this->rights[$r][4] = 'write_employee'; - $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->hrm->write_employee->write) + $this->rights[$r][4] = 'write_personal_information'; + $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->hrm->write_personal_information->write) $r++; } diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 6674f6cb58a..70aa9f9cacf 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -969,8 +969,8 @@ Permission4021=Create/modify your evaluation Permission4022=Validate evaluation Permission4023=Delete evaluation Permission4030=See comparison menu -Permission4031=Read employee -Permission4032=Write employee +Permission4031=Read personal information +Permission4032=Write personal information Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. diff --git a/htdocs/user/bank.php b/htdocs/user/bank.php index d9bbb16f3aa..16030f0f95c 100644 --- a/htdocs/user/bank.php +++ b/htdocs/user/bank.php @@ -78,8 +78,8 @@ if (empty($account->userid)) { // Define value to know what current user can do on users -$canadduser = (!empty($user->admin) || $user->rights->user->user->creer || $user->rights->hrm->write_employee->write); -$canreaduser = (!empty($user->admin) || $user->rights->user->user->lire || $user->rights->hrm->read_employee->read); +$canadduser = (!empty($user->admin) || $user->rights->user->user->creer || $user->rights->hrm->write_personal_information->write); +$canreaduser = (!empty($user->admin) || $user->rights->user->user->lire || $user->rights->hrm->read_personal_information->read); $permissiontoaddbankaccount = (!empty($user->rights->salaries->write) || !empty($user->rights->hrm->employee->write) || !empty($user->rights->user->creer)); // Ok if user->rights->salaries->read or user->rights->hrm->read @@ -281,7 +281,7 @@ llxHeader(null, $langs->trans("BankAccounts")); $head = user_prepare_head($object); -if ($id && $bankid && $action == 'edit' && ($user->rights->user->user->creer || $user->rights->hrm->write_employee->write)) { +if ($id && $bankid && $action == 'edit' && ($user->rights->user->user->creer || $user->rights->hrm->write_personal_information->write)) { print ''; print ''; print ''; @@ -446,7 +446,7 @@ if ($action != 'edit' && $action != 'create') { // If not bank account yet, $ac print "\n"; // Date of birth - if ($user->rights->hrm->read_employee->read || $user->rights->hrm->write_employee->write) { + if ($user->rights->hrm->read_personal_information->read || $user->rights->hrm->write_personal_information->write) { print ''; print ''; print $form->editfieldkey("DateOfBirth", 'birth', $object->birth, $object, $user->rights->user->user->creer); @@ -457,23 +457,23 @@ if ($action != 'edit' && $action != 'create') { // If not bank account yet, $ac } // Personal email - if ($user->rights->hrm->read_employee->read || $user->rights->hrm->write_employee->write) { + if ($user->rights->hrm->read_personal_information->read || $user->rights->hrm->write_personal_information->write) { print ''; print ''; - print $form->editfieldkey("UserPersonalEmail", 'personal_email', $object->personal_email, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write); + print $form->editfieldkey("UserPersonalEmail", 'personal_email', $object->personal_email, $object, $user->rights->user->user->creer || $user->rights->hrm->write_personal_information->write); print ''; - print $form->editfieldval("UserPersonalEmail", 'personal_email', $object->personal_email, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write, 'email', '', null, null, '', 0, 'dol_print_email'); + print $form->editfieldval("UserPersonalEmail", 'personal_email', $object->personal_email, $object, $user->rights->user->user->creer || $user->rights->hrm->write_personal_information->write, 'email', '', null, null, '', 0, 'dol_print_email'); print ''; print ''; } // Personal phone - if ($user->rights->hrm->read_employee->read || $user->rights->hrm->write_employee->write) { + if ($user->rights->hrm->read_personal_information->read || $user->rights->hrm->write_personal_information->write) { print ''; print ''; - print $form->editfieldkey("UserPersonalMobile", 'personal_mobile', $object->personal_mobile, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write); + print $form->editfieldkey("UserPersonalMobile", 'personal_mobile', $object->personal_mobile, $object, $user->rights->user->user->creer || $user->rights->hrm->write_personal_information->write); print ''; - print $form->editfieldval("UserPersonalMobile", 'personal_mobile', $object->personal_mobile, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write, 'string', '', null, null, '', 0, 'dol_print_phone'); + print $form->editfieldval("UserPersonalMobile", 'personal_mobile', $object->personal_mobile, $object, $user->rights->user->user->creer || $user->rights->hrm->write_personal_information->write, 'string', '', null, null, '', 0, 'dol_print_phone'); print ''; print ''; } @@ -533,23 +533,23 @@ if ($action != 'edit' && $action != 'create') { // If not bank account yet, $ac } // Employee Number - if ($user->rights->hrm->read_employee->read || $user->rights->hrm->write_employee->write) { + if ($user->rights->hrm->read_personal_information->read || $user->rights->hrm->write_personal_information->write) { print ''; print ''; - print $form->editfieldkey("RefEmployee", 'ref_employee', $object->ref_employee, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write); + print $form->editfieldkey("RefEmployee", 'ref_employee', $object->ref_employee, $object, $user->rights->user->user->creer || $user->rights->hrm->write_personal_information->write); print ''; - print $form->editfieldval("RefEmployee", 'ref_employee', $object->ref_employee, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write, 'string', $object->ref_employee); + print $form->editfieldval("RefEmployee", 'ref_employee', $object->ref_employee, $object, $user->rights->user->user->creer || $user->rights->hrm->write_personal_information->write, 'string', $object->ref_employee); print ''; print ''; } // National registration number - if ($user->rights->hrm->read_employee->read || $user->rights->hrm->write_employee->write) { + if ($user->rights->hrm->read_personal_information->read || $user->rights->hrm->write_personal_information->write) { print ''; print ''; - print $form->editfieldkey("NationalRegistrationNumber", 'national_registration_number', $object->national_registration_number, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write); + print $form->editfieldkey("NationalRegistrationNumber", 'national_registration_number', $object->national_registration_number, $object, $user->rights->user->user->creer || $user->rights->hrm->write_personal_information->write); print ''; - print $form->editfieldval("NationalRegistrationNumber", 'national_registration_number', $object->national_registration_number, $object, $user->rights->user->user->creer || $user->rights->hrm->write_employee->write, 'string', $object->national_registration_number); + print $form->editfieldval("NationalRegistrationNumber", 'national_registration_number', $object->national_registration_number, $object, $user->rights->user->user->creer || $user->rights->hrm->write_personal_information->write, 'string', $object->national_registration_number); print ''; print ''; } From 199faaa6f6e137a438240228673238996036b055 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 30 Mar 2022 15:19:57 +0200 Subject: [PATCH 11/11] Update modHRM.class.php --- htdocs/core/modules/modHRM.class.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/core/modules/modHRM.class.php b/htdocs/core/modules/modHRM.class.php index bffd760bad6..bd81f06dae7 100644 --- a/htdocs/core/modules/modHRM.class.php +++ b/htdocs/core/modules/modHRM.class.php @@ -214,28 +214,28 @@ class modHRM extends DolibarrModules $r++; // Evaluation - $this->rights[$r][0] = 4020; // Permission id (must not be already used) + $this->rights[$r][0] = 4021; // Permission id (must not be already used) $this->rights[$r][1] = 'Read evaluations'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'evaluation'; $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->hrm->evaluation->read) $r++; - $this->rights[$r][0] = 4021; // Permission id (must not be already used) + $this->rights[$r][0] = 4022; // Permission id (must not be already used) $this->rights[$r][1] = 'Create/modify your evaluation'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'evaluation'; $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->hrm->evaluation->write) $r++; - $this->rights[$r][0] = 4022; // Permission id (must not be already used) + $this->rights[$r][0] = 4023; // Permission id (must not be already used) $this->rights[$r][1] = 'Validate evaluation'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'evaluation_advance'; $this->rights[$r][5] = 'validate'; // In php code, permission will be checked by test if ($user->rights->hrm->evaluation->validate) $r++; - $this->rights[$r][0] = 4023; // Permission id (must not be already used) + $this->rights[$r][0] = 4025; // Permission id (must not be already used) $this->rights[$r][1] = 'Delete evaluations'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'evaluation'; @@ -243,7 +243,7 @@ class modHRM extends DolibarrModules $r++; // Comparison - $this->rights[$r][0] = 4030; // Permission id (must not be already used) + $this->rights[$r][0] = 4028; // Permission id (must not be already used) $this->rights[$r][1] = 'See comparison menu'; // Permission label $this->rights[$r][3] = 0; // Permission by default for new user (0/1) $this->rights[$r][4] = 'compare_advance';