In the typical 0_db.py file I'm setting
auth.settings.register_onaccept=[complete_login]
I also define complete_login there and it raises an
HTTP(200)
for a redirect.
Now, in my "user" controller I have:
def register():
...
register_form = SQLFORM.factory( db.auth_user, ... )
...
if register_form.process(formname='register-form', onvalidation=
validate_registration).accepted:
# create user
user_id = db.auth_user.insert(
first_name='',
last_name='',
email=register_form.vars.email,
... other stuff ...
password=register_form.vars.password,
)
... do a lot of group and permission stuff ...
# auto log them in
from gluon.storage import Storage, Settings, Messages
session.auth = Storage(user=db.auth_user[user_id], last_visit=
request.now,
expiration=auth.settings.expiration)
elif register_form.errors:
response.flash = T('Please correct error in registration form')
return dict(register_form=register_form)
The problem is, the
complete_login()
function is not getting executed after register() returns. Why not?
FWIW, I also have auth.settings.login_onaccept set as well, but it's
function isn't getting executed either.