Skip to content
Snippets Groups Projects
Select Git revision
  • php84
  • master default protected
  • 6.x
  • release_6.2.0
  • modif_maintenance_phtml
  • 6.0.x
  • detached2
  • detached
  • php82
  • feature_SearchAndSelectFilter
  • 5.x
  • 4.x
  • 7.2.0
  • 6.2.0
  • 7.1.0
  • 7.0.0
  • 1.1.1
  • 6.1.7
  • 6.1.6
  • 6.1.5
  • 6.0.16
  • 6.0.15
  • 6.1.4
  • 6.0.14
  • 6.1.3
  • 6.0.13
  • 6.1.2
  • 6.0.12
  • 6.1.1
  • 6.1.0
  • 6.0.11
  • 6.0.10
32 results

Services.md

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.

    Services

    LDAP

    Group

    Service d'accès aux groupes de l'annuaire LDAP. Avec le gestionnaire de service, ce service est accessible ainsi :

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

    People

    Service d'accès aux individus de l'annuaire LDAP. Avec le gestionnaire de service, ce service est accessible ainsi :

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

    Structure

    Service d'accès aux structures de l'annuaire LDAP. Avec le gestionnaire de service, ce service est accessible ainsi :

    $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

    
    // 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 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. 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 HostLocalization.