diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index ac1b353cd9e..c9aeec5bc0b 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -112,8 +112,9 @@ $hookmanager->initHooks(array('propalcard', 'globalcard')); $usercanread = $user->rights->propal->lire; $usercancreate = $user->rights->propal->creer; -$usercanclose = $user->rights->propal->cloturer; $usercandelete = $user->rights->propal->supprimer; + +$usercanclose = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->propal->propal_advance->close))); $usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->propal->propal_advance->validate))); $usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->propal->propal_advance->send); diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index b8a3960debb..d6d40b0bc7f 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -100,8 +100,9 @@ $hookmanager->initHooks(array('ordercard', 'globalcard')); $usercanread = $user->rights->commande->lire; $usercancreate = $user->rights->commande->creer; -$usercanclose = $user->rights->commande->cloturer; $usercandelete = $user->rights->commande->supprimer; +// Advanced permissions +$usercanclose = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->commande->creer)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->commande->order_advance->close))); $usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->commande->order_advance->validate))); $usercancancel = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->commande->order_advance->annuler))); $usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->commande->order_advance->send); diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 4f5f8c8f1e1..3dcef0de9e3 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -752,8 +752,10 @@ class Commande extends CommonOrder $error = 0; - if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->commande->creer)) - || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->commande->order_advance->validate))) + $usercanclose = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->commande->creer)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->commande->order_advance->close))); + + if ($usercanclose) { $this->db->begin(); diff --git a/htdocs/core/modules/modCommande.class.php b/htdocs/core/modules/modCommande.class.php index 5d1db854793..8eba2c69db5 100644 --- a/htdocs/core/modules/modCommande.class.php +++ b/htdocs/core/modules/modCommande.class.php @@ -118,21 +118,21 @@ class modCommande extends DolibarrModules $r++; $this->rights[$r][0] = 81; - $this->rights[$r][1] = 'Lire les commandes clients'; + $this->rights[$r][1] = 'Read sales orders'; $this->rights[$r][2] = 'r'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'lire'; $r++; $this->rights[$r][0] = 82; - $this->rights[$r][1] = 'Creer/modifier les commandes clients'; + $this->rights[$r][1] = 'Creeat/modify sales orders'; $this->rights[$r][2] = 'w'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'creer'; $r++; $this->rights[$r][0] = 84; - $this->rights[$r][1] = 'Valider les commandes clients'; + $this->rights[$r][1] = 'Validate sales orders'; $this->rights[$r][2] = 'd'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'order_advance'; @@ -140,7 +140,7 @@ class modCommande extends DolibarrModules $r++; $this->rights[$r][0] = 86; - $this->rights[$r][1] = 'Envoyer les commandes clients'; + $this->rights[$r][1] = 'Send sale orders by email'; $this->rights[$r][2] = 'd'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'order_advance'; @@ -148,14 +148,15 @@ class modCommande extends DolibarrModules $r++; $this->rights[$r][0] = 87; - $this->rights[$r][1] = 'Cloturer les commandes clients'; + $this->rights[$r][1] = 'Close sale orders'; $this->rights[$r][2] = 'd'; $this->rights[$r][3] = 0; - $this->rights[$r][4] = 'cloturer'; + $this->rights[$r][4] = 'order_advance'; + $this->rights[$r][5] = 'close'; $r++; $this->rights[$r][0] = 88; - $this->rights[$r][1] = 'Annuler les commandes clients'; + $this->rights[$r][1] = 'Cancel sale orders'; $this->rights[$r][2] = 'd'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'order_advance'; @@ -163,14 +164,14 @@ class modCommande extends DolibarrModules $r++; $this->rights[$r][0] = 89; - $this->rights[$r][1] = 'Supprimer les commandes clients'; + $this->rights[$r][1] = 'Delete sales orders'; $this->rights[$r][2] = 'd'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'supprimer'; $r++; $this->rights[$r][0] = 1421; - $this->rights[$r][1] = 'Exporter les commandes clients et attributs'; + $this->rights[$r][1] = 'Export sales orders and attributes'; $this->rights[$r][2] = 'r'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'commande'; diff --git a/htdocs/install/mysql/migration/11.0.0-12.0.0.sql b/htdocs/install/mysql/migration/11.0.0-12.0.0.sql index 4fb4fb5c82b..faa10f15950 100644 --- a/htdocs/install/mysql/migration/11.0.0-12.0.0.sql +++ b/htdocs/install/mysql/migration/11.0.0-12.0.0.sql @@ -65,6 +65,9 @@ ALTER TABLE llx_website ADD COLUMN otherlang varchar(255); ALTER TABLE llx_website_page ADD COLUMN author_alias varchar(64); +UPDATE llx_rights_def SET perms = 'order_advance', subperms = 'close' WHERE module = 'commande' AND perms = 'cloturer'; +UPDATE llx_rights_def SET perms = 'propal_advance', subperms = 'close' WHERE module = 'propale' AND perms = 'cloturer'; + ALTER TABLE llx_holiday_users DROP INDEX uk_holiday_users; ALTER TABLE llx_holiday_users ADD UNIQUE INDEX uk_holiday_users(fk_user, fk_type); diff --git a/htdocs/user/perms.php b/htdocs/user/perms.php index 05814f4b832..a1ae487f323 100644 --- a/htdocs/user/perms.php +++ b/htdocs/user/perms.php @@ -187,7 +187,7 @@ foreach($modulesdir as $dir) $db->commit(); -// Lecture des droits utilisateurs +// Read permissions of user $permsuser = array(); $sql = "SELECT DISTINCT ur.fk_id"; @@ -247,7 +247,7 @@ else /* - * Ecran ajout/suppression permission + * Part to add/remove permissions */ $linkback = ''; @@ -292,7 +292,7 @@ print '