Table des matières

(en cours de rédaction)

Intégration à Dokuwiki

Introduction

Dokuwiki est un wiki fonctionnant sans base de données. Il permet cependant d'identifier des utilisateurs qui eux sont enregistrés dans une base de données. C'est ce que nous intéresse ici, et c'est ce qui rend l'intégration à SMF très simple.

Mise en oeuvre

Remarques préalables

Plusieurs remarques avant de débuter :

Modification des fichiers

Je pars du principe que vous connaissez un minimum le système d'ACL de Dokuwiki. Sinon, lisez cette page ;-)

Ouvrez ou créez le fichier /conf/local.php et ajoutez-y les lignes suivantes :

// Activation de la gestion des utilisateurs et des permissions
$conf['useacl'] = 1;
// Interdiction de s'inscrire au wiki (logique, puisqu'on souhaite utiliser les utilisateurs SMF)
$conf['openregister'] = 0;
// Le système d'identification repose sur mysql
$conf['authtype'] = 'mysql';
 
// Personnalisez les lignes suivantes selon la configuration de votre serveur mysql
$conf['auth']['mysql']['server'] = 'localhost'; // Adresse du serveur mysql
$conf['auth']['mysql']['user'] = 'utilisateur'; // Utilisateur de la base de données
$conf['auth']['mysql']['password'] = 'motdepasse'; // Mot de passe de l'utilisateur
$conf['auth']['mysql']['database'] = 'basededonnées'; // Nom de la base de données contenant les tables SMF
// Fin des lignes à personnaliser
 
$conf['auth']['mysql']['encryptPass'] = 1;
$conf['auth']['mysql']['getUserID']	= "SELECT ID_MEMBER AS id FROM smf_members WHERE memberName='%u'";
$conf['auth']['mysql']['checkPass']	= "SELECT passwd AS pass FROM smf_members WHERE passwd=sha1(concat(lower('%u'), '%p'))";
$conf['auth']['mysql']['getGroups']	= "SELECT smf_membergroups.groupName as 'group' FROM smf_membergroups, smf_members WHERE smf_members.ID_GROUP = smf_membergroups.ID_GROUP AND smf_members.memberName='%u'";
$conf['auth']['mysql']['getUserInfo']	= "SELECT passwd AS pass, memberName AS name, emailAddress AS mail FROM smf_members WHERE memberName='%u'";

C'est tout !