def register(self, userlevel =''): # This is the subroutine/ method for registering users/ DEBTORS if request.method == 'POST': # If we have came from the register form state = State() state.session = Session try: params = register_user_form.validate(request.params, state=state) except tw.forms.core.Invalid, e: c.form_error = e.error_dict or {} else: # Create the new account in database if userlevel =="": userlevel =4 # Default to Debtors users = Users( username = params['user_name'], email = params['email_address'], displayname = params['display_name'], password = params['password'], activated = False, level =1 ) Session.add(users) http_server = request.environ.get('HTTP_ORIGIN') if not http_server: http_server = 'http://' + request.environ['HTTP_HOST'] activation_url = "%s%s?u=%s&key=%s" %( http_server, url(controller='account', action='activation'), quote(user.username), quote(activation.key) ) from turbomail import Message message = Message("*****@*****.**", user.email, "Welcome to RejuVu") message.plain = "Your RejuVu account is ready to use. Your username is '%s'. Activate your account at %s" %(user.username, activation_url) message.send() Session.commit() h.flash_info(u"A confirmation email has been sent to %s containing a link to activate your account." %(user.email_address,)) redirect(url('/'))
def doReset(self): # This is the form where the user will go once they have submitted their email address for thier password to be reset # This will e-mail a randomly generated password to the user email = request.params['user_email'] # This will return the users object u = Session.query(Users).filter_by(email=email) for user in u: temp_password = h.gen_pwd() from turbomail import Message message = Message("*****@*****.**", user.email, "Password Reset") message.plain = "Your new RejuVu password is '%s'. Your username is '%s'." %(temp_password, user.username) message.send() user.set_password(temp_password) Session.commit() h.flash_info(u"An email has been sent to %s containing a new password for your account." %(user.email,)) redirect(url('/')) else: h.flash_info("Error - Sorry no such account exists or registered") return render('/index.mako')