示例#1
0
def register():
    if request.method == 'POST' and config.get('registration', bool):
        if 'username' in request.form and 'password' in request.form and \
           'email' in request.form:
            try:
                user = NewUser(request.form['username'],
                               request.form['password'],
                               request.form['email'])
                user.create()
            except exceptions.UserAlreadyExists:
                flash(messages.username_already_exists, 'error')
                return redirect(url_for('register'))
            except:
                flash(messages.register_error, 'error')
                return redirect(url_for('register'))

            if user.is_active():
                user.login()
                flash(messages.registered_and_logged_in, 'message')
                return redirect(url_for('index'))
            else:
                flash(messages.registered_and_deactivated, 'message')
                return redirect(url_for('public_index'))
        else:
            flash(messages.register_field_error, 'error')

    return render_template(get_template('register.html'),
                           registration_enabled=config.get('registration', bool))