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 | 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 | 469 | 22/10/2021 v5.2.17-3.7.9 |
465 | 470 | - (i) Amélioration importante de la config des champs non modifiables : ajout optionnel d'une exception pour un (ou plusieurs) role(s) |
466 | 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 | 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 | 101 | #- nom_user |
102 | 102 | |
103 | 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 | 106 | #- nom_ancien_responsable |
107 | 107 | |
... | ... | @@ -118,11 +118,11 @@ UNEDITABLE_FIELDS_LOT0: |
118 | 118 | #- budgets |
119 | 119 | |
120 | 120 | # #### CHAMPS ADMINISTRATIFS : #### |
121 | - - eotp (except Administration) | |
122 | - - numero_commande (except Administration) | |
121 | + - eotp (sauf Administration) | |
122 | + - numero_commande (sauf Administration) | |
123 | 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 | 217 | |
218 | 218 | # On ne devrait pas pouvoir changer la NATURE du bien |
219 | 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 | 222 | #- sous_categorie_id |
223 | 223 | |
224 | 224 | #- groupes_thematique_id |
... | ... | @@ -256,7 +256,7 @@ UNEDITABLE_FIELDS_LOT1: |
256 | 256 | #- nom_user |
257 | 257 | |
258 | 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 | 261 | #- nom_ancien_responsable |
262 | 262 | |
... | ... | @@ -266,11 +266,11 @@ UNEDITABLE_FIELDS_LOT1: |
266 | 266 | #- gestionnaire_id |
267 | 267 | |
268 | 268 | # Fournisseur |
269 | - - fournisseur_id (except Administration) | |
269 | + - fournisseur_id (sauf Administration) | |
270 | 270 | |
271 | 271 | #- organisme_id |
272 | 272 | |
273 | - - prix_ht (except Administration) | |
273 | + - prix_ht (sauf Administration) | |
274 | 274 | |
275 | 275 | # Utilisé par la Gestion pour remplir le champ eotp |
276 | 276 | #- budgets |
... | ... | @@ -280,11 +280,11 @@ UNEDITABLE_FIELDS_LOT1: |
280 | 280 | # Le devis attaché au matériel commandé n'est ni modifiable ni supprimable |
281 | 281 | |
282 | 282 | # #### CHAMPS ADMINISTRATIFS : #### |
283 | - - eotp (except Administration) | |
284 | - - numero_commande (except Administration) | |
283 | + - eotp (sauf Administration) | |
284 | + - numero_commande (sauf Administration) | |
285 | 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 | 397 | #- nom_user |
398 | 398 | |
399 | 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 | 402 | #- nom_ancien_responsable |
403 | 403 | ... | ... |
src/Model/Table/MaterielsTable.php
... | ... | @@ -271,18 +271,23 @@ class MaterielsTable extends AppTable |
271 | 271 | $dict = []; |
272 | 272 | foreach ($uneditable_fields as $f) { |
273 | 273 | $except_roles = []; |
274 | - $except_str = '(except'; | |
274 | + $except_str = '(sauf'; | |
275 | + $pos0 = strpos($f, '('); | |
275 | 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 | 283 | // EXCEPTION si pas de parenthèse finale, ou role mal orthographié |
279 | 284 | //$except_list = trim( substr($f, $pos + strlen($except_str), -1) ); |
280 | 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 | 287 | $except_roles = str_replace(" ", "", substr($f, $pos + strlen($except_str), -1) ); |
283 | 288 | $except_roles = explode(',', $except_roles); |
284 | 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 | 291 | $f = trim( substr($f,0,$pos) ); |
287 | 292 | } |
288 | 293 | $dict[$f] = $except_roles; | ... | ... |