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!'
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)