Projet

Général

Profil

Synchronisation du compte LDAP dans la base Abuledu SF

Lorsque l'utilisateur se connecte sur le serveur sf, l'utilisateur sera ajouté et ses permissions seront mise à jour.

Fichier de synchronisation Ldap
lib/ldapsynch.class.php

Fichier de validation de l'utilisateur
plugins/sfDoctrineGuardPlugin/lib/validator/sfGuardValidatorUser.class.php

Démarche de connexion:
  • Si l'utilisateur utilise un domaine dont les paramètres correspondent à un serveur LDAP
  • Alors on récupère l'utilisateur dans la base SF en fonction de son domaine et de son login
  • Si l'utilisateur n'existe pas on le créé (sans enregistrer)
  • Vérifie le mot de passe et l'utilisateur dans la base LDAP => Sort si KO
  • On récupère les informations de l'utilisateur et enregistre s'il n'existe pas
  • Synchronise l'utilisateur dans tous les cas
    1. Ajoute les droits administrateur du domaine ou supprime si pas admin
    2. Ajoute les droits de responsable ou supprime si pas resp (cas de l'enseignant)
    3. Création des groupes de l'utilisateur dans la base SF (détache l'utilisateur dont il ne fait plus partie)
    4. Création des groupes de classe en fonction de l'utilisateur (vérifie la description du groupe qu'elle contient : horizon-classe)

Ajoute l'utilisateur au groupe approprié

# enseignants
# eleves
# responsable-legal
# user-ent
# Domain Admins

Fichier de configuration de la synchronisation LDAP
apps/serveursf/config/app.yml et
apps/backabuledu/config/app.yml

  ldap:
    account_prefix      :  "uid="             # Préfixe pour la connexion utilisateur
    account_suffix      :  ",ou=utilisateurs" 
    base_dn             :  "dc="              # Préfixe Nom de la base
    resp_group: resp-*                        # Liste de tous les groupes commencant par resp- recherche un responsable dans la base LDAP
    admin_group: 'Domain Admins'              # Nom du groupe contenant l'administrateur du domaine dans la base LDAP
    eleves: 'eleves'                          # Nom du groupe élèves
    prof: 'prof'                              # Nom du groupe professeurs
    parents: 'parents'                        # Nom du groupe parents
    permission_resp: resp                     # Nom du groupe responsable dans la base SF
    permission_admin_domaine: 'admin domaine' # Nom du groupe admin domaine dans la base SF

Redmine Appliance - Powered by TurnKey Linux