示例#1
0
def setup():
    if not config.get('setup', bool):
        abort(404)

    if request.method == 'POST':
        if not check_keys():
            flash(error_message)
            return render_template('setup.html')

        username = request.form['username']
        password = request.form['password_1']
        email = request.form['email']
        db_uri = request.form['database_uri']

        # create database
        config.set('database_uri', db_uri)
        app.config['SQLALCHEMY_DATABASE_URI'] = db_uri
        db.drop_all()
        db.create_all()

        # create admin user
        admin = NewUser(username, password, email)
        admin.admin = True
        admin.active = True
        admin.create()

        # generate secret key
        secret_key = os.urandom(24)
        config.set('secret_key', secret_key)
        app.config['SECRET_KEY'] = secret_key

        # set a default upload directory
        blackboard_root = os.path.dirname(os.path.abspath(__file__))
        config.set('upload_destination', blackboard_root + '/static/upload')

        # disable setup
        config.set('setup', 'False')

        flash(messages.setup_finished, 'message')
        return redirect(url_for('login'))    

    else:
        return render_template('setup.html')
示例#2
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))
 def add(self, username, password, email, fname, lname):
     return NewUser(username, password, email, fname, lname)