Je viens de m'installer un shaarli. Un partage de liens basique.

Le but c'est de conserver des liens et de pouvoir en importer facilement quand je veux du web.

Le truc est simplissime et c'est très bien. On ne demande pas une usine à gaz. Juste un stock de liens à conserver sur le long terme et à pouvoir retrouver n'importe quand !

Et il faut un mot de passe ! C'est la faille. Car ça signifiera que je l'oublierais très probablement !

Donc, la première chose que j'ai fais (à nouveau) c'est de customiser le logiciel pour remplacer le mot de passe par une authentification ldap. Je suis en train de faire ça avec tout maintenant. Je fous de l'auth ldap partout…

Je vais vous montrer les trois lignes de code ajoutées. Ça pourrait vous être utile si vous le voulez vous aussi.

Ouvrez dans un éditeur texte le fichier index.php, et cherchez la fonction check_auth.

// Check that user/password is correct. function check_auth($login,$password) {    
#$hash = sha1($password.$login.$GLOBALS['salt']);    
#if ($login==$GLOBALS['login'] && $hash==$GLOBALS['hash'])`

\$con = @ldap\_connect('ldap://localhost/');  
@ldap\_set\_option(\$con, LDAP\_OPT\_PROTOCOL\_VERSION, 3);  
if
(@ldap\_bind(\$con,'uid='.\$login.',ou=users,dc=22decembre,dc=eu',\$password))  
{  

}  
logm('Login failed for user '.\$login);  
return False;  
}

Voila, vous avez vu ? J'ai commenté deux lignes en haut de la fonction, ajouté mes trois lignes à moi, et voila ! Ce que ces trois lignes font, c'est autoriser toutes les personnes avec un mot de passe valide dans la branche users de mon annuaire ldap à rentrer dans l'admin. C'est tout.

Commentez les deux premières lignes de la fonction check_auth, ajouter les trois miennes, adapter à votre conf ldap, et c'est bon.