Commit a541f625734ae5e9be82e62f8cd9e3279b6db4cf
1 parent
9e0dc822
Exists in
master
and in
1 other branch
- (i) changé mot-clé "except" par "sauf" dans fichier config champs
readonly (et adapté traitement) + nouvelle exception si mot-clé "sauf" mal utilisé v5.2.18-3.7.9
Showing
4 changed files
with
32 additions
and
22 deletions
Show diff stats
CHANGELOG
@@ -461,6 +461,11 @@ Commencer à implémenter le nouveau workflow v5 : | @@ -461,6 +461,11 @@ Commencer à implémenter le nouveau workflow v5 : | ||
461 | ======= CHANGES ======= | 461 | ======= CHANGES ======= |
462 | 462 | ||
463 | ------- | 463 | ------- |
464 | +23/10/2021 v5.2.18-3.7.9 | ||
465 | + - (i) changé mot-clé "except" par "sauf" dans fichier config champs readonly (et adapté traitement) | ||
466 | + - nouvelle exception si mot-clé "sauf" mal utilisé | ||
467 | + | ||
468 | +------- | ||
464 | 22/10/2021 v5.2.17-3.7.9 | 469 | 22/10/2021 v5.2.17-3.7.9 |
465 | - (i) Amélioration importante de la config des champs non modifiables : ajout optionnel d'une exception pour un (ou plusieurs) role(s) | 470 | - (i) Amélioration importante de la config des champs non modifiables : ajout optionnel d'une exception pour un (ou plusieurs) role(s) |
466 | => Exemple pour interdire la modif du fournisseur (sauf pour le role Administration) : | 471 | => Exemple pour interdire la modif du fournisseur (sauf pour le role Administration) : |
README.md
@@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes : | @@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes : | ||
52 | 52 | ||
53 | -------------------------------------------------------------------------------------------- | 53 | -------------------------------------------------------------------------------------------- |
54 | 54 | ||
55 | -Date: 22/10/2021 | ||
56 | -Version: v5.2.17-3.7.9 | 55 | +Date: 23/10/2021 |
56 | +Version: v5.2.18-3.7.9 | ||
57 | 57 | ||
58 | 58 | ||
59 | 59 |
config/app_labinvent_mandatory_fields.default.yml
@@ -101,7 +101,7 @@ UNEDITABLE_FIELDS_LOT0: | @@ -101,7 +101,7 @@ UNEDITABLE_FIELDS_LOT0: | ||
101 | #- nom_user | 101 | #- nom_user |
102 | 102 | ||
103 | # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même | 103 | # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même |
104 | - - nom_responsable (except Responsable, Administration) | 104 | + - nom_responsable (sauf Responsable, Administration) |
105 | 105 | ||
106 | #- nom_ancien_responsable | 106 | #- nom_ancien_responsable |
107 | 107 | ||
@@ -118,11 +118,11 @@ UNEDITABLE_FIELDS_LOT0: | @@ -118,11 +118,11 @@ UNEDITABLE_FIELDS_LOT0: | ||
118 | #- budgets | 118 | #- budgets |
119 | 119 | ||
120 | # #### CHAMPS ADMINISTRATIFS : #### | 120 | # #### CHAMPS ADMINISTRATIFS : #### |
121 | - - eotp (except Administration) | ||
122 | - - numero_commande (except Administration) | 121 | + - eotp (sauf Administration) |
122 | + - numero_commande (sauf Administration) | ||
123 | - numero_laboratoire # READONLY toujours car généré automatiquement | 123 | - numero_laboratoire # READONLY toujours car généré automatiquement |
124 | - - numero_inventaire_organisme (except Administration) | ||
125 | - - numero_inventaire_old (except Administration) | 124 | + - numero_inventaire_organisme (sauf Administration) |
125 | + - numero_inventaire_old (sauf Administration) | ||
126 | 126 | ||
127 | 127 | ||
128 | 128 | ||
@@ -217,8 +217,8 @@ UNEDITABLE_FIELDS_LOT1: | @@ -217,8 +217,8 @@ UNEDITABLE_FIELDS_LOT1: | ||
217 | 217 | ||
218 | # On ne devrait pas pouvoir changer la NATURE du bien | 218 | # On ne devrait pas pouvoir changer la NATURE du bien |
219 | # Domaine & Catégorie | 219 | # Domaine & Catégorie |
220 | - - sur_categorie_id (except Administration) # Domaine | ||
221 | - - categorie_id (except Administration) # Catégorie | 220 | + - sur_categorie_id (sauf Administration) # Domaine |
221 | + - categorie_id (sauf Administration) # Catégorie | ||
222 | #- sous_categorie_id | 222 | #- sous_categorie_id |
223 | 223 | ||
224 | #- groupes_thematique_id | 224 | #- groupes_thematique_id |
@@ -256,7 +256,7 @@ UNEDITABLE_FIELDS_LOT1: | @@ -256,7 +256,7 @@ UNEDITABLE_FIELDS_LOT1: | ||
256 | #- nom_user | 256 | #- nom_user |
257 | 257 | ||
258 | # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même | 258 | # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même |
259 | - #- nom_responsable (except Responsable, Administration) | 259 | + #- nom_responsable (sauf Responsable, Administration) |
260 | 260 | ||
261 | #- nom_ancien_responsable | 261 | #- nom_ancien_responsable |
262 | 262 | ||
@@ -266,11 +266,11 @@ UNEDITABLE_FIELDS_LOT1: | @@ -266,11 +266,11 @@ UNEDITABLE_FIELDS_LOT1: | ||
266 | #- gestionnaire_id | 266 | #- gestionnaire_id |
267 | 267 | ||
268 | # Fournisseur | 268 | # Fournisseur |
269 | - - fournisseur_id (except Administration) | 269 | + - fournisseur_id (sauf Administration) |
270 | 270 | ||
271 | #- organisme_id | 271 | #- organisme_id |
272 | 272 | ||
273 | - - prix_ht (except Administration) | 273 | + - prix_ht (sauf Administration) |
274 | 274 | ||
275 | # Utilisé par la Gestion pour remplir le champ eotp | 275 | # Utilisé par la Gestion pour remplir le champ eotp |
276 | #- budgets | 276 | #- budgets |
@@ -280,11 +280,11 @@ UNEDITABLE_FIELDS_LOT1: | @@ -280,11 +280,11 @@ UNEDITABLE_FIELDS_LOT1: | ||
280 | # Le devis attaché au matériel commandé n'est ni modifiable ni supprimable | 280 | # Le devis attaché au matériel commandé n'est ni modifiable ni supprimable |
281 | 281 | ||
282 | # #### CHAMPS ADMINISTRATIFS : #### | 282 | # #### CHAMPS ADMINISTRATIFS : #### |
283 | - - eotp (except Administration) | ||
284 | - - numero_commande (except Administration) | 283 | + - eotp (sauf Administration) |
284 | + - numero_commande (sauf Administration) | ||
285 | - numero_laboratoire # READONLY toujours car généré automatiquement | 285 | - numero_laboratoire # READONLY toujours car généré automatiquement |
286 | - - numero_inventaire_organisme (except Administration) | ||
287 | - - numero_inventaire_old (except Administration) | 286 | + - numero_inventaire_organisme (sauf Administration) |
287 | + - numero_inventaire_old (sauf Administration) | ||
288 | 288 | ||
289 | 289 | ||
290 | 290 | ||
@@ -397,7 +397,7 @@ UNEDITABLE_FIELDS_LOT2: | @@ -397,7 +397,7 @@ UNEDITABLE_FIELDS_LOT2: | ||
397 | #- nom_user | 397 | #- nom_user |
398 | 398 | ||
399 | # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même | 399 | # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même |
400 | - #- nom_responsable (except Responsable, Administration) | 400 | + #- nom_responsable (sauf Responsable, Administration) |
401 | 401 | ||
402 | #- nom_ancien_responsable | 402 | #- nom_ancien_responsable |
403 | 403 |
src/Model/Table/MaterielsTable.php
@@ -271,18 +271,23 @@ class MaterielsTable extends AppTable | @@ -271,18 +271,23 @@ class MaterielsTable extends AppTable | ||
271 | $dict = []; | 271 | $dict = []; |
272 | foreach ($uneditable_fields as $f) { | 272 | foreach ($uneditable_fields as $f) { |
273 | $except_roles = []; | 273 | $except_roles = []; |
274 | - $except_str = '(except'; | 274 | + $except_str = '(sauf'; |
275 | + $pos0 = strpos($f, '('); | ||
275 | $pos = strpos($f, $except_str); | 276 | $pos = strpos($f, $except_str); |
276 | - // Si le nom du champ $f fini par "(except ...)", on récupère cette chaine except (sans le mot except ni la parenthèse finale) dans $except | ||
277 | - if ($pos !== false) { | 277 | + // Si le nom du champ $f fini par "(sauf ...)", on récupère cette chaine except (sans le mot 'sauf' ni la parenthèse finale) dans $except |
278 | + if ($pos0 !== false) { | ||
279 | + $error_msg = "Erreur dans le fichier de configuration des champs non modifiables"; | ||
280 | + // EXCEPTION si parenthèse début mais pas suivie du mot-clé 'sauf' | ||
281 | + if ($pos === false) | ||
282 | + throw new \Exception("$error_msg : une parenthèse doit toujours être suivie du mot-clé 'sauf', ce qui n'est pas le cas de la ligne '$f'"); | ||
278 | // EXCEPTION si pas de parenthèse finale, ou role mal orthographié | 283 | // EXCEPTION si pas de parenthèse finale, ou role mal orthographié |
279 | //$except_list = trim( substr($f, $pos + strlen($except_str), -1) ); | 284 | //$except_list = trim( substr($f, $pos + strlen($except_str), -1) ); |
280 | if ( substr($f, -1) != ')' ) | 285 | if ( substr($f, -1) != ')' ) |
281 | - throw new \Exception("Erreur dans le fichier de configuration des champs non modifiables : il manque une parenthèse à la fin de la ligne '$f'"); | 286 | + throw new \Exception("$error_msg : il manque une parenthèse à la fin de la ligne '$f'"); |
282 | $except_roles = str_replace(" ", "", substr($f, $pos + strlen($except_str), -1) ); | 287 | $except_roles = str_replace(" ", "", substr($f, $pos + strlen($except_str), -1) ); |
283 | $except_roles = explode(',', $except_roles); | 288 | $except_roles = explode(',', $except_roles); |
284 | foreach ($except_roles as $role) if (! self::isValidRole($role)) | 289 | foreach ($except_roles as $role) if (! self::isValidRole($role)) |
285 | - throw new \Exception("Erreur dans le fichier de configuration des champs non modifiables : le role '$role' est mal orthographié dans la ligne '$f'"); | 290 | + throw new \Exception("$error_msg : le role '$role' est mal orthographié dans la ligne '$f'"); |
286 | $f = trim( substr($f,0,$pos) ); | 291 | $f = trim( substr($f,0,$pos) ); |
287 | } | 292 | } |
288 | $dict[$f] = $except_roles; | 293 | $dict[$f] = $except_roles; |