Commit 52d30854 authored by Laurent Lécluse's avatar Laurent Lécluse
Browse files

Ajout de la doc sur le HostLocalization (pour savoir si on est sur le réseau...

Ajout de la doc sur le HostLocalization (pour savoir si on est sur le réseau de l'établissement ou non)
parent d7e32252
Pipeline #6281 failed with stage
in 10 seconds
......@@ -30,3 +30,47 @@ gestionnaire de service, ce service est accessible ainsi :
``` {.php}
$service = $sm->get('ldap_structure_service'); /* @var $service \UnicaenApp\Service\Ldap\Structure */
```
### HostLocalization
Le service HostLocalization a pour but de déterminer si le poste client est situé dans le réseau de l'Etablissement ou non.
En standard, seul un mécanisme de détection pour l'Université de Caen est disponible.
Pour Caen, l'idée est la suivante : la méthode inEtablissement du service renverra true si la machine de l'utilisateur est dans les cas suivants :
* En direct et en interne sans passer par le proxy (pas de redirection)
* En interne, que l'on sort puis on re-rentre en passant par le reverse proxy
* En interne, que l'on passe par le proxy en interne
Sinon false.
Il est cependant possible d'ajouter votre propre mécanisme de localisation.
Attention : en mode développement, sur votre machine et avec l'appli en localhost, vous ne serez pas considéré comme sur le réseau de l'établissement.
#### Récupération et utilisation du service
```php
// Dans une Factory. On privilégiera l'usage de l'alias HostLocalization
$hl = $container->get('HostLocalization');
// Dans votre code métier
// Récupérer $hl
/* @var $hl \UnicaenApp\HostLocalization\HostLocalizationInterface */
if ($hl->inEtablissement()){
var_dump("Vous êtes sur le réseau de l'Unicaen");
}else{
var_dump("Vous n'êtes pas sur le réseau de l'Unicaen");
}
```
Un Trait [HostLocalizationAwareTrait](../src/UnicaenApp/HostLocalization/HostLocalizationAwareTrait.php) est dispo avec un getter et un setter pour pouvoir injecter proprement la dépendance dans votre code.
### Créer votre propre système de localization
Pour utiliser votre propre système de HostLocalization, il vous faut :
Créer une classe implémentant [HostLocalizationInterface](../src/UnicaenApp/HostLocalization/HostLocalizationInterface.php).
La rendre dispo comme service dans votre config du ServiceManager.
Modifier l'alias de service 'HostLocalization' pour le faire pointer sur votre propre classe.
Vous pourrez au besoin vous inspirer de [HostLocalizationUnicaen](../src/UnicaenApp/HostLocalization/HostLocalizationUnicaen.php).
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment