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";
}
}
?>
Re: Forcer la création d'un compte d'un utilisateur inscrit dans LDAP
par Arnaud Saint-Georges,
Nombre de réponses : 0