La lecture de cet article permet de comprendre ce qui se passe lors de l’édition d’un risque dans l’application DigiRisk.
Cet article fait référence à la version 6.5.0 de DigiRisk.
Nous allons voir les sujets suivants:
- Le processus d’édition d’un risque ainsi que sa méthode d’évaluation
- Les données d’un risque enregistrées en base de données
- L’algorithme gérant les cotations de risque selon la méthode d’évaluation utilisée.
- Les méthodes PHP utilisées
- Les hooks déclenchés lors de l’édition d’un risque.
Avant tout chose, il est important de comprendre qu’en terme technique, un risque contient 6 entités:
- Le risque
- L’image du risque
- La catégorie de la méthode d’évaluation
- La catégorie du risque
- L’évaluation du risque
- Le ou les commentaires sur l’évaluation
Comment se déroule le processus d’édition d’un risque
Création d’un nouveau risque
Les étapes dans l’ordre chronologique:
- Enregistrement du risque en base de données
- Création d’un post de type « digi-risk » rattaché à la société ou le risque à été créé en utilisant post_parent.
- Enregistrement des métadonnées du risque
- Si une image à la une à été mise en place sur le risque, création d’un post de type « attachment » liée par l’ID du risque en utilisant post_parent.
- Appel l’action « digi_add_historic » pour ajouter le nouveau risque dans l’historique de la société à lequel le risque est rattaché.
- Liaison de l’ID de la catégorie de la méthode d’évaluation vers l’ID du risque
- Liaison de l’ID de la catégorie de risque vers l’ID du risque
- Enregistrement de l’évaluation du risque en base de données
- Création d’un commentaire de type « digi-risk-eval » attaché par l’ID du risque en utilisant comment_post_ID.
- Enregistrement des métadonnées de l’évaluation du risque. (Voir le chapitre « Édition de l’évaluation des risques » pour plus de détails)
- Enregistrement du commentaire attaché par l’ID du risque en utilisant comment_post_ID et attaché à l’ID de l’évaluation en utilisant comment_parent.
Édition d’un risque existant
Les étapes dans l’ordre chronologique:
- Modification du risque en base de données
- Mise à jour des métadonnées du risque
- Enregistrement de l’évaluation du risque en base de données
- Création d’un commentaire de type « digi-risk-eval » attaché par l’ID du risque en utilisant comment_post_ID.
- Enregistrement des métadonnées de l’évaluation du risque
- Enregistrement du attaché par l’ID du risque en utilisant comment_post_ID et attaché à l’ID de l’évaluation en utilisant comment_parent.
Comment est calculée la cotation d’un risque ?
La méthode simplifiée
Pour cette méthode, le déroulement est très simple, nous effectuons simplement une vérification sur l’équivalence et la force reçu par le formulaire.
La méthode Evarisk
Au contraire de la méthode précédente, le déroulement pour l’enregistrement de la méthode Evarisk est un peu plus complexe.
Pour obtenir la cotation, nous multiplions les notes de chaque variante de la méthode effectuées par l’utilisateur dans l’édition du risque. Pour rappel, la valeur des notes sont comprises entre 0 et 4
Une fois la cotation obtenu, nous la convertissons en pourcentage grâce à la matrice (définie ici) afin de récupérer une équivalence compatible avec la méthode simplifiée.
Un exemple
Supposons les variantes suivantes:
- Gravité: 2
- Exposition: 2
- Occurrence: 3
- Formation: 3
- Protection: 3
Calcule de la cotation
cotation = Gravité * Exposition * Occurrence * Formation * Protection
cotation = 2 * 2 * 3 * 3 * 3
cotation = 108
Conversion grâce à la matrice
Se référer au tableau de la matrice disponible dans la documentation par ici, ce qui donne:
equivalence = 48
Récupérer la force par rapport à l’équivalence
Nous avons définis un tableau en PHP qui permet de récupérer la force selon une équivalence:
Force | Equivalence |
1 | 0 |
2 | 48 |
3 | 51 |
4 | 80 |
Pour l’équivalence que nous avons calculé précédemment: 48, la force correspond à 2.
L’enregistrement de ses données
En base de données, nous enregistrons la cotation, l’équivalence, et la force du risque ainsi que les variantes utilisées.
Les données enregistrées en base de données
Dans le risque
Nom | Type | Description |
id | integer | ID du risque. |
title | string | Nom de la catégorie du risque. |
parent_id | integer | ID de la société ou le risque est rattaché. |
status | string | Statut du risque, valeur par défaut « inherit » |
taxonomy[‘digi-category-risk’] | array of integer | ID de la catégorie de risque. Inséré en $push |
taxonomy[‘digi-method’] | array of integer | ID de la méthode d’évaluation. Inséré en $push |
current_equivalence | integer | Donnée compilée de l’équivalence de l’évaluation du risque |
Dans l’évaluation du risque
Nom | Type | Description |
scale | integer | Force du risque.
|
post_id | integer | ID du risque où associer l’évaluation |
equivalence | integer | La cotation du risque en pourcentage |
Les méthodes utilisées
- save_risk() dans modules/risk/class/risk.class.php
- save_evaluation_risk() dans modules/risk/class/risk-evaluation.class.php
- save_evaluation_comment() dans modules /risk/class/risk-evaluation-comment.class.php
Les actions déclenchées
Nom | Description | Paramètres |
wp_ajax_edit_risk | Première action déclenché permettant l’enregistrement du risque en base de donnée | Array $_POST |
digi_after_edit_risk | Après l’enregistrement du risque en base de donnée | Risk_Model $risk, Array $form_data |
digi_after_save_evaluation_risk | Après l’enregistrement de l’évaluation du risque en base de donnée | Risk_Model $risk, Risk_Evaluation_Model $risk_evaluation, Array $form_data |
digi_after_save_evaluation_comment | Après l’enregistre du/des commentaire(s) de l’évaluation en base de donnée. | Risk_Model $risk, Risk_Evaluation_Model $risk_evaluation, Array Risk_Evaluation_Comment_Model $risk_evaluation_comments, Array $form_data |