I think I may have figured it out. Only done very limited testing but it does seem to do the trick.
I basically added 2 lines to set the autologin session variable in addition to saving it to the database. Not sure why this wasn't put in by the original script's author, and I am by no means a python guru or expert on the inner workings of the OVPN auth process so use this with caution but - here it is:
Original script (start at line 33)
# Is the autologin bit set?
if ''.join(info['radius_reply'].get('Callback-Number'))[1] == '0':
print "*** RADIUS-Reply: Overrride found for prop_autologin, setting to false..."
proplist_save['prop_autologin'] = 'false'
elif ''.join(info['radius_reply'].get('Callback-Number'))[1] == '1':
print "*** RADIUS-Reply: Overrride found for prop_autologin, setting to true..."
proplist_save['prop_autologin'] = 'true'
Modified:
# Is the autologin bit set?
if ''.join(info['radius_reply'].get('Callback-Number'))[1] == '0':
print "*** RADIUS-Reply: Overrride found for prop_autologin, setting to false..."
authret['proplist']['prop_autologin'] = 'false'
proplist_save['prop_autologin'] = 'false'
elif ''.join(info['radius_reply'].get('Callback-Number'))[1] == '1':
print "*** RADIUS-Reply: Overrride found for prop_autologin, setting to true..."
authret['proplist']['prop_autologin'] = 'true'
proplist_save['prop_autologin'] = 'true'
Modified AD.py script attached.