Outils pour utilisateurs

Outils du site


admin_firewall

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
admin_firewall [09/08/2017 15:47] LesahrWebadmin_firewall [20/06/2021 12:46] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ===== Administration du système : gestion des règles de l'assistance (mode "Firewall™") ===== ===== Administration du système : gestion des règles de l'assistance (mode "Firewall™") =====
  
-Le mode ''Firewall™'' (ou //Mur de feu//) de ''Lesahr<sup>Web</sup>'' permet à lui seul de 'déposer' un élève exactement dans le cursus précis, sans échappatoire possible.+Le mode ''Firewall™'' (ou //Mur de feu//) de ''Lesahr<sup>Web</sup>'' permet de bloquer l'accès d'un élève à un curriculum, sans échappatoire possible.
 Ce mode est exclusivement réservé à l'[[assistant_inscription_curr|Assistant d'inscription : sélection du ou des domaines et cours suivis]] et est débrayé lors de la gestion des curriculums hors assistant. Ce mode est exclusivement réservé à l'[[assistant_inscription_curr|Assistant d'inscription : sélection du ou des domaines et cours suivis]] et est débrayé lors de la gestion des curriculums hors assistant.
  
Ligne 24: Ligne 24:
   * **$degre** : degré concerné (F1, T3,…)   * **$degre** : degré concerné (F1, T3,…)
 Vous disposez également de tous les comparateurs disponibles dans ''MySQL'' Vous disposez également de tous les comparateurs disponibles dans ''MySQL''
-<code mysql><, , = , >, !, %, BETWEEN,…</code>+<code mysql><, <= , =, >=, >, !=LIKE, BETWEEN,…</code>
  
 Enfin, ''Lesahr<sup>Web</sup>'' vous offre un bouton de **[**<html><font color="red"> TEST </font></html>**]** qui permet de repérer les éventuelles erreurs syntaxiques et, dès correction, de tester le résultat de la règle. Enfin, ''Lesahr<sup>Web</sup>'' vous offre un bouton de **[**<html><font color="red"> TEST </font></html>**]** qui permet de repérer les éventuelles erreurs syntaxiques et, dès correction, de tester le résultat de la règle.
Ligne 33: Ligne 33:
   * son matricule : **$matricule**   * son matricule : **$matricule**
   * son année de naissance : **DN_annee** de la table **eleves**   * son année de naissance : **DN_annee** de la table **eleves**
-  * de l'année en cours : **$annee**+  * l'année en cours : **$annee**
 pour construire la requête :  pour construire la requête : 
-<code mysql>SELECT * from eleves where matricule = '$matricule' AND DN_annee = '$annee'-7</code> +<code mysql>SELECT * FROM eleves 
-Si l'élève dont le matricule = **$matricule** a bien 7 ans au 31 décembre de l'année **$annee**, alors le résultat sera = 1, sinon 0.+WHERE matricule = '$matricule' 
 +  AND DN_annee  = '$annee'-7</code> 
 +Si l'élève dont le matricule = **$matricule** a bien 7 ans (strictement) au 31 décembre de l'année **$annee**, alors le résultat sera = 1, sinon 0.
  
 __Exemple 2__ : nous allons vérifier l'âge de l'élève dans la fourchette 10-14 ans inclus :  __Exemple 2__ : nous allons vérifier l'âge de l'élève dans la fourchette 10-14 ans inclus : 
-<code mysql>SELECT * from eleves where matricule = '$matricule'  +<code mysql>SELECT * FROM eleves 
-AND (DN_annee <= '$annee'-10 AND DN_annee >= '$annee'-14)</code>+WHERE matricule = '$matricule'  
 +  AND  (DN_annee <= '$annee'-10  
 +    AND DN_annee >= '$annee'-14)</code>
  
 __Exemple 3__  : recherche si l'élève a suivi le cours de Diction-Orthophonie (0049) les années antérieures (et donc pas cette année) : __Exemple 3__  : recherche si l'élève a suivi le cours de Diction-Orthophonie (0049) les années antérieures (et donc pas cette année) :
-<code mysql>SELECT * FROM curriculum WHERE matricule = '$matricule'  +<code mysql>SELECT * FROM curriculum 
-AND code_cours = '0049' AND annee <= '$annee'-1</code>+WHERE matricule = '$matricule'  
 +  AND code_cours = '0049' 
 +  AND annee     <= '$annee'-1</code>
  
 Ce système de règles permet donc de tester des cas simple, mais aussi bien plus complexe comme : Ce système de règles permet donc de tester des cas simple, mais aussi bien plus complexe comme :
  
 __Exemple 4__ : Test du contenu de la L2 selon [[admin_libelles_officiels|Administration du système : gestion des libellés officiels]] : __Exemple 4__ : Test du contenu de la L2 selon [[admin_libelles_officiels|Administration du système : gestion des libellés officiels]] :
-<code mysql>SELECT * from curriculum  +<code mysql>SELECT * FROM curriculum  
-LEFT JOIN cours ON curriculum.code_cours=cours.id  +LEFT JOIN cours    ON curriculum.code_cours   = cours.id  
-LEFT JOIN libelles ON cours.libelle_tableau_2=libelles.code  +LEFT JOIN libelles ON cours.libelle_tableau_2 = libelles.code  
-WHERE curriculum.matricule = '$matricule'  +WHERE curriculum.matricule  = '$matricule'  
-AND curriculum.code_cours = '$code_cours'  +  AND curriculum.code_cours = '$code_cours'  
-AND libelles.libelle = 'Formation instrumentale'</code>+  AND libelles.libelle      = 'Formation instrumentale'</code>
  
-Ces "tests" sont ensuite à comparer à une valeur, généralement '>=1' (test validé).+Ces "tests" sont ensuite comparés à une valeur, généralement '>=1' (test validé).
  
-__Exemple 5__ : Certains cas nécessitent une comparaison à 2 pour, par exemple, déterminer si un élève à ou non un double échec dans le cours concerné : +__Exemple 5__ : Certains cas nécessitent une comparaison à 2 pour, par exemple, déterminer si un élève a subit ou non un double échec dans le cours concerné : 
-<code mysql>SELECT * from curriculum +<code mysql>SELECT * FROM curriculum 
-LEFT JOIN filieres ON curriculum.degre=filieres.id +LEFT JOIN filieres ON curriculum.degre = filieres.id 
 WHERE curriculum.matricule = '$matricule'  WHERE curriculum.matricule = '$matricule' 
-AND (filieres.degre = '$degre' OR curriculum.degre = '$degre')  +  AND (filieres.degre  = '$degre' 
-AND code_cours = '$code_cours'</code>+   OR curriculum.degre = '$degre')  
 +  AND code_cours = '$code_cours'</code>
  
 +Dans ce cas, si le nombre d'items est ≥ à 2, l'élève satisfait la règle d'exclusion.
  
-==== Actions de Firewall™ ==== 
  
-En combinant une ou plusieurs règles ci-dessus, nous allons pouvoir piloter les ** actions de Friewall**, à avoir aiguiller un élève dans une situation contextuelle donnée vers un ou plusieurs curriculum, ou, //a contrario//, lui interdire l'accès audit curriculum.+==== Actions de Firewall™ ====
  
 +En combinant une ou plusieurs règles ci-dessus, nous allons pouvoir piloter les ** actions de Firewall™**, à savoir interdire l'accès d'un élève dans une situation contextuelle à un ou plusieurs curriculums. Si l'interdiction n'est pas décrite, l'accès est autorisé par défaut. Cela permet aux structures simples ou débutantes de se passer du ''Firewall™''.
 Les opérandes classiques sont : Les opérandes classiques sont :
-  * **+** (plus) : permet de vérifier si au moins une des règles est satisfaisante. Il s'agit du **ET** logique ; +  * **+** (plus) : permet de vérifier si au moins une des règles est satisfaisante. Il s'agit du **OU** logique ; 
-  * ***** (fois) : permet de vérifier si toutes les règles sont satisfaisants. Il s'agit du **OU** logique ;+  * ***** (fois) : permet de vérifier si toutes les règles sont satisfaisants. Il s'agit du **ET** logique ;
   * **!** : permet de prendre la négation d'une règle. Il s'agit du **NON** logique ;   * **!** : permet de prendre la négation d'une règle. Il s'agit du **NON** logique ;
-  * **(** et **)** : permet de grouper certaines règles ensembles.+  * **(** et **)** : permettent de grouper des règles ensembles.
  
 __Exemple 6__ : Nous allons interdire l'accès au Domaine de la Musique tout entier suite à la décision du conseil de classe, basée sur un double échec en Formation Musicale. __Exemple 6__ : Nous allons interdire l'accès au Domaine de la Musique tout entier suite à la décision du conseil de classe, basée sur un double échec en Formation Musicale.
  
-Tout d'abord, générons d'abord la règle qui précise la condition et nommons-la **$regle4** :  +Tout d'abord, générons d'abord la règle qui précise la condition (**$regle4**:  
-<code mysql>SELECT * from curriculum where matricule = '$matricule' AND decision_conseil_classe = 'plus_admis' AND code_cours = '0203'</code>+<code mysql>SELECT * FROM curriculum  
 +WHERE matricule               = '$matricule' 
 +  AND decision_conseil_classe = 'plus_admis' 
 +  AND code_cours              = '0203'</code>
 Là, tout simplement, nous exploiterons sa valeur directe :  Là, tout simplement, nous exploiterons sa valeur directe : 
  
 |  {{::admin_firewall_action_1.png?400|}}  | |  {{::admin_firewall_action_1.png?400|}}  |
  
-et préciserons le refus d'accès au domaine de la musique.+et préciserons le refus d'accès au Domaine de la Musique.
  
 +Les message en cas de refus est précisé dans l'Assistant lors de la tentative d'enrôlement à un curriculum interdit. Ainsi, le personnel d'inscription sait motiver l'interdiction.
  
-__Exemple 7__ : Nous allons vérifier l'accès au cours de Pointes du Domaine de la Danse sur base de 2 règles :  au préalable être inscrit en filière de qualification, ou de transition 3ème année, du cours de Danse Classique, ou avoir terminé l'une de ces filières.+__Exemple 7__ : Nous allons vérifier l'accès au cours de Pointes du Domaine de la Danse sur base de 2 règles :  au préalable être inscrit en filière de qualification, ou de transition 3<sup>e</sup> année, du cours de Danse Classique, ou avoir terminé l'une de ces filières.
  
-Générons donc la première règle : Danse Classique Q ou T3 et plus en cours cette année (**$regle19**) : +Générons donc la première règle : Danse Classique Q ou T3 et en cours cette année (**$regle19**) : 
-<code mysql>SELECT * from curriculum  +<code mysql>SELECT * FROM curriculum  
-LEFT JOIN filieres ON curriculum.degre=filieres.id +LEFT JOIN filieres ON curriculum.degre = filieres.id 
 WHERE curriculum.matricule = '$matricule'  WHERE curriculum.matricule = '$matricule' 
 AND (   filieres.degre   LIKE 'Q%'  AND (   filieres.degre   LIKE 'Q%' 
Ligne 104: Ligne 116:
      OR curriculum.degre = 'T6'      OR curriculum.degre = 'T6'
 AND curriculum.code_cours = '0020'  AND curriculum.code_cours = '0020' 
-AND curriculum.annee = '$annee'</code>+AND curriculum.annee      = '$annee'</code> 
 Générons ensuite la seconde règle : danse classique Q7 ou T6 réussi (**$regle20**) Générons ensuite la seconde règle : danse classique Q7 ou T6 réussi (**$regle20**)
-<code mysql>SELECT * from curriculum  +<code mysql>SELECT * FROM curriculum  
-LEFT JOIN filieres ON curriculum.degre=filieres.id +LEFT JOIN filieres ON curriculum.degre = filieres.id 
 WHERE curriculum.matricule = '$matricule'  WHERE curriculum.matricule = '$matricule' 
-AND   (filieres.degre = 'Q7' OR curriculum.degre = 'Q7' +  AND (filieres.degre = 'Q7' OR curriculum.degre = 'Q7' 
     OR filieres.degre = 'T6' OR curriculum.degre = 'T6')     OR filieres.degre = 'T6' OR curriculum.degre = 'T6')
-AND code_cours = '0020'  +  AND code_cours = '0020'  
-AND decision_conseil_classe = 'reussi'</code>+  AND decision_conseil_classe = 'reussi'</code>
  
 Nous refuserons donc l'accès au cours de Pointes du Domaine de la Danse, sur base du calcul suivant : Nous refuserons donc l'accès au cours de Pointes du Domaine de la Danse, sur base du calcul suivant :
Ligne 119: Ligne 132:
 |  {{::admin_firewall_action_2.png?400|}}  | |  {{::admin_firewall_action_2.png?400|}}  |
  
-Pléthore de cas sont possibles, et cette documentation ne saurait tous les égrainer. Nous vous suggérons de bien comprendre ces mécanismes, de consulter ces exemples ainsi que ceux de la [[http://www.lesahrweb.be/demo.php|démonstration]] accessible en ligne.+Une pléthore de cas est possible, et cette documentation ne saurait tous les égrainer. Nous vous suggérons de bien comprendre ces mécanismes, de consulter ces exemples ainsi que ceux de la [[http://www.lesahrweb.be/demo.php|démonstration]] accessible en ligne.
  
-Nous restons bien entendus à votre disposition pour réaliser les cas les plus compliqués.+Nous restons bien entendu à votre disposition pour réaliser les cas les plus complexes.
admin_firewall.1502286461.txt.gz · Dernière modification : (modification externe)