Exemplo n.º 1
0
def main():
    """
    Main entry point for this script.
    """
    args = _parse_args()

    user = args.user
    password = args.password or getpass()

    print 'Initializing DB...'
    if args.drop:
        print >> stderr, 'WARNING: All information is being dropped.'
        Base.metadata.drop_all(bind=engine)
    Base.metadata.create_all(bind=engine)
    with app.app_context():
        User.new_user(user, password, UserPermission.PERMISSIONS).add()
        commit()
    print 'Done!'
Exemplo n.º 2
0
def register_user():
    """
    Register a new user account.

    * If this page was requested with a GET method, the new user registration form will be shown.
    * If this page was requested with a POST method, a registration form is processed.

    In any case, a registration form is returned.

    :return: The registration form.
    :rtype: flask.Response
    """
    user = User.get_by_id(session['user'])

    if request.method == 'POST':
        username = request.form.get('username', None)
        password = request.form.get('password', None)
        password2 = request.form.get('password2', None)

        if not username:
            flash('Username cannot be empty', 'danger')
            return redirect(url_for('register_user'))
        if not password:
            flash('Password cannot be empty', 'warning')
            return redirect(url_for('register_user'))
        if password != password2:
            flash('Passwords do not match', 'warning')
            return redirect(url_for('register_user'))

        display = request.form.get('display', None)
        permissions = [permission for permission in UserPermission.PERMISSIONS
                       if request.form.get(permission.name, None) == str(permission.flag)]

        try:
            User.new_user(username, password, permissions, display).add()
            commit()
        except:
            flash('Unable to register %s' % username, 'danger')
        else:
            flash('User %s successfully created!' % username, 'success')

    return render_template('register.html', user=user, permissions=UserPermission.PERMISSIONS)