app.logger.error('Tried to lookup missing config setting: %s' % key) return None # Setup caching cache = flask_cache.Cache(app, config={ 'CACHE_TYPE': 'filesystem', 'CACHE_DIR': '/tmp', 'CACHE_THRESHOLD': 25000, 'CACHE_DEFAULT_TIMEOUT': 60, }) # Setup openid oid = flask_openid.OpenID(app) # Setup database connection db = flask_sqlalchemy.SQLAlchemy(app) from .models import User, Team, GameServer, Match, Tournament, MapStats, PlayerStats # noqa: E402 migrate = flask_migrate.Migrate(app, db) # Setup rate limiting limiter = flask_limiter.Limiter( app, key_func=flask_limiter.util.get_remote_address, default_limits=['250 per minute'], ) # Setup logging formatter = logging.Formatter(
# Packages import flask import flask_openid import talisker.requests from pymacaroons import Macaroon # Local from webapp.macaroons import ( binary_serialize_macaroons, MacaroonRequest, MacaroonResponse, ) open_id = flask_openid.OpenID( store_factory=lambda: None, safe_roots=[], extension_responses=[MacaroonResponse], ) session = talisker.requests.get_session() def user_info(user_session): """ Checks if the user is authenticated from the session Returns True if the user is authenticated """ if "openid" in user_session and "authentication_token" in user_session: return { "fullname": user_session["openid"]["fullname"], "email": user_session["openid"]["email"],
import flask import flask_sqlalchemy import flask_login import flask_openid import config import os app = flask.Flask(__name__) app.config.from_object('config') oid = flask_openid.OpenID(app, os.path.join(config.basedir, 'tmp')) db = flask_sqlalchemy.SQLAlchemy(app) lm = flask_login.LoginManager() lm.init_app(app) lm.login_view = 'login' # # setup SMTP debug info # if not app.debug: # import logging # credentials = None # if config.MAIL_USERNAME or config.MAIL_PASSWORD: # credentials = ( # config.MAIL_USERNAME, # config.MAIL_PASSWORD) # mail_handler = logging.handlers.SMTPHandler( # (config.MAIL_SERVER, config.MAIL_PORT), # 'no-reply@' + config.MAIL_SERVER, # config.ADMINS, # 'microblog failure',
# Standard library from urllib.parse import quote, unquote # Packages import flask import flask_openid from pymacaroons import Macaroon # Local from webapp import auth from webapp.api import advantage as advantage_api from webapp.macaroons import MacaroonRequest, MacaroonResponse open_id = flask_openid.OpenID( stateless=True, safe_roots=[], extension_responses=[MacaroonResponse] ) @open_id.loginhandler def login_handler(): if auth.is_authenticated(flask.session): return flask.redirect(open_id.get_next_url()) root = advantage_api.get_macaroon() for caveat in Macaroon.deserialize(root).third_party_caveats(): if caveat.location == "login.ubuntu.com": openid_macaroon = MacaroonRequest(caveat_id=caveat.caveat_id) break
SECRET_KEY='development key', DEBUG=True ) mail = Mail(app) ALLOWED_EXTENSIONS = set(['log', 'txt', 'zip', 'tar', 'tgz']) DISALLOWED_EXTENSIONS = set(['exe', 'mp4', 'avi', 'mkv']) ALLOWED_MIME_TYPES = set(['text/plain', 'application/x-bzip2', 'application/zip', 'application/x-gzip', 'application/x-tar']) DISALLOWED_MIME_TYPES = set(['application/x-dosexec', 'application/x-msdownload']) TARGETED_TAR_CONTENTS = set(['controller', 'storage', 'compute']) SERVER_ADMINS = custom_server_admins THRESHOLD = 0.8 oid = flask_openid.OpenID(app, safe_roots=[], extension_responses=[pape.Response]) def delete_old_files(): time_before = datetime.now() - timedelta(months=6) with connect().cursor() as cursor: files_sql = "SELECT name, user_id, launchpad_id FROM files WHERE modified_date<%s;" cursor.execute(files_sql, (time_before,)) files = cursor.fetchall() for file in files: os.remove(os.path.join(app.config['BASE_DIR'], 'files', file['user_id'], str(file['launchpad_id']), file['name'])) logging.info('Outdated file deleted: {}/{}/{}'.format(file['user_id'], file['launchpad_id'], file['name'])) sql = "DELETE FROM files WHERE modified_date<%s;" cursor.execute(sql, (time_before,))