Example #1
0
    def post(self):
        # check captcha
        challenge = self.request.POST.get('recaptcha_challenge_field')
        response = self.request.POST.get('recaptcha_response_field')
        remoteip = self.request.remote_addr

        cResponse = captcha.submit(challenge, response,
                                   self.reCaptcha_private_key, remoteip)

        if cResponse.is_valid:
            # captcha was valid... carry on..nothing to see here
            pass
        else:
            _message = _('Wrong image verification code. Please try again.')
            self.add_message(_message, 'error')
            return self.redirect_to('password-reset')

        # load the email address
        email = str(self.request.POST.get('email')).lower().strip()
        if utils.is_email_valid(email):
            user = models.User.get_by_email(email)
            _message = _(
                "You should receive an email from us shortly with instructions for resetting your password."
            )

        if user is not None:
            user_id = user.get_id()
            token = models.User.create_auth_token(user_id)
            email_url = self.uri_for('taskqueue-send-email')
            reset_url = self.uri_for('password-reset-check',
                                     user_id=user_id,
                                     token=token,
                                     _full=True)
            subject = _("%s Password Assistance" % config.app_name)

            # load email's template
            template_val = {
                "username": user.username,
                "email": user.email,
                "reset_password_url": reset_url,
                "support_url": self.uri_for("contact", _full=True),
                "app_name": config.app_name,
            }

            body_path = "emails/reset_password.txt"
            body = self.jinja2.render_template(body_path, **template_val)

            logging.info("value is: %s" % reset_url)
            taskqueue.add(url=email_url,
                          params={
                              'to': user.email,
                              'subject': subject,
                              'body': body,
                              'sender': config.contact_sender,
                          })
            self.add_message(_message, 'success')
            return self.redirect_to('login')

        self.add_message(_message, 'warning')
        return self.redirect_to('password-reset')
Example #2
0
    def post(self):
        # check captcha
        challenge = self.request.POST.get('recaptcha_challenge_field')
        response  = self.request.POST.get('recaptcha_response_field')
        remoteip  = self.request.remote_addr

        cResponse = captcha.submit(
            challenge,
            response,
            self.reCaptcha_private_key,
            remoteip)

        if cResponse.is_valid:
            # captcha was valid... carry on..nothing to see here
            pass
        else:
            _message = _('Wrong image verification code. Please try again.')
            self.add_message(_message, 'error')
            return self.redirect_to('password-reset')
        
        # load the email address
        email = str(self.request.POST.get('email')).lower().strip()
        if utils.is_email_valid(email):
            user = models.User.get_by_email(email)
            _message = _("You should receive an email from us shortly with instructions for resetting your password.")

        if user is not None:
            user_id = user.get_id()
            token = models.User.create_auth_token(user_id)
            email_url = self.uri_for('taskqueue-send-email')
            reset_url = self.uri_for('password-reset-check', user_id=user_id, token=token, _full=True)
            subject = _("%s Password Assistance" % config.app_name)

            # load email's template
            template_val = {
                "username": user.username,
                "email": user.email,
                "reset_password_url": reset_url,
                "support_url": self.uri_for("contact", _full=True),
                "app_name": config.app_name,
            }

            body_path = "emails/reset_password.txt"
            body = self.jinja2.render_template(body_path, **template_val)

            logging.info("value is: %s" % reset_url)
            taskqueue.add(url = email_url, params={
                'to': user.email,
                'subject' : subject,
                'body' : body,
                'sender' : config.contact_sender,
                })
            self.add_message(_message, 'success')
            return self.redirect_to('login')

        self.add_message(_message, 'warning')
        return self.redirect_to('password-reset')
Example #3
0
    def post(self):
        # check captcha
        challenge = self.request.POST.get('recaptcha_challenge_field')
        response  = self.request.POST.get('recaptcha_response_field')
        remoteip  = self.request.remote_addr

        cResponse = captcha.submit(
            challenge,
            response,
            self.reCaptcha_private_key,
            remoteip)

        if cResponse.is_valid:
            # captcha was valid... carry on..nothing to see here
            pass
        else:
            logging.warning(cResponse.error_code)
            _message = _('Wrong image verification code. Please try again.')
            self.add_message(_message, 'error')
            return self.redirect_to('password-reset')
            #check if we got an email or username
        email_or_username = str(self.request.POST.get('email_or_username')).lower().strip()
        if utils.is_email_valid(email_or_username):
            user = models.User.get_by_email(email_or_username)
            _message = _("If the e-mail address you entered") + " (<strong>%s</strong>) " % email_or_username
        else:
            auth_id = "own:%s" % email_or_username
            user = models.User.get_by_auth_id(auth_id)
            _message = _("If the username you entered") + " (<strong>%s</strong>) " % email_or_username

        if user is not None:
            user_id = user.get_id()
            token = models.User.create_auth_token(user_id)
            email_url = self.uri_for('taskqueue-send-email')
            reset_url = self.uri_for('password-reset-check', user_id=user_id, token=token, _full=True)
            subject = _("Password reminder")
            body = _('Please click below to create a new password:'******'to': user.email,
                'subject' : subject,
                'body' : body,
                'sender' : config.contact_sender,
                })
            _message = _message + _("is associated with an account in our records, you will receive "\
                                    "an e-mail from us with instructions for resetting your password. "\
                                    "<br>If you don't receive this e-mail, please check your junk mail folder or ") +\
                       '<a href="' + self.uri_for('contact') + '">' + _('contact us') + '</a> ' +  _("for further assistance.")
            self.add_message(_message, 'success')
            return self.redirect_to('login')
        _message = _('Your email / username was not found. Please try another or ') + '<a href="' + self.uri_for('register') + '">' + _('create an account') + '</a>'
        self.add_message(_message, 'error')
        return self.redirect_to('password-reset')
Example #4
0
    def clean(self, values):
        super(ReCaptchaField, self).clean(values[1])
        recaptcha_challenge_value = smart_unicode(values[0])
        recaptcha_response_value = smart_unicode(values[1])
        check_captcha = captcha.submit(recaptcha_challenge_value,
            recaptcha_response_value, settings.RECAPTCHA_PRIV_KEY, {})

        if not check_captcha.is_valid:
            raise forms.util.ValidationError(_('Invalid captcha'))
            
        return values[0]
Example #5
0
    def clean(self, values):
        super(ReCaptchaField, self).clean(values)
        recaptcha_response_value = smart_unicode(values)
        check_captcha = captcha.submit(recaptcha_response_value,
                                       settings.RECAPTCHA_PRIV_KEY, "0.0.0.0")

        if not check_captcha.is_valid:
            raise forms.util.ValidationError(
                _('Invalid captcha ' + check_captcha.error_code))

        return values
Example #6
0
    def clean(self, values):
        super(ReCaptchaField, self).clean(values[1])
        recaptcha_challenge_value = smart_unicode(values[0])
        recaptcha_response_value = smart_unicode(values[1])
        check_captcha = captcha.submit(recaptcha_challenge_value,
            recaptcha_response_value, settings.RECAPTCHA_PRIV_KEY, {})

        if not check_captcha.is_valid:
            raise forms.util.ValidationError(_('Invalid captcha'))
            
        return values[0]
Example #7
0
    def post(self):
        # check captcha
        challenge = self.request.POST.get('recaptcha_challenge_field')
        response  = self.request.POST.get('recaptcha_response_field')
        remoteip  = self.request.remote_addr

        cResponse = captcha.submit(
            challenge,
            response,
            self.reCaptcha_private_key,
            remoteip)

        if cResponse.is_valid:
            # captcha was valid... carry on..nothing to see here
            pass
        else:
            logging.warning(cResponse.error_code)
            _message = 'Wrong image verification code. Please try again.'
            self.add_message(_message, 'error')
            return self.redirect_to('password-reset')
        #check if we got an email or username
        email_or_username = str(self.request.POST.get('email_or_username')).lower().strip()
        if utils.is_email_valid(email_or_username):
            user = models.User.get_by_email(email_or_username)
            _message = "If the e-mail address you entered <strong>%s</strong> " % email_or_username
        else:
            auth_id = "own:%s" % email_or_username
            user = models.User.get_by_auth_id(auth_id)
            _message = "If the username you entered <strong>%s</strong> " % email_or_username

        if user is not None:
            user_id = user.get_id()
            token = models.User.create_auth_token(user_id)
            email_send_url = self.uri_for('send-reset-email')
            taskqueue.add(url = email_send_url, params={
                'recipient_email': user.email,
                'token' : token,
                'user_id' : user_id,
                })
            _message = _message + "is associated with an account in our records, you will receive " \
                       "an e-mail from us with instructions for resetting your password. " \
                       "<br>If you don't receive this e-mail, please check your junk mail folder or " \
                       "<a href='/contact'>contact us</a> for further assistance."
            self.add_message(_message, 'success')
            return self.redirect_to('login')
        _message = 'Your email / username was not found. Please try another or <a href="/register">create an account</a>.'
        self.add_message(_message, 'error')
        return self.redirect_to('password-reset')
Example #8
0
	def post(self):
		# check captcha
		challenge = self.request.POST.get('recaptcha_challenge_field')
		response  = self.request.POST.get('recaptcha_response_field')
		remoteip  = self.request.remote_addr

		cResponse = captcha.submit(
			challenge,
			response,
			self.app.config.get('captcha_private_key'),
			remoteip)

		if cResponse.is_valid:
			# captcha was valid... carry on..nothing to see here
			pass
		else:
			_message = _('Wrong image verification code. Please try again.')
			self.add_message(_message, 'error')
			return self.redirect_to('password-reset')
			#check if we got an email or username
		email_or_username = str(self.request.POST.get('email_or_username')).lower().strip()
		if utils.is_email_valid(email_or_username):
			user = models.User.get_by_email(email_or_username)
			_message = _("If the e-mail address you entered") + " (<strong>%s</strong>) " % email_or_username
		else:
			auth_id = "own:%s" % email_or_username
			user = models.User.get_by_auth_id(auth_id)
			_message = _("If the username you entered") + " (<strong>%s</strong>) " % email_or_username

		_message = _message + _("is associated with an account in our records, you will receive "
								"an e-mail from us with instructions for resetting your password. "
								"<br>If you don't receive instructions within a minute or two, "
								"check your email's spam and junk filters, or ") +\
				   '<a href="' + self.uri_for('contact') + '">' + _('contact us') + '</a> ' +  _("for further assistance.")

		if user is not None:
			user_id = user.get_id()
			token = models.User.create_auth_token(user_id)
			email_url = self.uri_for('taskqueue-send-email')
			reset_url = self.uri_for('password-reset-check', user_id=user_id, token=token, _full=True)
			subject = _("%s Password Assistance" % self.app.config.get('app_name'))

			# load email's template
			template_val = {
				"username": user.username,
				"email": user.email,
				"reset_password_url": reset_url,
				"support_url": self.uri_for("contact", _full=True),
				"app_name": self.app.config.get('app_name'),
			}

			body_path = "emails/reset_password.txt"
			body = self.jinja2.render_template(body_path, **template_val)
			taskqueue.add(url = email_url, params={
				'to': user.email,
				'subject' : subject,
				'body' : body,
				'sender' : self.app.config.get('contact_sender'),
				})
		self.add_message(_message, 'warning')
		return self.redirect_to('login')
Example #9
0
    def post(self):
        # check captcha
        challenge = self.request.POST.get('recaptcha_challenge_field')
        response = self.request.POST.get('recaptcha_response_field')
        remoteip = self.request.remote_addr

        cResponse = captcha.submit(challenge, response,
                                   self.reCaptcha_private_key, remoteip)

        if cResponse.is_valid:
            # captcha was valid... carry on..nothing to see here
            pass
        else:
            logging.warning(cResponse.error_code)
            _message = _('Wrong image verification code. Please try again.')
            self.add_message(_message, 'error')
            return self.redirect_to('password-reset')
            # check if we got an email or username
        email_or_username = str(
            self.request.POST.get('email_or_username')).lower().strip()
        if utils.is_email_valid(email_or_username):
            user = models.User.get_by_email(email_or_username)
            _message = _("If the e-mail address you entered"
                         ) + " (<strong>%s</strong>) " % email_or_username
        else:
            auth_id = "own:%s" % email_or_username
            user = models.User.get_by_auth_id(auth_id)
            _message = _("If the username you entered"
                         ) + " (<strong>%s</strong>) " % email_or_username

        if user is not None:
            user_id = user.get_id()
            token = models.User.create_auth_token(user_id)
            email_url = self.uri_for('taskqueue-send-email')
            reset_url = self.uri_for('password-reset-check',
                                     user_id=user_id,
                                     token=token,
                                     _full=True)
            subject = _("Password reminder")
            body = _('Please click below to create a new password:'******'to': user.email,
                              'subject': subject,
                              'body': body,
                              'sender': config.contact_sender,
                          })
            _message = _message + _("is associated with an account in our records, you will receive "\
                                    "an e-mail from us with instructions for resetting your password. "\
                                    "<br>If you don't receive this e-mail, please check your junk mail folder or ") +\
                       '<a href="' + self.uri_for('contact') + '">' + _('contact us') + '</a> ' +  _("for further assistance.")
            self.add_message(_message, 'success')
            return self.redirect_to('login')
        _message = _(
            'Your email / username was not found. Please try another or '
        ) + '<a href="' + self.uri_for('register') + '">' + _(
            'create an account') + '</a>'
        self.add_message(_message, 'error')
        return self.redirect_to('password-reset')