Example #1
0
    def handle_reset_request(self, id=None):
        s = Session()
        toaddr = request.params.get('email_addr')

        if not self._is_email_valid(toaddr):
            if id == "ajax":
                return "invalid email address"
            session['messages'] = ['Invalid email address']
            session.save()
            redirect_to(action='request_reset')

        user = s.query(User).filter_by(email=unicode(toaddr)).first()

        # We always claim we sent an email to stop people from farming our
        # database for email addresses of users.
        if user is None:
            if id == "ajax":
                return "sent password reset email"
            redirect_to(action="reset_request_sent")

        token = random_token()

        msg = create_password_reset_msg(toaddr, token)
        reset_data = ResetData(token, toaddr)
        s.save(reset_data)
        s.commit()

        try:
            send_mail(toaddr, msg)
        except EmailException, e:
            if id == "ajax":
                return "Sending password reset email failed: %s" % e.message
            session['email_error'] = e.message
            session.save()
Example #2
0
    def handle_reset_request(self, id=None):
        s = Session()
        toaddr = request.params.get('email_addr')

        if not self._is_email_valid(toaddr):
            if id == "ajax":
                return "invalid email address"
            session['messages'] = ['Invalid email address']
            session.save()
            redirect_to(action='request_reset')

        user = s.query(User).filter_by(email=unicode(toaddr)).first()

        # We always claim we sent an email to stop people from farming our
        # database for email addresses of users.
        if user is None:
            if id == "ajax":
                return "sent password reset email"
            redirect_to(action="reset_request_sent")

        token = random_token()

        msg = create_password_reset_msg(toaddr, token)
        reset_data = ResetData(token, toaddr)
        s.save(reset_data)
        s.commit()

        try:
            send_mail(toaddr, msg)
        except EmailException, e:
            if id == "ajax":
                return "Sending password reset email failed: %s" % e.message
            session['email_error'] = e.message
            session.save()
Example #3
0
    def signup(self, id=None):
        user_email = unicode(request.params.get('user_email'))
        user_email_c = unicode(request.params.get('user_email_confirm'))

        s = Session()

        if user_email != user_email_c:
            if id == "ajax":
                return "email address mismatch"
            else:
                session['messages'] = ["Email address mismatch"]
                session.save()
                redirect_to(action="register")

        if not self._is_email_valid(user_email):
            if id == "ajax":
                return "invalid email address"
            else:
                session['messages'] = ["Invalid email address"]
                session.save()
                redirect_to(action="register")

        if s.query(User).filter_by(email=user_email).first() is not None:
            if id == "ajax":
                return "email already associated with an account"
            else:
                session['messages'] = [
                    "Email already associated with an account"
                ]
                session.save()
                redirect_to(action="register")

        user_pass = unicode(request.params.get('user_pass'))
        user_pass_c = unicode(request.params.get('user_pass_confirm'))

        if user_pass != user_pass_c:
            if id == "ajax":
                return "password mismatch"
            else:
                session['messages'] = ["Password mismatch"]
                session.save()
                redirect_to(action="register")

        if request.params.get('user_vcs_pass') is not None:
            vcs_pass = unicode(request.params.get('user_vcs_pass'))
            vcs_pass_c = unicode(request.params.get('user_vcs_pass_confirm'))

            if vcs_pass != vcs_pass_c:
                if id == "ajax":
                    return "VCS password mismatch"
                else:
                    session['messages'] = ["VCS password mismatch"]
                    session.save()
                    redirect_to(action="register")
        else:
            vcs_pass = None

        if request.params.get('user_name') is not None:
            user_name = unicode(request.params.get('user_name'))
        else:
            user_name = u"Unnamed User"

        if request.params.get('user_nick') is not None:
            user_nick = unicode(request.params.get('user_nick'))
        else:
            user_nick = u"Anonymous"

        if request.params.get('user_vcs_user') is not None:
            vcs_user = unicode(request.params.get('user_vcs_user'))
        else:
            vcs_user = None

        user = User(user_email, crypt_password(user_pass))
        data = UserData(user_name, user_nick, vcs_user, vcs_pass)
        data.user = user
        s.add(user)
        s.add(data)

        token = random_token()
        msg = create_account_activation_msg(user.email, token)

        act_data = EmailConfirm(token, user.email)
        s.add(act_data)
        s.commit()

        try:
            send_mail(user.email, msg)
        except EmailException, e:
            if id == "ajax":
                return "sending account registration failed: %s" % e.message
            session['email_error'] = e.message
            session.save()
Example #4
0
    def signup(self, id=None):
        user_email = unicode(request.params.get('user_email'))
        user_email_c = unicode(request.params.get('user_email_confirm'))

        s = Session()

        if user_email != user_email_c:
            if id == "ajax":
                return "email address mismatch"
            else:
                session['messages'] = ["Email address mismatch"]
                session.save()
                redirect_to(action="register")

        if not self._is_email_valid(user_email):
            if id == "ajax":
                return "invalid email address"
            else:
                session['messages'] = ["Invalid email address"]
                session.save()
                redirect_to(action="register")

        if s.query(User).filter_by(email=user_email).first() is not None:
            if id == "ajax":
                return "email already associated with an account"
            else:
                session['messages'] = ["Email already associated with an account"]
                session.save()
                redirect_to(action="register")

        user_pass = unicode(request.params.get('user_pass'))
        user_pass_c = unicode(request.params.get('user_pass_confirm'))

        if user_pass != user_pass_c:
            if id == "ajax":
                return "password mismatch"
            else:
                session['messages'] = ["Password mismatch"]
                session.save()
                redirect_to(action="register")

        if request.params.get('user_vcs_pass') is not None:
            vcs_pass = unicode(request.params.get('user_vcs_pass'))
            vcs_pass_c = unicode(request.params.get('user_vcs_pass_confirm'))

            if vcs_pass != vcs_pass_c:
                if id == "ajax":
                    return "VCS password mismatch"
                else:
                    session['messages'] = ["VCS password mismatch"]
                    session.save()
                    redirect_to(action="register")
        else:
            vcs_pass = None

        if request.params.get('user_name') is not None:
            user_name = unicode(request.params.get('user_name'))
        else:
            user_name = u"Unnamed User"

        if request.params.get('user_nick') is not None:
            user_nick = unicode(request.params.get('user_nick'))
        else:
            user_nick = u"Anonymous"

        if request.params.get('user_vcs_user') is not None:
            vcs_user = unicode(request.params.get('user_vcs_user'))
        else:
            vcs_user = None

        user = User(user_email, crypt_password(user_pass))
        data = UserData(user_name, user_nick, vcs_user, vcs_pass)
        data.user = user
        s.add(user)
        s.add(data)

        token = random_token()
        msg = create_account_activation_msg(user.email, token)

        act_data = EmailConfirm(token, user.email)
        s.add(act_data)
        s.commit()

        try:
            send_mail(user.email, msg)
        except EmailException, e:
            if id == "ajax":
                return "sending account registration failed: %s" % e.message
            session['email_error'] = e.message
            session.save()