#!/bin/bash

. /usr/lib/eole/diagnose.sh
activer_client_ldap=$(CreoleGet activer_client_ldap)

if [ "$activer_client_ldap" = "distant" ];then
    EchoGras "*** Annuaire distant"
    TestService Annuaire $(CreoleGet adresse_ip_ldap):$(CreoleGet ldap_port)
    echo
elif [ "$activer_client_ldap" = "local" ];then
    EchoGras "*** Annuaire local"
    TestService Annuaire $(CreoleGet container_ip_annuaire):389
    printf ".  %${len_pf}s => " "Test de l'annuaire"
    object=$(CreoleGet ldap_base_dn | cut -d',' -f1)
    ldapsearch -LLL -x $object 2>/dev/null | grep -q ^o
    [ $? -ne 0 ] && err="EchoRouge \"Erreur : objet \\\"$object\\\" non trouvé\";"
    # ou=%%nom_academie est fourni par eole-annuaire (mais Zéphir ne l'utilise pas #3719)
    # ou=%%numero_etab et cn=DomainAdmins sont fournis par eole-fichier-primaire (FIXME)
    if [ -f /usr/share/eole/creole/distrib/01_fichier.ldif ];then
        nom_academie=$(CreoleGet nom_academie)
        numero_etab=$(CreoleGet numero_etab)
        ldapsearch -LLL -x ou=$nom_academie 2>/dev/null | grep -q ^ou
        [ $? -ne 0 ] && err="EchoRouge \"Erreur : classe d'objet \\\"ou=$nom_academie\\\" non trouvée\";"
        ldapsearch -LLL -x ou=$numero_etab 2>/dev/null | grep -q ^ou
        [ $? -ne 0 ] && err="${err}EchoRouge \"Erreur : classe d'objet \\\"ou=$numero_etab\\\" non trouvée\";"
        ldapsearch -LLL -x cn=DomainAdmins cn 2>/dev/null | grep -q ^cn
        [ $? -ne 0 ] && err="${err}EchoRouge \"Erreur : groupe \\\"cn=DomainAdmins\\\" non trouvé\";"
    fi
    if [ -z "$err" ];then
        EchoVert "OK"
    else
        EchoRouge "Erreur"
        eval $err
    fi
    echo
fi

exit 0
