Utilisation module LDAP Integration

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

j'utilise le module LDAP Integration est cela fonctionne bien mais j'ai une question. est il possible de récupérer le nom et prénom de l'utilisateur au lieu de son login? En effet je voudrais crée une page qui apres connexion affiche "Bonjour toto durant" et non "Bonjour login" car quand c'est un login du style 2564123 c'est pas très pro d'afficher "Bonjour 2564123".
Une idée?
Merci

Version de Drupal : 

Oui, c'est faisable car j'ai fait la même chose dans un intranet.
Pour cela, j'ai activé les modules ldap_data et profile.
J'ai créé un attribut profile_cn pour le profil, et mappé le cn de la personne sur l'attribut du profile (que j'ai appelé profile_cn) dans le paramétrage de ldap_data.

Ensuite, j'ai dû modifier le code PHP pour afficher l'attribut (dans user.module) ; dans mon cas c'était dans l'entête du menu navigation :

// Modif
// Get the CN of user:
   global $user;
   profile_load_profile($user);
   $fullname = $user->profile_cn;

   if ( $fullname != "" ) {
        $block['subject'] = $user->uid ? check_plain($fullname) : t('Navigation');
   }
   else
   {
        $block['subject'] = $user->uid ? check_plain($user->name) : t('Navigation');
   }
// Fin Modif

Merci vincent59 pour les infos.

Dans le fichier user.module c'est a quel niveau que je dois modifié le fichier? Je suis un peu novice en la matière, sachant que je souhaite afficher cela en en tête de navigation comme toi et sur une page qui indique 'bonjour et le cn'.

Merci encore

Pour la navigation, tu recherche Navigation dans le code PHP.
Pour l'autre page, je pense qu'il faut créer un template spécial pour la page qui affiche Bonjour ou adapter le page.tpl.php existant de ton thème

dans le fichier user.module j'ai trouvé ce bloc avec navigation :

/**
* Implementation of hook_block().
*/
function user_block($op = 'list', $delta = 0, $edit = array()) {
  global $user;

  if ($op == 'list') {
    $blocks[0]['info'] = t('User login');
    // Not worth caching.
    $blocks[0]['cache'] = BLOCK_NO_CACHE;

    $blocks[1]['info'] = t('Navigation');
    // Menu blocks can't be cached because each menu item can have
    // a custom access callback. menu.inc manages its own caching.
    $blocks[1]['cache'] = BLOCK_NO_CACHE;

    $blocks[2]['info'] = t('Who\'s new');

    // Too dynamic to cache.
    $blocks[3]['info'] = t('Who\'s online');
    $blocks[3]['cache'] = BLOCK_NO_CACHE;
    return $blocks;
  }
  else if ($op == 'configure' && $delta == 2) {
    $form['user_block_whois_new_count'] = array(
      '#type' => 'select',
      '#title' => t('Number of users to display'),
      '#default_value' => variable_get('user_block_whois_new_count', 5),
      '#options' => drupal_map_assoc(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)),
    );
    return $form;

etc...

je dois tout remplacé?

Merci

Il faut descendre un peu plus loin dans le code (ligne 737 en Drupal 6.14) :

      case 1:
        if ($menu = menu_tree()) {
          $block['subject'] = $user->uid ? check_plain($user->name) : t('Navigation');
          $block['content'] = $menu;
        }

et remplacer le check_plain($user->name) par le $fullname calculé avec le profile.
Ce qui donnerait :

      case 1:
        if ($menu = menu_tree()) {
// ------ Modif ------
// Get the CN of user:
            global $user;
   profile_load_profile($user);
            $fullname = $user->profile_cn;

            if ( $fullname != "" ) {
                $block['subject'] = $user->uid ? check_plain($fullname) : t('Navigation');
            }
            else
            {
                $block['subject'] = $user->uid ? check_plain($user->name) : t('Navigation');
            }
// ----- Fin Modif
          $block['content'] = $menu;

Merci super sympa. Cela ne fonctionne toujours pas. En faites j'ai comme l'impression que les datas ne sont pas récuperées et pourtant j'ai bien mappé profil_username avec cn. Curieux bon je cherches.

Merci en tout cas

Bon apparement voila ce que j'ai dans les logs :

User load: user toto data could not be read in the LDAP directory

Je ne vois pas a quel niveau se situe le problème car je me connecte bien a LDAP avec toto et son pass sans problème.

Merci

Alors là je ne vois pas trop.
Si l'authentification fonctionne, c'est que le lien avec le LDAP est OK.

Moi pour la partie paramétrage LDAP data, j'ai juste :

  • Mapping lecture seule
  • profile_cn (champ du profile) mappé sur cn (attribut LDAP)

Je n'ai pas modifié le fichier de conf

modules/ldap_integration/ldap_integration/ldapdata.conf.php

Merci vincentt59 c'est résolu.

En faites cela venait de ma conf qui n'était pas bonne dans le fichier de conf de openldap (slapd.conf).

Merci a toi pour tes infos grâce auxquelles j'ai pu y arriver.