Services.md 2.73 KB
Newer Older
1
2
3
4
5
6
7
8
Services
========

LDAP
----

### Group

9
Service d\'accès aux groupes de l\'annuaire LDAP. Avec le gestionnaire de service, ce service est accessible ainsi :
10
11
12
13
14
15
16

``` {.php}
$service = $sm->get('ldap_group_service'); /* @var $service \UnicaenApp\Service\Ldap\Group */
```

### People

17
Service d\'accès aux individus de l\'annuaire LDAP. Avec le gestionnaire de service, ce service est accessible ainsi :
18
19
20
21
22
23
24

``` {.php}
$service = $sm->get('ldap_people_service'); /* @var $service \UnicaenApp\Service\Ldap\People */
```

### Structure

25
Service d\'accès aux structures de l\'annuaire LDAP. Avec le gestionnaire de service, ce service est accessible ainsi :
26
27
28
29

``` {.php}
$service = $sm->get('ldap_structure_service'); /* @var $service \UnicaenApp\Service\Ldap\Structure */
```
30
31
32
33
34

### 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.

35
36
37
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 :

38
39
* 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
40
* En interne, que l'on passe par le proxy en interne Sinon false.
41
42
43

Il est cependant possible d'ajouter votre propre mécanisme de localisation.

44
45
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.
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

#### 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");
}
```

64
65
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.
66
67
68
69
70
71

### 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).
72
73
La rendre dispo comme service dans votre config du ServiceManager. Modifier l'alias de service 'HostLocalization' pour le
faire pointer sur votre propre classe.
74

75
Vous pourrez au besoin vous inspirer de [HostLocalization](../src/UnicaenApp/HostLocalization/HostLocalization.php).