Forcer la création d'un compte d'un utilisateur inscrit dans LDAP

Re: Forcer la création d'un compte d'un utilisateur inscrit dans LDAP

par Arnaud Saint-Georges,
Nombre de réponses : 0
Deux solutions semblent possibles :

1) Utiliser ponctuellement la procédure Importer des utilisateurs après avoir produit un fichier texte des enseignants (voire des étudiants) à partir de LDAP en utilisant un petit script "maison" (*).

2) Synchroniser régulièrement Moodle par rapport à LDAP, en utilisant/adaptant le script fourni par Moodle : /moodle/auth/ldap/auth_ldap_sync_users.php



(*)
Ci-suit le script que nous utilisions (appel directement à partir du navigateur et enregistrement du résultat affiché). À adapter suivant le schéma LDAP de l'établissement.

<?
header("Content-Type: text/plain");

$BASE_DN_LDAP="dc=ldap, dc=uhb, dc=fr";
$SERVEUR_LDAP = "ldap.uhb.fr";
$USER_LDAP = "cn=appliweb_all_ro,ou=System,dc=ldap,dc=uhb,dc=fr";
$MDP_USER_LDAP = "MotDePasseLDAP";

// Assurez-vous que l'hôte est correct
// et que vous avez un certificat valide
$ldaphost = "ldap://ldap.uhb.fr/";

// Connexion à LDAP
$ldapconn = ldap_connect( $ldaphost )
          or die( "Impossible de se connecter au serveur LDAP {$ldaphost}" );
$ldapbind = ldap_bind($ldapconn, $USER_LDAP, $MDP_USER_LDAP);

$filter="(&(uid=*)(eduPersonAffiliation=faculty))";
$justthese = array( "uid", "sn", "givenname", "mail" );

$sr=ldap_search($ldapconn, "ou=people,".$BASE_DN_LDAP, $filter, $justthese);


$info = ldap_get_entries($ldapconn, $sr);
$max=$info["count"];

echo "username,password,firstname,lastname,email\r\n";

//
function utf8_decode_array(&$array) {
    if( is_array($array) ) {
        array_walk($array, 'utf8_decode_array');
    } else {
        $array = utf8_decode($array);
    }
}
utf8_decode_array($info);

for ( $i = 0 ; $i < $max ; $i++ ) {
    if (!strpos($info[$i]["dn"],"Peopleoff")) {
        echo $info[$i]["uid"][0] . "," . "INCONNU" . ",";
        echo $info[$i]["givenname"][0] . "," . $info[$i]["sn"][0] . ",";
        echo $info[$i]["mail"][0] . "\r\n";
    }
}
?>