{{:local:logo-apl.png?nolink|}} ===== API Supplémentaire pour la lecture LDAP ===== ===== Synchronisation LDAP totale pour les ENTs ===== Cette documentation donne quelques détails sur les librairies additionnelles de lecture des entités LDAP par le biais de la configuration du synchroniseur ENT. Le synchroniseur apporte des librairies additionnelles spécifiques pour la lecture de données LDAP correspondant à chaque entité synchronisée. La construction des librairies est fortement inspirée sur la librairie standard ''/lib/ldaplib.php'' et peut s'y appuyer le cas échéant. La documentation suivante permettra à des développeurs d'invoquer directement les API de lecture, plutôt que de redévelopper leurs propres connecteur. ==== Préalables ==== === Obtenir une connexion LDAP === Toute manoeuvre de l'API suppose de disposer préalablement d'une connexion ouverte sur le LDAP avec un utilisateur de lecture. La définition de la connexion LDAP utilisée est celle du module auth/ldap, **même si celui-ci n'est pas utilisé ou activé dans moodle**. Le code suivant permet d'obtenir une instance de connexion ouverte : // Get ldap params from real ldap plugin. $ldapauth = get_auth_plugin('ldap'); $ldapconnection = $ldapauth->ldap_connect(); A la fin de la session il est recommandé de clôturer le lien LDAP : $ldapauth->ldap_close(true); ==== Entité cours ===== === Obtention d'un DN de cours === En supposant que les cours sont enregistrés comme des groupes LDAP, ils disposent dans l'annuaire d'un DN unique, complètement qualifié. La correspondance entre moodle et le LDAP s'effectue par le rapprochement du numéro d'identification du cours (moodle) avec l'attribut d'identifiant de cours configuré dans le synchroniseur ENT (côté ldap) * **Position :** ''/local/ent_installer/ldap/ldaplib_courses.php'' * **Fonction :** ''local_ent_installer_find_course_dn($ldapconnection, $extcoursedn)'' * **Paramètres :** * ''$ldapconnection'' : Une connection ldap ouverte. * ''$extcoursedn'' : L'identifiant de jointure entre moodle et LDAP (le numéro d'identification du cours) === Préformatage de l'identifiant de cours === Il peut arriver dans certains cas que la forme de l'identifiant de jointure de cours ne soit pas la même entre le LDAP et moodle (suffixes ou préfixes ou autre transformation). Il peut donc être nécessaire de convertir le numéro d'identification connu de moodle vers sa forme LDAP. Le synchroniseur d'ENT LDAP dispose de paramètres pour faire cette conversion : Le paramètre de confguration 'course_id_pattern' définit un motif à remplacement paramétrable pour préformer l'identifiant à partir de la valeur moodle du numéro d'identification interne du cours (%CID%) et éventuellement d'un numéro d'établissement pour les annuaires multi-tenants (%ID%). $config = get_config('local_ent_installer'); $courseldapidentifier = $config->course_id_pattern; $courseldapidentifier = str_replace('%CID%', $COURSE->idnumber, $courseldapidentifier); $courseldapidentifier = str_replace('%ID%', $config->institution_id, $courseldapidentifier); Synopsys : * on récupère la configuration du synchroniseur * on charge le pattern à remplacement * on injecte la valeur de l'IDNumber local * on injecte la valeur de l'identifiant d'établissement (optionnel) $courseldapidentifier est l'identifiant de cours transposé LDAP. === Obtention d'une description LDAP du cours === * **Position**: * **Fonction1** : ''local_ent_installer_get_courseinfo($ldapauth, $courseidentifier, $extracourseattributes, $options) '' * **Paramètres :** * ''$ldapauth'' : Une instance de plugin d'authenfication LDAP amorcée. * ''$courseidentifier'' : L'identifiant de jointure entre moodle et LDAP (le numéro d'identification du cours) * ''$extracourseattributes'' : un tableau associatif donnant les paires 'attribut de cours' => 'attribut ldap' à ajouter à l'ensemble d'atributs par défaut2 (ATTENTION !! Tous les noms d'attributs LDAP doivent être minusculisés). **Note 2** : Fonction alternative : ''local_ent_installer_get_courseinfo_asobj'', même signature, pour recevoir la description de cours comme objet et non comme tableau. **Note 2** : La récupération d'une entité cours récupère par défaut les attributs suivants : $courseattributes = array( 'fullname' => core_text::strtolower($config->course_fullname_attribute), 'shortname' => core_text::strtolower($config->course_shortname_attribute), 'summary' => core_text::strtolower($config->course_summary_attribute), 'idnumber' => core_text::strtolower($config->course_idnumber_attribute), 'category' => core_text::strtolower($config->course_category_attribute), 'teachers' => core_text::strtolower($config->course_teachers_attribute), ); Les attributs par défaut sont mappés par la configuration du synchroniseur ENT. ------------------ [[:local:entinstaller:technique|Revenir à l'index du guide technique]] - [[:local:entinstaller|Revenir à l'index du composant]] - [[:plugins|Retour à l'index des plugins]] - [[:start|Revenir au catalogue]]