I have alluded to this in another post, but I wanted to make a formal request for the Doku-Vanilla integration, where Doku pulls from Vanilla's user table.
The whole things seems really simple, but I'm not good enough with the language to be confident about it. The instructions for doing this, and a few examples, are to be found at http://wiki.splitbrain.org/wiki:auth:mysql
Someone who knew Vanilla's inner workings could probably get this done in no time.
I've got my dokuwiki set up on flat files - not on mysql, so the integration there is kind of a pain, but I personally wouldn't mind seeing this either if someone is interested. I'm just too busy to do it myself at the moment.
Something must've happened, or I'm confused about my recollection of applying. Applied again but the server timed out during the process so I'm not sure it was successful.
All doku auth queries got mapped to lum_* tables. The only things to note of significance were needed to alias the lum_* columns back to what was expected by doku and dropping any join referring to a usersgroups association table.
Great! I have the authenication working. My system automatically created the lum_user and lum_role as LUM_User and LUM_Role, so all of these had to have the correct capitalization before anything would work. That might be something to look out for if anyone else is doing this.
Also, I have the ACL feature activated, which gives the admin. some control over various aspects of the wiki. How would you get the authenication to give me admin. and give the user only member status? As of now, my account only has basic access when I sign in to the wiki.
Got the ACL thing figured out: You can put your user name in $conf['superuser'] = 'NameHere'; in dokuwiki.php in the conf folder to give yourself admin. access, instead of the generic @admin.
The only problem I have now is the basic member does not have any privileges.
Unfortunately, Piper, I can't help much, I just spent a little time on it (mysql.conf.php) to get the basic authentication to pull from my vanilla install and haven't had much time to mess around with it since.
Thanks for getting the mysql.conf.php file going! I am glad to have it!
I figured out the privilege problem. You have to go into the acl.auth.php in the conf folder and change User to Member on any of the sections that you have limited to just users. Since Vanilla calls it users members when they are activated, Doku needs to know this since it's still looking for "user" when denying or granting access.
$conf['auth']['mysql']['checkPass'] = "SELECT password as pass FROM LUM_User WHERE name='%{user}'";
$conf['auth']['mysql']['getUserInfo'] = "SELECT password as pass, name, email AS mail FROM LUM_User WHERE name='%{user}'";
$conf['auth']['mysql']['getGroups'] = "SELECT LUM_Role.Name as `group` FROM LUM_Role join LUM_User on LUM_User.RoleID = LUM_Role.RoleID where LUM_User.name like '%{user}'";
$conf['auth']['mysql']['getUsers'] = "SELECT DISTINCT name AS user FROM LUM_User AS u";
$conf['auth']['mysql']['FilterName'] = "u.name LIKE '%{name}'"; $conf['auth']['mysql']['FilterLogin'] = "u.name LIKE '%{name}'"; $conf['auth']['mysql']['FilterEmail'] = "u.email LIKE '%{email}'"; $conf['auth']['mysql']['FilterGroup'] = "g.name LIKE '%{group}'"; $conf['auth']['mysql']['SortOrder'] = "ORDER BY u.name";
$conf['auth']['mysql']['getUserID'] = "SELECT userid AS id FROM LUM_User WHERE name='%{user}'";
Then setup the acl.auth.php with the users "Group" info from Vanilla.
With this configuration, users create their login via Vanilla, and Doku uses the LUM_User table to authenticate, and provide security clearance.
The only issue I have encountered with this is it doesn't like Group names with spaces.. and ALL user account creation needs to be through Vanilla