Annonce

  •  » Plugins
  •  » fonctionnement de l'authentification et Ldap_plugin

#1 2015-02-23 12:30:29

ricobelo
Membre
2015-02-23
2

fonctionnement de l'authentification et Ldap_plugin

Bonjour,

Je viens d'installer la dernière version de Piwigo (2.7.4) sur mon serveur perso (Linux Debian Wheezy) et souhaitant implémenter l’authentification des utilisateur via mon annuaire LDAP, je me suis endu compte que l'unique plugin pour interfacer PWG avec LDAP n'était plus supporté par son auteur, et incompatible avec la branche actuelle de Piwigo !

J'ai donc commencé à discuter avec l'auteur pour porter son plugin vers la branche 2.7 et ce dernier semble prêt à m'aider, mais partant de zéro sur le dev de PWG, et mon php etant passablement rouillé, je souhaiterais avoir quelques explications sur l'authentification dans Piwigo. J'ai parcouru la documentation en ligne, qui est assez lacunaire, et (me semble-t-il) complètement obsolète.

Je suis donc preneur de toute information utile pour porter ce plugin vers la branche 2.7 de PWG

Merci,

Rico

Hors ligne

#2 2015-02-23 12:51:48

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: fonctionnement de l'authentification et Ldap_plugin

la doc technique est à jour en anglais
http://piwigo.org/doc/doku.php?id=dev:e … ns:plugins

pour ajouter une méthode d'authentification à Piwigo il faut utiliser le trigger try_log_user
voir http://piwigo.org/dev/browser/trunk/inc … .php#L1076 pour l'implémentation par défaut

Code:

add_event_handler('try_log_user', 'try_log_ldap', EVENT_PRIORITY_NEUTRAL-40);

function try_log_ldap($success, $username, $password, $remember_me)
{
  if ($success===true)
  {
    return true;
  }

  if (/* login ldap success */) // <= logique LDAP ici
  {
    log_user($user_id, $remember_me);
    trigger_notify('login_success', stripslashes($username));
    return true;
  }

  trigger_notify('login_failure', stripslashes($username));
  return false;
}

les méthodes de login se font les unes après les autres jusqu’à ce que l'une d'entre elles renvoie true
EVENT_PRIORITY_NEUTRAL-40 permet de passer avant le login par défaut

donc si vous voulez désactiver totalement le login normal vous pouvez renvoyer true même en cas d'échec (à vous de gérer les messages d'erreur dans ce cas)

voir par exemple Social Connect qui bloque la méthode classique si le nom d'utilisateur correspond à un utilisateur OAuth
[Github] Piwigo-Social-Connect file include/public_events.inc.php@L22

Hors ligne

#3 2015-02-23 15:20:49

ricobelo
Membre
2015-02-23
2

Re: fonctionnement de l'authentification et Ldap_plugin

Bon, j'ai déjà identifié le probléme qui empêche le plugin de fonctionner correctement avec la branche 2.7 : la méthode "trigger_action" n'est visiblement plus utilisée... le simple fait de commenter les 4 appels à cette fonction dans main.inc.php suffit à rendre le plugin à nouveau fonctionnel !

Reste à voir ce que faisait cette fonction(logging ?), et par quoi la remplacer...

Hors ligne

#4 2015-02-23 15:23:53

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: fonctionnement de l'authentification et Ldap_plugin

Hors ligne

  •  » Plugins
  •  » fonctionnement de l'authentification et Ldap_plugin

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact