Blog Authentication and User Management

I’ve been getting some (good) feedback on a real problem. There are two blogs, and the main site, (as well as DiyShare coming along) all of which have a separate user database. Yeah, I know this isn’t good. I’m fully aware of the real pain that’s involved with something like this. This is not a new problem and not unique to this project. Any project that has multiple web properties built on desparate systems runs into this eventually.

I do have a solution. All wordpress installations will start sharing the master user database that Diysearch.com uses. The solution comes in the form of a wordpress plug-in. Wordpress has provided a way to overload most of the user functions (authenticating, fetching). I have never written a wordpress plug-in before but it looks pretty straight forward, and since I am (very) well versed in PHP, it won’t be an enormous undertaking. What it will take is time.

This frustrates me. I would rather spend time working on more interesting problems (like DiyShare) but I have to take time away from that (important) effort to work on this, in that this is a priority (systems that are in production and are behaving in sub-optimal conditions get the priority). This problem is mostly a nuts-and-bolts problem, in that I have to overload about a half-dozen functions in wordpress with functionality I wrote for Diysearch (the user authentication and management functions). Again, thankfully I was smart when I designed Diysearch, so each piece of functionality is wrapped in a class that can be invoked from anywhere.

The nagging difficulty will be deciphering wordpress’s code to figure out how to make the user objects. This is not documented (I shouldn’t be surprised, open source projects always are lacking here, well that and security, but I digress). So, I’m going to have to figure out what variables/keys to add so that permissions, and other user attributes get set properly in the wordpress system, with data coming from the Diysearch user database.

See? I told you, not terribly interesting, but it is important.