Beispiel #1
0
def deleteCategory(category_id):
    try:
        categoryToDelete = controller.currentCategory(category_id)
        creator = controller.categoryCreator(categoryToDelete)
    except:
        abort(404)
    try:
        form = DeleteCategory()
    except:
        abort(500)
    if current_user == creator:
        if form.validate_on_submit():
            controller.deleteCategory(categoryToDelete, category_id)
            babel_flash_message('Category "{data}" successfully deleted',
                                categoryToDelete.name)
            return redirect(
                url_for('categories.showCategories', category_id=category_id))
        else:
            return render_template('forms/deleteCategory.html',
                                   category=categoryToDelete,
                                   creator=creator,
                                   category_id=category_id,
                                   form=form)
    else:
        abort(404)
Beispiel #2
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        login_user(form.user)
        babel_flash_message('You were logged in as {data}', form.user.username)
        return redirect(request.args.get('next') or url_for('index'))
    return render_template('forms/login.html', form=form)
Beispiel #3
0
def editCategory(category_id):
    try:
        editedCategory = controller.currentCategory(category_id)
        creator = controller.categoryCreator(editedCategory)
    except:
        abort(404)
    try:
        form = EditCategory()
    except:
        abort(500)
    if current_user == creator:
        if form.validate_on_submit():
            if form.data['name']:
                controller.updateCategory(editedCategory, form.data['name'])
                babel_flash_message('Category "{data}" successfully edited',
                                    form.data['name'])
                return redirect(url_for('categories.showCategories'))
        else:
            return render_template('forms/editCategory.html',
                                   category=editedCategory,
                                   creator=creator,
                                   category_id=category_id,
                                   form=form)
    else:
        abort(404)
Beispiel #4
0
def delete(id):
    if current_user.is_admin:
        user = controller.getUser(id)
        # Deleteting user breaks any categories that the user created and making the server return 404s.
        # 1) Could delete the category and all recipes asociated, but it doesnt make sense
        # 2) Best option would be to just deacivate the account
        user.delete()
        babel_flash_message('User {data} deleted', user.username)
        return redirect(url_for('.list'))
    else:
        abort(404)
Beispiel #5
0
def edit(id):
    if current_user.is_admin:
        user = controller.getUser(id)
        form = EditUserForm(obj=user)
        if form.validate_on_submit():
            form.populate_obj(user)
            user.update()
            babel_flash_message('User {data} edited', user.username)
        return render_template('edit.html', form=form, user=user)
    else:
        abort(404)
Beispiel #6
0
def newCategory():
    try:
        form = NewCategory()
    except:
        abort(500)
    if form.validate_on_submit():
        controller.createNewCategory(form.data['name'], current_user.get_id())
        babel_flash_message('Category "{data}" successfully created',
                            form.data['name'])
        return redirect(url_for('categories.showCategories'))
    else:
        return render_template('forms/newCategory.html', form=form)
Beispiel #7
0
def register():
    form = RegisterUserForm()
    if form.validate_on_submit():
        user = controller.createNewUser(form.data['username'],
                                        form.data['email'],
                                        form.data['password'],
                                        request.remote_addr)
        s = URLSafeSerializer(current_app.secret_key)
        token = s.dumps(user.id)
        send_registration_email.delay(user.username, user.email, token)
        babel_flash_message('Sent verification email to {data}', user.email)
        return redirect(url_for('index'))
    return render_template('forms/register.html', form=form)
Beispiel #8
0
def verify(token):
    s = URLSafeSerializer(current_app.secret_key)
    try:
        id = s.loads(token)
    except BadSignature:
        abort(404)

    user = controller.getUser(id)
    if user.active:
        abort(404)
    else:
        user.active = True
        user.update()
        babel_flash_message(
            'Registered user {data}. Please login to continue.', user.username)
        return redirect(url_for('auth.login'))
Beispiel #9
0
def deleteRecipe(category_id, recipe_id):
    try:
        category = controller.currentCategory(category_id)
        creator = controller.categoryCreator(category)
        recipeToDelete = controller.currentRecipe(recipe_id)
    except:
        abort(404)
    try:
        form = DeleteRecipe()
    except:
        abort(500)
    if current_user == creator:
        if form.validate_on_submit():
            controller.deleteRecipe(recipeToDelete)
            babel_flash_message('Recipe "{data}" Successfully Deleted', recipeToDelete.name)
            return redirect(url_for('recipes.showRecipe', category_id=category_id))
        else:
            return render_template('forms/deleteRecipe.html', recipe=recipeToDelete,
                                   creator=creator, form=form, category_id=category_id)
    else:
        abort(404)
Beispiel #10
0
def editRecipe(category_id, recipe_id):
    try:
        editedRecipe = controller.currentRecipe(recipe_id)
        category = controller.currentCategory(category_id)
        creator = controller.categoryCreator(category)
    except:
        pass
    try:
        form = EditRecipe()
    except:
        abort(500)
    if current_user == creator:
        if form.validate_on_submit():
            controller.updateRecipe(editedRecipe, form.data['name'], form.data['description'])
            babel_flash_message('Recipe "{data}" successfully edited', form.data['name'])
            return redirect(url_for('recipes.showRecipe', category_id=category_id))
        else:
            return render_template('forms/editRecipe.html', category_id=category_id,
                                   recipe_id=recipe_id, recipe=editedRecipe, creator=creator, form=form)
    else:
        abort(404)
Beispiel #11
0
def newRecipe(category_id):
    try:
        category = controller.currentCategory(category_id)
        creator = controller.categoryCreator(category)
    except:
        abort(404)
    try:
        form = NewRecipe()
    except:
        abort(500)
    if current_user == creator:
        if form.validate_on_submit():
            controller.createNewRecipe(form.data['name'], form.data['description'],
                                       "test", category_id, category.user_id)
            babel_flash_message('Recipe "{data}" successfully created', form.data['name'])
            return redirect(url_for('recipes.showRecipe', category_id=category_id))
        else:
            return render_template('forms/newRecipe.html', category_id=category_id,
                                   creator=creator, form=form)
    else:
        abort(404)
Beispiel #12
0
def logout():
    # Disconnect a regular user.
    access_token = login_session.get('access_token')
    if access_token is None:
        logout_user()
        login_session.clear()
        babel_flash_message('You were logged out')
        return redirect(url_for('.login'))
    # Disconnect a google account user.
    url = 'https://accounts.google.com/o/oauth2/revoke?token=%s' % access_token
    h = httplib2.Http()
    result = h.request(url, 'GET')[0]

    if result['status'] == '200':
        del login_session['access_token']
        del login_session['gplus_id']
        del login_session['provider']
        logout_user()
        login_session.clear()
        babel_flash_message('Successfully disconnected')
        return redirect(url_for('.login'))
    else:
        babel_flash_message('Failed to revoke token for given user')
        logout_user()
        login_session.clear()
        return redirect(url_for('.login'))
Beispiel #13
0
def oauth():
    name = request.data
    babel_flash_message('You were connected as {data}', name)
    return redirect(request.args.get('next') or url_for('index'))