示例#1
0
    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('/'))
示例#2
0
    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')