This is an old revision of the document!
Le remplacement de l'authentification Intranet par le CAS implique de gérer deux chose :
Ces deux points étaient gérée entièrement par authentification Intranet alors que le CAS ne gère que la première. Il est donc indispensable de gérer par du code le filtrage des gens que se connectent.
Pour ce faire une solution est de mettre en place un système de comparaison entre une liste locale à chaque application et de la comparer avec la liste des groupe d'appartenance renvoyée par le CAS.
function groupeAccess($arrayGroupe) { $arrayGroupePropre = array(); foreach ($arrayGroupe as $LigneGroupe) { $Groupe=substr($LigneGroupe, (strpos($LigneGroupe,"[id=")+4)); $Groupe=rtrim($Groupe,"]"); array_push($arrayGroupePropre,$Groupe); } return $arrayGroupePropre; }
function hasAccess($arrayGroupe) { $arrayGroupePropre = groupeAccess($arrayGroupe); $file="./access.xml"; $xml = new DOMDocument(); if(!$xml->load($file)) { echo "<br>Erreur avec dom. Pas bien !"; } $groupeAccess=$xml->getElementsByTagName('groupeAccess'); $trouve=false; foreach ($groupeAccess as $groupeHasAccess) { $groupe=$groupeHasAccess->getElementsByTagName('groupe'); if(in_array($groupe->item(0)->nodeValue,$arrayGroupePropre)) { $trouve=true; } } return $trouve; }