***Xenforo Authentication***
This code allows you to integrate MoinMoin with Xenforo. It authenticates against Xenforo, and automatically creates the user if they do not exist.
if we have a cookie in the format: xf_session=bxxxx27f98162681a2b45150fe36065b
then we look in the xf_session table for session_id = <cookie>.
if the row doesn't exist, deny
if that row exists, it will be like:
session_id = bxxxx27f98162681a2b45150fe36065b
session_data = a:7:{s:12:"sessionStart";i:1342373577;s:2:"ip";b:0;s:7:"user_id";i:1;s:16:"previousActivity";i:1342373565;s:16:"dismissedNotices";a:0:{}s:12:"reportCounts";a:3:{s:5:"total";i:0;s:8:"assigned";i:0;s:13:"lastBuildDate";i:1342373577;}s:16:"moderationCounts";a:2:{s:5:"total";i:0;s:13:"lastBuildDate";i:1342373577;}}
expiry_date = 1342378332
if now() > expiry_date then deny
else we then parse out the user_id;i;1;s;16 bit.
The user_id == 1 from above, we look for in xf_user table:
user_id == 1
username == donbowmanTo use, put the attached file in MoinMoin/auth (the same directory as e.g. http.py, log.py, openidrp.py).
In your wikiconfig.py file, put this line near the top: from MoinMoin.auth.xenforo import XenforoAuth
Then later in the file (after the superuser line), put:
auth = [XenforoAuth(autocreate=True)]
auth_xenforo_verbose = True # or False
auth_xenforo_mysql_host = 'localhost'
auth_xenforo_mysql_db = 'xenforo'
auth_xenforo_mysql_user = 'xenforo'
auth_xenforo_mysql_pass = 'xenforo'
user_autocreate=Trueand fill in the parameters for your mysql db that xenforo is using.
