def new_user(): """ Create a new user. """ return "Contact #dgplug on IRC for a new account." form = ukhra.forms.NewUserForm() if form.validate_on_submit(): username = form.user_name.data if ukhra.lib.get_user_by_username( SESSION, username): flask.flash('Username already taken.', 'error') return flask.redirect(flask.request.url) email = form.email_address.data if ukhra.lib.get_user_by_email(SESSION, email): flask.flash('Email address already taken.', 'error') return flask.redirect(flask.request.url) password = '******' % ( form.password.data, APP.config.get('PASSWORD_SEED', None)) form.password.data = hashlib.sha512(password).hexdigest() token = ukhra.lib.id_generator(40) user = model.User() user.token = token form.populate_obj(obj=user) SESSION.add(user) try: SESSION.flush() send_confirmation_email(user) flask.flash( 'User created, please check your email to activate the ' 'account') except SQLAlchemyError as err: SESSION.rollback() flask.flash('Could not create user.') APP.logger.debug('Could not create user.') APP.logger.exception(err) SESSION.commit() # Now let us update the redis. redis.hset('userids', user.id, user.user_name) return flask.redirect(flask.url_for('auth_login')) return flask.render_template( 'user_new.html', form=form, )
def new_user(): """ Create a new user. """ return "Contact #dgplug on IRC for a new account." form = ukhra.forms.NewUserForm() if form.validate_on_submit(): username = form.user_name.data if ukhra.lib.get_user_by_username(SESSION, username): flask.flash('Username already taken.', 'error') return flask.redirect(flask.request.url) email = form.email_address.data if ukhra.lib.get_user_by_email(SESSION, email): flask.flash('Email address already taken.', 'error') return flask.redirect(flask.request.url) password = '******' % (form.password.data, APP.config.get('PASSWORD_SEED', None)) form.password.data = hashlib.sha512(password).hexdigest() token = ukhra.lib.id_generator(40) user = model.User() user.token = token form.populate_obj(obj=user) SESSION.add(user) try: SESSION.flush() send_confirmation_email(user) flask.flash( 'User created, please check your email to activate the ' 'account') except SQLAlchemyError as err: SESSION.rollback() flask.flash('Could not create user.') APP.logger.debug('Could not create user.') APP.logger.exception(err) SESSION.commit() # Now let us update the redis. redis.hset('userids', user.id, user.user_name) return flask.redirect(flask.url_for('auth_login')) return flask.render_template( 'user_new.html', form=form, )