I'm building an administrative interface where only the admin can register new users. Upon registering a new user, the system will email login and initial temporary password to user. I'm using the auth_user table but with a customized form and create action. Is there a way to capture the password before it's encrypted?
Obviously, I can have the admin enter the password twice, the second time as a string, but that's a little user hostile. I could make an ajax call that would copy it behind the scenes, but that's extra work. What's the easy way? def create(): """adds a new user to the auth_user database""" response.sub_title = T('Add New User') form = SQLFORM.factory( db.auth_user.username, db.auth_user.password, db.auth_user.email, ) # password not available here if form.process(onvalidation=get_password).accepted: user_id = db.auth_user.insert( username=form.vars.username, password=form.vars.password, # password already encrypted here email=form.vars.email, ) send_new_user_mail(form.vars.username, form.vars.email, response. password) session.flash = T('Added new user') redirect(URL(c='user', f='manage_users')) elif form.errors: response.flash = T('Please correct errors') return dict(form=form) def get_password(form): # password already encrypted here ...