This is a description of how to integrate the user authentication and group facilities in IPB (Invision Power Board) with dokuWiki.
I search yet how to connect AUTOMATICALY the user to IPB in Dokuwiki !!!
A good start might be the source of the Coppermine Gallery. The Bridging works fine with IPB 2.x.x. Some say it won't but I have tried it bymyself and it works fine. http://documentation.coppermine-gallery.net/bridging.htm
An issue is the displayed names and login names. Not sure if it is possible to prevent DokuWiki from showing the loginname (user) anywhere and show just the name.
Facts
The code below is best placed in conf/local.php, so that it will be easy to upgrade later.
We use IPB username as a replacement for name since IPB does not provide us with any information about real names (first name, last name).
$conf['openregister']= 0; //Should users to be allowed to register? $conf['useacl'] = 1; //Use Access Control Lists to restrict access? $conf['authtype'] = 'mysql'; $conf['auth']['mysql']['forwardClearPass'] = 1; // handles password encryption inside the sql query $conf['auth']['mysql']['server'] = '<host>'; // mySQL host, usually localhost $conf['auth']['mysql']['user'] = '<database user>'; // mySQL database user for the database that is used by IPB $conf['auth']['mysql']['password'] = '<database password>'; // mySQL database password for the database that is used by IPB $conf['auth']['mysql']['database'] = '<database>'; // mySQL database that is used by IPB $conf['auth']['mysql']['passcheck']= "SELECT name AS 'login' FROM ibf_members, ibf_members_converge WHERE name='%u' AND converge_pass_hash = MD5(CONCAT(MD5(converge_pass_salt),MD5('%p')))"; $conf['auth']['mysql']['userinfo'] = "SELECT name, email AS mail FROM ibf_members WHERE name='%u'"; $conf['auth']['mysql']['groups'] = "SELECT mgroup as `group` FROM ibf_members WHERE ibf_members.name='%u'";
Use following queries for development version of DokuWiki:
$conf['auth']['mysql']['checkPass']= "SELECT name AS 'login' FROM ibf_members, ibf_members_converge WHERE name='%{user}' AND converge_pass_hash = MD5(CONCAT(MD5(converge_pass_salt),MD5('%{pass}')))"; $conf['auth']['mysql']['getUserInfo'] = "SELECT name, email AS mail FROM ibf_members WHERE name='%{user}'"; $conf['auth']['mysql']['getGroups'] = "SELECT mgroup as `group` FROM ibf_members WHERE ibf_members.name='%{user}'";
If it doesn't work, have a look to mysql_invision
How to configure the acl.auth is described in acl. The group numbers are the ones that you have created in IPB.
An example :
# Access Control # # none 0 # read 1 # edit 2 # create 4 # upload 8 # Groupes existant sous IPB # @1 Validating # @2 Invités # @3 Membres # @4 Admin Principal # @5 Bannis # @6 Modérateur Principal # @7 Donateur # @8 Site Admin # @9 Modérateurs # @10 Wikistes # @11 Traducteurs # @12 Equipe de Dev * @ALL 1 * @3 255 * @4 255 * @6 255 * @7 255 * @8 255 * @9 255 * @10 255 * @11 255 * @12 255 sommaire @ALL 1 sommaire @4 255 sommaire @6 255 sommaire @8 255 sommaire @9 255 sommaire @10 255 menu @ALL 1 menu @4 255 menu @6 255 menu @8 255 menu @9 255 menu @10 255