<?xml version="1.0" encoding="utf-8"?>

<creole>
    <files>
        <file name='/etc/ldap.conf'/>
        <file name='/etc/nsswitch.conf.default'/>
        <file filelist='ldap_nss_active' name='/etc/nsswitch.conf.noldap' rm='True'/>
        <file filelist='client_ldap' rm='True' name='/etc/ldap/ldap.conf'/>
    </files>

    <variables>
        <family name='services'>
            <!--activer_client_ldap peut être non/local/distant-->
            <variable name='activer_client_ldap' type='string' description="Activer le client LDAP">
                <value>distant</value>
            </variable>
        </family>
        <family name="annuaire" icon='book'>
            <variable name='adresse_ip_ldap' type='domain' description="Adresse IP ou nom DNS du serveur LDAP" mandatory='True'/>
            <variable name='ldap_base_dn' type='string' description="Base DN de l'annuaire">
                <value>o=gouv,c=fr</value>
            </variable>
            <variable name='ldap_tls' type='oui/non' description="Activer le support de TLS">
                <value>non</value>
            </variable>
            <variable name='ldap_nss' type='oui/non' description="Ajouter les utilisateurs LDAP aux utilisateurs locaux">
                <value>non</value>
            </variable>
            <variable name='ldap_port' type='port' description='Port du serveur LDAP' mandatory='True'>
                <value>389</value>
            </variable>
            <variable name='ldap_reader' type='string' description='Utilisateur de lecture des comptes LDAP'/>
            <variable name='ldap_reader_passfile' type='filename' description="Fichier de mot de passe de l'utilisateur de lecture">
                <value>/root/.reader</value>
            </variable>
            <variable name='activer_admin_passfile' type='oui/non' description="Définir le mot de passe admin de LDAP dans un fichier">
                <value>non</value>
            </variable>
            <variable name='ldap_admin_passfile' type='filename' description="Fichier de mot de passe de l'utilisateur admin" mode='expert'>
                <value>/root/.writer</value>
            </variable>
            <variable name='ldap_match_attribute' type='string' description="Attribut de recherche des utilisateurs" mode='expert'>
                <value>uid</value>
            </variable>
            <variable name='ldap_member_group_attribute' type='string' description="Attribut des utilisateurs d'un groupe" mode='expert'>
                <value>memberUid</value>
            </variable>
            <variable name='ldap_filter_user_class' type='string' description="Filtre d'utilisateurs" mode='expert'>
                <value>person</value>
            </variable>
            <variable name='ldap_filter_user' type='string' description="Filtre d'utilisateurs" mode='expert'/>
            <variable name='ldap_filter_group_class' type='string' description="Filtre de groupes" mode='expert'>
                <value>posixGroup</value>
            </variable>
            <variable name='ldap_filter_group' type='string' description="Filtre de groupes" mode='expert'/>
            <variable name='ldap_dntree_user' type='string' description="DN racine de l'arbre utilisateurs" mode='expert'/>
            <variable name='ldap_dntree_group' type='string' description="DN racine de l'arbre groupes" mode='expert'/>
            <variable name='ldap_fill_displayname' type='string' description="Champ 'nom d'affichage' de l'utilisateur" mode='expert'>
                <value>displayName</value>
            </variable>
            <variable name='ldap_fill_mail' type='string' description="Champ 'mail' de l'utilisateur" mode='expert'>
                <value>mail</value>
            </variable>
            <variable name='ldap_fill_maildir' type='string' description="Champ 'maildir' de l'utilisateur" mode='expert'>
                <value>maildir</value>
            </variable>
            <variable name='ldap_fill_fonction' type='string' description="Champ 'fonction' de l'utilisateur" mode='expert'/>
            <variable name='ldap_fill_categorie' type='string' description="Champ 'categorie' de l'utilisateur" mode='expert'/>
            <variable name='ldap_fill_rne' type='string' description="Champ 'rne' de l'utilisateur" mode='expert'/>
            <variable name='ldap_fill_fredurne' type='string' description="Champ 'fredurne' de l'utilisateur" mode='expert'/>
            <variable name='ldap_fill_displaygroup' type='string' description="Champ 'nom d'affichage' du groupe" mode='expert'>
                <value>cn</value>
            </variable>
        </family>
    </variables>

    <constraints>
        <fill name='concat' target='ldap_filter_user'>
            <param>objectClass=</param>
            <param type='eole'>ldap_filter_user_class</param>
        </fill>
        <fill name='concat' target='ldap_filter_group'>
            <param>objectClass=</param>
            <param type='eole'>ldap_filter_group_class</param>
        </fill>
        <check name='valid_regexp' target='ldap_base_dn'>
            <param>^o=|^dc=|^ou=</param>
            <param name='err_msg'>La racine doit débuter par une organisation (o=), une composante du domaine (dc=) ou une unité organisationnelle (ou=)</param>
        </check>
        <fill name='concat' target='ldap_reader'>
            <param>cn=reader,</param>
            <param type='eole'>ldap_base_dn</param>
        </fill>
        <condition name='disabled_if_in' source='activer_client_ldap'>
            <param>non</param>
            <target type='family'>annuaire</target>
            <target type='filelist'>client_ldap</target>
        </condition>
        <condition name='disabled_if_in' source='ldap_nss'>
            <param>non</param>
            <target type='filelist'>ldap_nss_active</target>
        </condition>
        <check name='valid_enum' target='activer_client_ldap'>
            <param>['non', 'distant']</param>
        </check>
    </constraints>

    <help>
        <family name='annuaire'>Configuration générale de l'annuaire</family>
        <variable name='adresse_ip_ldap'>Nom de domaine ou l'adresse IP de l'annuaire distant</variable>
    </help>

</creole>
<!-- vim: ts=4 sw=4 expandtab
-->
