Move 'before_request' into 'main' blueprint

Update comment in api_handler with new before_request location
This commit is contained in:
Kfir Hadas 2017-07-11 00:45:24 +03:00
parent eccb0ebdff
commit 4aac17ff23
3 changed files with 22 additions and 21 deletions

View File

@ -24,7 +24,7 @@ api_blueprint = flask.Blueprint('api', __name__)
def basic_auth_user(f):
''' A decorator that will try to validate the user into g.user from basic auth.
Note: this does not set user to None on failure, so users can also authorize
themselves with the cookie (handled in routes.before_request). '''
themselves with the cookie (handled in views.main.before_request). '''
@functools.wraps(f)
def decorator(*args, **kwargs):
auth = flask.request.authorization

View File

@ -1,6 +1,5 @@
import json
import os.path
from datetime import datetime, timedelta
from urllib.parse import quote
import flask
@ -25,25 +24,6 @@ def not_found(error):
return flask.render_template('404.html'), 404
@app.before_request
def before_request():
flask.g.user = None
if 'user_id' in flask.session:
user = models.User.by_id(flask.session['user_id'])
if not user:
return views.account.logout()
flask.g.user = user
if 'timeout' not in flask.session or flask.session['timeout'] < datetime.now():
flask.session['timeout'] = datetime.now() + timedelta(days=7)
flask.session.permanent = True
flask.session.modified = True
if flask.g.user.status == models.UserStatusType.BANNED:
return 'You are banned.', 403
@cached_function
def get_category_id_map():
''' Reads database for categories and turns them into a dict with

View File

@ -1,5 +1,6 @@
import math
import re
from datetime import datetime, timedelta
import flask
from flask_paginate import Pagination
@ -8,10 +9,30 @@ from nyaa import app, models
from nyaa.search import (DEFAULT_MAX_SEARCH_RESULT, DEFAULT_PER_PAGE, SERACH_PAGINATE_DISPLAY_MSG,
_generate_query_string, search_db, search_elastic)
from nyaa.utils import chain_get
from nyaa.views.account import logout
bp = flask.Blueprint('main', __name__)
@bp.before_app_request
def before_request():
flask.g.user = None
if 'user_id' in flask.session:
user = models.User.by_id(flask.session['user_id'])
if not user:
return logout()
flask.g.user = user
if 'timeout' not in flask.session or flask.session['timeout'] < datetime.now():
flask.session['timeout'] = datetime.now() + timedelta(days=7)
flask.session.permanent = True
flask.session.modified = True
if flask.g.user.status == models.UserStatusType.BANNED:
return 'You are banned.', 403
@bp.route('/rss', defaults={'rss': True})
@bp.route('/', defaults={'rss': False})
def home(rss):