コード例 #1
0
ファイル: signup.py プロジェクト: jbowens/peernote
def signup():
    if g.user:
        return redirect('/')

    form = SignUpForm()

    # Check the captcha
    """
    captcha_passed = False
    if request.method == 'POST':
        lowered_titles = [x.lower() for x in session.get('captcha_title', [])]
        if request.form.get('cover','').lower() in lowered_titles:
            captcha_passed = True
        else:
            flash('The text in the image did not match.', 'error')
        # It's important to only allow one attempt for each session title
        if 'captcha_title' in session:
            session.pop('captcha_title')
    """

    valid_form = True

    # Check for the honey pot.
    if request.form.get('very_important_field'):
        # They filled in the honeypot. Most likely, they're a bot.
        # There can be some weird shit with autocompletes, so just
        # in case it's an actual user, let's flash a message.
        flash('Please do not use autocomplete on this form.', 'error')
        valid_form = False

    valid_form = valid_form and form.validate_on_submit()

    # Disabled captacha logic
    # valid_Form = valid_form and captcha_passed

    if request.method == 'POST' and valid_form:
        # Create the user in the database
        newuser = User()
        newuser.email = request.form['email'].lower()
        newuser.first_name = request.form['first_name']
        newuser.last_name = request.form['last_name']
        newuser.url_keyword = User.generate_url_keyword(newuser.first_name, newuser.last_name)
        newuser.set_password(request.form['pw'])
        db.session.add(newuser)

        # is this user a teacher? if so make a teacher
        if request.form['is-student'] == "false":
            db.session.flush()
            newteacher = Teacher()
            newteacher.uid = newuser.uid
            db.session.add(newteacher)

        db.session.commit()

        # Send the welcome email.
        mailer = Mailer()
        params = {
            'subject': 'Welcome to Peernote',
            'user': newuser
        }
        mailer.send(Welcome(), params, newuser.email)

        # Log this user in.
        session['uid'] = newuser.uid
        current_app.logger.debug('Logging in as uid = %d', session['uid'])
        return redirect('/')

    return render_template('users/signup.html', form=form,page_title="Welcome")