示例#1
0
    def verify_phone():
        session.pop("phone_verify_id", None)
        session.pop("verified_phone", None)

        form = VerifyPhoneForm(csrf_enabled=False)

        if form.validate():

            while True:
                token = str(random.randint(100000, 999999))

                try:
                    # Make sure a random token doesn't exist yet
                    current_app.cdw.phoneverifications.with_token(token)
                except:
                    expires = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)

                    phone = utils.normalize_phonenumber(form.phonenumber.data)

                    pva = PhoneVerificationAttempt(expires=expires, token=token, phoneNumber=phone)

                    current_app.cdw.phoneverifications.save(pva)
                    session["phone_verify_id"] = str(pva.id)

                    current_app.logger.debug("Saved phone number verification attempt: %s" % pva)

                    break  # out of the while loop

            try:
                config = current_app.config["CDW"]["twilio"]
                sender = config["switchboard_number"]
                current_app.twilio.send_message(pva.token, sender, [phone])
                return jsonify({"success": True})
            except Exception, e:
                return jsonify({"success": False, "error": "%s" % e})
示例#2
0
    def verify_phone():
        session.pop('phone_verify_id', None)
        session.pop('verified_phone', None)

        form = VerifyPhoneForm(csrf_enabled=False)

        if form.validate():

            while (True):
                token = str(random.randint(100000, 999999))

                try:
                    # Make sure a random token doesn't exist yet
                    current_app.cdw.phoneverifications.with_token(token)
                except:
                    expires = (datetime.datetime.utcnow() +
                               datetime.timedelta(minutes=5))

                    phone = utils.normalize_phonenumber(form.phonenumber.data)

                    pva = PhoneVerificationAttempt(expires=expires,
                                                   token=token,
                                                   phoneNumber=phone)

                    current_app.cdw.phoneverifications.save(pva)
                    session['phone_verify_id'] = str(pva.id)

                    current_app.logger.debug(
                        'Saved phone number verification attempt: %s' % pva)

                    break  # out of the while loop

            try:
                config = current_app.config['CDW']['twilio']
                sender = config['switchboard_number']
                current_app.twilio.send_message(pva.token, sender, [phone])
                return jsonify({"success": True})
            except Exception, e:
                return jsonify({"success": False, "error": '%s' % e})
示例#3
0
    def register_email():
        if current_user.is_authenticated():
            return redirect("/")

        form = UserRegistrationForm()
        # You'd think this wouldn't need to be called here but
        # a CSRF error will come up when the form is POSTed to
        # /register. So below there's a show_errors flag in the
        # template context blow
        form.validate()

        # See if a password was passed from the register modal
        form.password.data = request.form.get('password', '')

        return render_template('register.html',
                               section_selector="register",
                               page_selector="email",
                               form=form,
                               show_errors=False,
                               phoneForm=VerifyPhoneForm(csrf_enabled=False))
示例#4
0
    def profile_edit():
        user = current_user
        form = EditProfileForm()

        if request.method == 'POST' and form.validate():
            user = cdw.update_user_profile(user.get_id(), form.username.data,
                                           form.email.data, form.password.data)

            flash('Your profile has been updated.')
            return redirect('/profile')

        form.username.data = user.username
        form.email.data = user.email

        phoneForm = VerifyPhoneForm(csrf_enabled=False)
        phoneForm.phonenumber.data = user.phoneNumber

        return render_template("profile_edit.html",
                               form=form,
                               phoneForm=phoneForm,
                               section_selector="profile",
                               page_selector="edit")
示例#5
0
    def register_facebook():
        if current_user.is_authenticated():
            return redirect("/")
        # Always clear out any verified phone numbers
        session.pop('verified_phone', None)

        # Try getting their facebook profile
        profile = get_facebook_profile(session['facebooktoken'])

        phoneForm = VerifyPhoneForm(csrf_enabled=False)
        form = UserRegistrationForm(username=profile['first_name'],
                                    email=profile['email'],
                                    csrf_enabled=False)

        form.password.data = request.form.get('password', '')
        form.validate()

        return render_template('register.html',
                               form=form,
                               phoneForm=phoneForm,
                               facebook_profile=profile,
                               show_errors=False,
                               section_selector="register",
                               page_selector="facebook")
示例#6
0
            # Clear out the temporary facebook data
            session.pop('facebookuserid', None)
            session.pop('facebooktoken', None)

            # Send them to get their picture taken
            return redirect("/register/photo")

        current_app.logger.debug(form.errors)

        return render_template('register.html',
                               section_selector="register",
                               page_selector="email",
                               form=form,
                               show_errors=True,
                               phoneForm=VerifyPhoneForm(csrf_enabled=False))

    @app.route("/register/email", methods=['GET', 'POST'])
    def register_email():
        if current_user.is_authenticated():
            return redirect("/")

        form = UserRegistrationForm()
        # You'd think this wouldn't need to be called here but
        # a CSRF error will come up when the form is POSTed to
        # /register. So below there's a show_errors flag in the
        # template context blow
        form.validate()

        # See if a password was passed from the register modal
        form.password.data = request.form.get('password', '')