Beispiel #1
0
def register_extensions(app):

    # Flask-SQLAlchemy
    db.init_app(app)
    db.app = app

    # Flask-Redis
    # rd.init_app(app)

    # Flask-Migrate
    # migrate.init_app(app, db)

    # Flask-Mail
    mail.init_app(app)

    # Flask-Cache
    # cache.init_app(app)

    # Flask-Login
    from models import AnonymousUser

    login_manager.session_protection = 'basic'
    login_manager.login_view = 'blog.articles'
    login_manager.login_message = 'please login first~'
    login_manager.anonymous_user = AnonymousUser
    login_manager.init_app(app)
Beispiel #2
0
def create_app():
    app = Flask(__name__)

    if app.config["ENV"] == "development":
        app.config.from_object("config.DevelopmentConfig")
    else:
        app.config.from_object("config.ProductionConfig")

    app.register_blueprint(json_return)
    app.register_blueprint(main_page)
    app.register_blueprint(account_page)
    app.register_blueprint(register_login_page)
    app.register_blueprint(general_page)
    app.register_blueprint(about_page)
    app.register_blueprint(experience_page)
    app.register_blueprint(education_page)
    app.register_blueprint(skills_page)
    app.register_blueprint(project_page)

    from extensions import db, login_manager, cors, migrate

    db.init_app(app)
    login_manager.init_app(app)
    cors.init_app(app)
    migrate.init_app(app, db)

    @login_manager.user_loader
    def load_user(user_id):
        return General.query.get(int(user_id))

    with app.app_context():
        db.create_all()

    return app
Beispiel #3
0
def register_extensions(app):
    """
    扩展实例化
    :param app:
    :return:
    """
    db.init_app(app)
    moment.init_app(app)
    migrate.init_app(app=app, db=db)
    cache.init_app(app)

    login_manager.init_app(app)
    # 登录过滤保护
    login_manager.exempt_views((user_bp, demo_bp, audio_bp, img_api_bp, ocr_api_bp))

    session.init_app(app)

    csrf.init_app(app)
    # csrf过滤保护
    csrf.exempt_views((demo_bp, audio_bp, img_api_bp, ocr_api_bp))

    # 定时任务 解决FLASK DEBUG模式定时任务执行两次
    if os.environ.get('FLASK_DEBUG', '0') == '0':
        scheduler.init_app(app)
        scheduler.start()
    elif os.environ.get('WERKZEUG_RUN_MAIN') == 'true':
        scheduler.init_app(app)
        scheduler.start()
Beispiel #4
0
def configure_extensions(app):
    # I18N
    babel.init_app(app)

    # Database
    db.init_app(app)

    # CouchDB
    couchdbmanager.setup(app)
    couchdbmanager.sync(app)

    # Login
    login_manager.init_app(app)
    login_manager.login_view = "authentification.login"

    # Roles
    principal.init_app(app)

    # Mail
    mail.init_app(app)

    # Plugins list global
    plugin_manager.init_plugin_manager(app.root_path + "/plugins", app)
    plugin_manager.activate_plugins()
    plugin_manager.setup_plugins()
Beispiel #5
0
def create_app(config=None):
    """Return a Flask application according to application factory design pattern function.

    Create app object. Configure it. Initialize Flask extensions. Register Blueprints.

    :type config: dict
    :param config: Additional configuration that'll override default values
    """
    app = Flask(__name__)

    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'  # sqlite://<nohostname>/<path>
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    app.config['TEMPLATES_AUTO_RELOAD'] = True
    app.config.from_pyfile('secret.py', silent=True)
    if config is not None:
        app.config.update(config)

    misaka.init_app(app)
    login_manager.init_app(app)
    db.init_app(app)

    app.register_blueprint(login)
    app.register_blueprint(static_pages)
    app.register_blueprint(blog, url_prefix='/blog')
    app.register_blueprint(simple_routes)
    app.register_blueprint(tags_api, url_prefix='/blog')

    return app
Beispiel #6
0
def init_login():
    login_manager = login.LoginManager()
    login_manager.init_app(app)
    # Create user loader function
    @login_manager.user_loader
    def load_user(user_id):
        return db.session.query(User).get(user_id)
Beispiel #7
0
def register_extensions(app):
    db.init_app(app)
    oauth.init_app(app)
    socketio.init_app(app)
    login_manager.init_app(app)
    csrf.init_app(app)
    moment.init_app(app)
Beispiel #8
0
def extensions(app_instance):
    """
    Register 0 or more extensions (mutates the app passed in).

    :param app: Flask application instance
    :return: None
    """
    # debug_toolbar.init_app(app)
    # mail.init_app(app_instance)
    # csrf.init_app(app_instance)
    db.init_app(app_instance)
    login_manager.init_app(app_instance)

    # app.config.update({
    #     'RESTFUL_JSON':{
    #         'cls':CustomJSONEncoder
    #     }
    # })
    # app.json_encoder = CustomJSONEncoder
    # flask_restful.representations.json.settings["cls"] = CustomJSONEncoder

    # metaData = MetaData()
    # engine = create_engine(app_instance.config['SQLALCHEMY_DATABASE_URI'], pool_recycle=3600, pool_size=20, max_overflow=-1)
    # metaData.bind = engine
    # engine.echo = False
    #
    #
    # session_factory = sessionmaker(bind=engine, autoflush=False)
    # session = flask_scoped_session(session_factory, app_instance)

    return app_instance
Beispiel #9
0
def create_app(object_name, env="dev"):
    """
    Arguments:
        object_name: the python path of the config object,
                     e.g. webapp.settings.ProdConfig

        env: The name of the current environment, e.g. prod or dev
    """

    app = Flask(__name__)

    app.config.from_object(object_name)
    app.config['ENV'] = env

    # init the cache
    cache.init_app(app)

    # init SQLAlchemy
    db.init_app(app)

    login_manager.init_app(app)

    # register our blueprints
    from controllers.main import main
    from controllers.user import user
    app.register_blueprint(main)
    app.register_blueprint(user)

    return app
Beispiel #10
0
def create_app(config):
    app = Flask(__name__)
    app.config.from_object(config)
    db.init_app(app)
    # admin.init_app(app)
    login_manager.init_app(app)
    oauth.init_app(app)

    app.add_template_filter(date_filter, 'date')
    app.add_template_filter(null_filter, 'None_filter')
    app.add_template_filter(url_filter, 'url_filter')
    app.add_template_filter(page_filter, 'page_filter')
    app.add_template_filter(isdir, 'isdir')
    app.add_template_filter(relative_path, 'relative_path')

    from blog.main.views import main_blueprint
    app.register_blueprint(main_blueprint)

    from blog.admin.views import admin_blueprint
    app.register_blueprint(admin_blueprint)

    from blog.novel.views import novel_blueprint
    app.register_blueprint(novel_blueprint)

    from blog.cloudhub.views import cloud_hub_blueprint
    app.register_blueprint(cloud_hub_blueprint)

    from .main import views

    return app
Beispiel #11
0
def init_extensions(app):
    db.init_app(app)
    db.app = app
    db.metadata.naming_convention = {
        "ix": 'ix_%(column_0_label)s',
        "uq": "uq_%(table_name)s_%(column_0_name)s",
        "ck": "ck_%(table_name)s_%(column_0_name)s",
        "fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
        "pk": "pk_%(table_name)s"
    }
    # set constraint naming convention to sensible default, per
    # http://docs.sqlalchemy.org/en/rel_0_9/core/constraints.html#configuring-constraint-naming-conventions

    assets.init_app(app)
    assets.app = app
    babel.init_app(app)
    cache.init_app(app)
    csrf.init_app(app)
    mail.init_app(app)
    login_manager.init_app(app)
    store.init_app(app)
    rest.init_app(app,
                  flask_sqlalchemy_db=db,
                  preprocessors=restless_preprocessors)
    rest.app = app

    if app.config.get('DEBUG'):
        from flask_debugtoolbar import DebugToolbarExtension
        DebugToolbarExtension(app)
Beispiel #12
0
def register_extensions(app):
    db.init_app(app)
    moment.init_app(app)
    csrf.init_app(app)
    bootstrap.init_app(app)
    login_manager.init_app(app)
    avatars.init_app(app)
Beispiel #13
0
def create_app(config_name=None):
    if config_name is None:
        config_name = 'default'

    app = Flask(__name__)
    app.config.from_object(config[config_name])

    # db
    db.app = app
    db.init_app(app)

    # login
    login_manager.init_app(app)

    # blueprints
    for bp in blueprints:
        app.register_blueprint(bp)

    #bootstrap
    Bootstrap(app)

    #scheduler
    scheduler = APScheduler()
    scheduler.init_app(app)
    scheduler.start()
    app.scheduler = ScheduleHelper(scheduler)

    logging.basicConfig()

    handle_errors(app)
    handle_date(app)

    return app
Beispiel #14
0
def register_extensions(app):

    # ..config
    config.init_app(app)

    # ..bcrypt
    bcrypt.init_app(app)

    # ..db
    db.init_app(app)

    # ..csrf
    csrf_protect.init_app(app)

    # ...login_manager
    login_manager.init_app(app)
    login_manager.login_view = 'accounts.login'
    login_manager.login_message = None

    @login_manager.user_loader
    def load_user(user_id):
        from accounts.models import User
        return User.get_by_id(user_id)

    # ..migrate
    migrate.init_app(app, db)

    # ..webpack
    if not app.config['MIGRATION_MODE']:
        webpack.init_app(app)

    # ...
    return None
Beispiel #15
0
def create_app():
    app = Flask(__name__)
    app.config.from_envvar('CALAPHIO_CONFIG')

    # Register Blueprints
    app.register_blueprint(core)

    # Register Jinja Filters
    app.jinja_env.filters['sanitize_html'] = sanitize_html

    # Extensions
    db.init_app(app)
    login_manager.init_app(app)
    csrf.init_app(app)
    bootstrap.init_app(app)
    nav.init_app(app)
    principal.init_app(app)
    register_renderer(app, "renderer", BetterBootstrapRenderer)

    # Method Rewriter
    app.wsgi_app = MethodRewriteMiddleware(app.wsgi_app)

    # Identity Loader
    identity_loaded.connect(on_identity_loaded, app, False)

    return app
Beispiel #16
0
def InitLogin(app):
    login_manager.init_app(app)

    @login_manager.user_loader
    def load_user(user_id):
        from app.models import User
        return User.objects(id=user_id).first()
Beispiel #17
0
def create_app(object_name):
    app = Flask(__name__)
    app.config.from_object(DevConfig)
    #db.init_app(app)
    # @app.route('/')
    # def index():
    #     return redirect(url_for('blog.home'))
    login_manager.init_app(app)
    principals.init_app(app)
    db.init_app(app)
    mongo.init_app(app)
    app.register_blueprint(stock_blueprint)
    app.register_blueprint(main_blueprint)
    app.register_blueprint(stocksolo_blueprint)

    @identity_loaded.connect_via(app)
    def on_identity_loaded(sender, identity):
        identity.user = current_user
        if hasattr(current_user, "username"):
            identity.provides.add(UserNeed(current_user.username))
        if hasattr(current_user, 'roles'):
            for role in current_user.roles:
                identity.provides.add(RoleNeed(role))

    return app
Beispiel #18
0
def register_extensions(app):
    # db.init_app(app)
    log.warn(get_connection("mongodb://mongo:27017", 27017))
    # migrate.init_app(app, db)
    login_manager = LoginManager()
    login_manager.init_app(app)
    login_manager.login_view = "user_app.login"
def create_app(object_name):
    app = Flask(__name__)
    app.config.from_object(DevConfig)
    login_manager.init_app(app)
    principals.init_app(app)
    db.init_app(app)
    #模块注册
    app.register_blueprint(stock_blueprint)
    app.register_blueprint(main_blueprint)
    app.register_blueprint(stocksolo_blueprint)
    app.register_blueprint(stockgroup_blueprint)
    app.register_blueprint(globalindustry_blueprint)
    app.register_blueprint(industryanalysis_blueprint)
    app.register_blueprint(investenv_blueprint)
    app.register_blueprint(api_blueprint)

    @identity_loaded.connect_via(app)
    def on_identity_loaded(sender, identity):
        identity.user = current_user
        if hasattr(current_user, "username"):
            identity.provides.add(UserNeed(current_user.username))
        if hasattr(current_user, 'roles'):
            for role in current_user.roles:
                identity.provides.add(RoleNeed(role.name))

    return app
Beispiel #20
0
def configure_extensions(app):
    """ Configure app extension. """
    # flask SQLAlchemy
    db.init_app(app)
    db.create_all(app=app)

    # CSRF Protection
    csrf.init_app(app)

    @csrf.error_handler
    def csrf_error(reason):
        raise CsrfTokenError()

    # mail.init_app(app)

    # flask OAuthlib
    oauth.init_app(app)

    # Login Manger
    login_manager.init_app(app)

    #  Interface for anonymous users
    class AnonymousUserMixin(_AnonymousUserMixin):
        username = '******'
        firstName = ''
        lastName = ''
        email = ''
        role = Role.GUEST
        is_admin = False

    login_manager.login_view = 'auth.post_login'
    login_manager.session_protection = "strong"
    login_manager.anonymous_user = AnonymousUserMixin
Beispiel #21
0
def init_extensions(app):
    db.init_app(app)
    db.app = app
    db.metadata.naming_convention = {
        "ix": 'ix_%(column_0_label)s',
        "uq": "uq_%(table_name)s_%(column_0_name)s",
        "ck": "ck_%(table_name)s_%(column_0_name)s",
        "fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
        "pk": "pk_%(table_name)s"
    }
    # set constraint naming convention to sensible default, per
    # http://docs.sqlalchemy.org/en/rel_0_9/core/constraints.html#configuring-constraint-naming-conventions

    assets.init_app(app)
    assets.app = app
    babel.init_app(app)
    cache.init_app(app)
    csrf.init_app(app)
    mail.init_app(app)
    login_manager.init_app(app)
    rq.init_app(app)
    app.rq = rq
    store.init_app(app)
    rest.init_app(app, flask_sqlalchemy_db=db,
                  preprocessors=restless_preprocessors)
    rest.app = app

    limiter.init_app(app)
    for handler in app.logger.handlers:
        limiter.logger.addHandler(handler)

    if app.config.get('DEBUG'):
        from flask_debugtoolbar import DebugToolbarExtension
        DebugToolbarExtension(app)
        app.debug = True
Beispiel #22
0
def create_app():
    load_dotenv(".env", verbose=True)
    app = Flask(__name__)
    app.config.from_object("default_config")
    app.config.from_envvar("APPLICATION_SETTINGS")
    api = Api(app)

    @app.errorhandler(ValidationError)
    def handle_marshmallow_validation(err):
        return jsonify(err.messages), 400

    @app.before_first_request
    def create_tables():
        db.create_all()

    db.init_app(app)
    ma.init_app(app)

    login_manager.init_app(app)
    # authorize.init_app(app)

    jwt.init_app(app)
    babel.init_app(app)

    # Set up Casbin model config
    app.config['CASBIN_MODEL'] = './src/casbinmodel.conf'
    # Set headers where owner for enforcement policy should be located
    app.config['CASBIN_OWNER_HEADERS'] = {'Authorization'}
    # Set up Casbin Adapter
    adapter = FileAdapter('./src/security_policy.csv')
    casbin_enforcer.init_app(app, adapter)
    # casbin_enforcer = CasbinEnforcer(app, adapter)
    # casbin_enforcer = UpdatedCasbinEnforcer(adapter)

    @app.route("/")
    @casbin_enforcer.enforcer
    def index():
        return jsonify({"hello": "world"})

    from authz.resources.user import UserRegister, UserLogin, UserLogout

    api.add_resource(UserRegister, "/register")
    api.add_resource(UserLogin, "/login")
    api.add_resource(UserLogout, "/logout")

    # from authlogin.resources.security import NewGroup, GroupResource, UserGroup

    # api.add_resource(NewGroup, "/group")
    # api.add_resource(GroupResource, "/group/<int:_id>")
    # api.add_resource(UserGroup, "/usergroup/<int:_id>")
    # # api.add_resource(UserGroup, "/usergroup")

    from main.resources.store import NewStore, Store, StoreList

    api.add_resource(NewStore, "/store")
    api.add_resource(Store, "/store/<int:_id>")
    api.add_resource(StoreList, "/stores")

    return app
Beispiel #23
0
def extension(app):
    csrf.init_app(app)
    moment.init_app(app)
    migrate.init_app(app)
    bootstrap.init_app(app)
    login_manager.init_app(app)
    db.init_app(app)
    return None
def extensions(our_app):

    mail.init_app(our_app)
    csrf.init_app(our_app)
    login_manager.init_app(our_app)
    login_manager.login_view = 'user.login'
    login_manager.login_message_category = 'info'
    return None
Beispiel #25
0
def register_extensions(app):
    toolbar.init_app(app)
    bootstrap.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    moment.init_app(app)
    dropzone.init_app(app)
    whooshee.init_app(app)
Beispiel #26
0
def register_extensions(app):
    bootstrap.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    csrf.init_app(app)
    ckeditor.init_app(app)
    mail.init_app(app)
    moment.init_app(app)
Beispiel #27
0
def configure_login(app):
    login_manager.login_view = 'admin.login'
    login_manager.login_message = u'你尚未登录 (︶︿︶)'
    #login_manager.refresh_view = 'frontend.reauth'

    @login_manager.user_loader
    def load_user(id):
        return Operator.query.get(id)
    login_manager.init_app(app)
Beispiel #28
0
def register_extensions(app):
	database.init_app(app)
	db_init(app.config.get("DROP_DB"))
	login_manager.init_app(app)
	login_manager.session_protection = "strong"
	login_manager.login_view = "main.login"
	bcrypt.init_app(app)

	return None
Beispiel #29
0
def register_extensions(app):
    assets.init_app(app)
    bcrypt.init_app(app)
    cache.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    debug_toolbar.init_app(app)
    migrate.init_app(app, db)
    return None
Beispiel #30
0
def init_extensions(app):
    db.init_app(app)
    import models
    login_manager.init_app(app)

    @login_manager.user_loader
    def load_user(user_id):
        return User.get(user_id)

    admin.init_app(app)
Beispiel #31
0
def extensions(app):
    """
    Register 0 or more extensions (mutates the app passed in).

    :param app: Flask application instance
    :return: None
    """
    db.init_app(app)
    login_manager.init_app(app)
    return None
Beispiel #32
0
def register_extensions(app):
    bootstrap.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    mail.init_app(app)
    dropzone.init_app(app)
    moment.init_app(app)
    whooshee.init_app(app)
    avatars.init_app(app)
    csrf.init_app(app)
Beispiel #33
0
def register_extensions(app):
    """Register Flask extensions."""
    db.init_app(app)
    migrate.init_app(app, db)
    login_manager.init_app(app)
    bcrypt.init_app(app)
    if not scheduler.running:
        scheduler.init_app(app)
        scheduler.start()
    jwt.init_app(app)
Beispiel #34
0
def login_configure(app):
    login_manager.init_app(app)
    login_manager.login_view = app.config['LOGIN_VIEW']

    @login_manager.user_loader
    def load_user(user_id):
        user_instance = User.query.filter_by(id=user_id).first()
        if user_instance:
            return user_instance
        else:
            return None
Beispiel #35
0
def register_extensions(app):
    from extensions import login_manager
    from extensions import migrate
    from extensions import db

    login_manager.init_app(app)
    login_manager.app = app
    db.init_app(app)
    db.app = app
    migrate.init_app(app, db)
    migrate.app = app
Beispiel #36
0
def create_app(app_config):
    app = Flask(__name__)
    app.config.from_object(app_config)

    __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__)))
    with open(os.path.join(__location__, 'secrets.json')) as secrets_file:
        secrets = json.load(secrets_file)
        app.secret_key = secrets.get('app_secret')
        app_config.SECRET_KEY = app.secret_key

    login_manager.login_view = 'login.show'

    admin.add_view(AdminModelView(Challenge, db.session))
    admin.add_view(AdminModelView(Game, db.session))
    admin.add_view(AdminModelView(MarathonInfo, db.session))
    admin.add_view(AdminModelView(Prize, db.session))
    admin.add_view(AdminModelView(Interview, db.session))
    admin.add_view(AdminModelView(ScheduleEntry, db.session))

    with open(os.path.join(__location__, 'secrets.json')) as secrets_file:
        secrets = json.load(secrets_file)
        app.config.update(
            MAIL_SERVER='smtp.gmail.com',
            MAIL_PORT=465,
            MAIL_USERNAME='******',
            MAIL_DEFAULT_SENDER='*****@*****.**',
            MAIL_PASSWORD=secrets.get("email_password"),
            MAIL_USE_SSL=True,
            MAIL_USE_TLS=False
        )

    login_manager.init_app(app)
    admin.init_app(app)
    mail.init_app(app)
    register_routes(app)

    @app.errorhandler(404)
    def page_not_found(e):
        return render_template('404.tmpl'), 404

    @login_manager.user_loader
    def load_user(id):
        return db.session.query(User).filter_by(id=id).first()

    @app.context_processor
    def inject_marathon_info():
        marathon_info = getattr(g, "marathon_info", None)
        if not marathon_info:
            marathon_info = g.marathon_info = db.session.query(MarathonInfo).first()
        current_game = db.session.query(Game).filter_by(id=marathon_info.current_game_id).first()
        return dict(marathon_info=marathon_info, current_game=current_game)

    return app
Beispiel #37
0
def configure_extensions(app):
    db.init_app(app)
    login_manager.init_app(app)
    @app.after_request
    def after_request(response):
        try:
            db.session.commit()

        except Exception,e:

            db.session.rollback()
            abort(500)
        return response
Beispiel #38
0
def config_app(app, config):
    app.logger.info('Setting up application...')

    app.logger.info('Loading config file: %s' % config)
    app.config.from_pyfile(config)

    app.logger.info('Setting up extensions...')
    db.init_app(app)
    # Init the Flask-Bcrypt via app object
    bcrypt.init_app(app)

    # Init the Flask-Login via app object
    login_manager.init_app(app)
    # Init the Flask-Prinicpal via app object
    principals.init_app(app)

    @identity_loaded.connect_via(app)
    def on_identity_loaded(sender, identity):
        """Change the role via add the Need object into Role.

           Need the access the app object.
        """

        # Set the identity user object
        identity.user = current_user

        # Add the UserNeed to the identity user object
        if hasattr(current_user, 'id'):
            identity.provides.add(UserNeed(current_user.id))

        # Add each role to the identity user object
        if hasattr(current_user, 'roles'):
            for role in current_user.roles:
                identity.provides.add(RoleNeed(role.name))
    # 自定义全局函数
    app.add_template_global(admin_permission, 'admin_permission')
    app.add_template_global(app.config.get('VERSION_NO'), 'version_no')

    # Init the Flask-Cache via app object
    cache.init_app(app)


    @app.after_request
    def after_request(response):
        try:
            db.session.commit()
        except Exception:
            db.session.rollback()
            abort(500)
        return response
Beispiel #39
0
def config_app(app, config):
    logger.info('Setting up application...')
    app.config.from_pyfile(config)
    db.init_app(app)
    oid.init_app(app)
    login_manager.init_app(app)
    
    @app.after_request
    def after_request(response):
        try:
            db.session.commit()
        except Exception:
            db.session.rollback()
            abort(500)
        return response
def create_app(config=None):
    app = Flask('scaffold', instance_relative_config=True)
    if config is not None:
        app.config.from_object(config)

    init_logger(app)
    logger.info('starting %s' % app.name)
    db.init_app(app)
    cors.init_app(app)
    celery.config_from_object(app.config)
    login_manager.init_app(app)
    api.init_app(app)
    init_api(api, app)
    logger.info('started %s' % app.name)

    return app
Beispiel #41
0
def configure_extensions(app):
    pages.init_app(app)

    bootstrap.init_app(app)
    app.config["BOOTSTRAP_SERVE_LOCAL"] = True

    db.init_app(app)
    app.config["db"] = db

    login_manager.init_app(app)
    app.config['ext_login_manager'] = login_manager

    configure_identity(app)

    moment.init_app(app)

    mail.init_app(app)
    app.config['ext_mail'] = mail

    sendmail.init_app(app)
    app.config['contrib_sendmail'] = sendmail
Beispiel #42
0
def create_app(object_name):
    """
    An flask application factory, as explained here:
    http://flask.pocoo.org/docs/patterns/appfactories/

    Arguments:
        object_name: the python path of the config object,
                     e.g. project.config.ProdConfig
    """

    app = Flask(__name__)
    app.config.from_object(object_name)

    db.init_app(app)
    mongo.init_app(app)

    bcrypt.init_app(app)
    oid.init_app(app)
    login_manager.init_app(app)
    principals.init_app(app)

    @identity_loaded.connect_via(app)
    def on_identity_loaded(sender, identity):
        # Set the identity user object
        identity.user = current_user

        # Add the UserNeed to the identity
        if hasattr(current_user, 'id'):
            identity.provides.add(UserNeed(current_user.id))

        # Add each role to the identity
        if hasattr(current_user, 'roles'):
            for role in current_user.roles:
                identity.provides.add(RoleNeed(role.name))

    app.register_blueprint(main_blueprint)
    app.register_blueprint(blog_blueprint)

    return app
def configure_extensions(app):
    """ Configure app extension. """
    # flask SQLAlchemy
    db.init_app(app)
    db.create_all(app=app)

    # CSRF Protection
    csrf.init_app(app)

    @csrf.error_handler
    @xhr_or_template('errors/forbidden-page.html')
    def csrf_error(message):
        flash(message, 'danger')
        return {'status': 403}


    # mail.init_app(app)

    # Login Manger
    login_manager.init_app(app)
    login_manager.login_view = 'frontend.login'

    # Setup login manager anonymous class.
    class DefaultAnonymousUserMixin(AnonymousUserMixin):
        id = None
        firstName = None
        lastName = None
        username = '******'
        email = None
        dateJoined = None
        avatar = 'avatar.jpg' # TODO: find a better avatar img for guest users

        @staticmethod
        def is_admin():
            return False

    login_manager.anonymous_user = DefaultAnonymousUserMixin
Beispiel #44
0
def configure_extensions(app):
    # flask-babel
    babel = Babel(app)

    @babel.localeselector
    def get_locale():
        accept_languages = app.config.get('ACCEPT_LANGUAGES')
        return request.accept_languages.best_match(accept_languages)

    # flask-sqlalchemy
    db.init_app(app)

    # flask-mail
    mail.init_app(app)

    #mongo db
    mongo.init_app(app)

    # flask-cache
    cache.init_app(app)

    # flask-login
    login_manager.login_view = 'frontend.login'
    login_manager.refresh_view = 'frontend.reauth'

    @login_manager.user_loader
    def load_user(id):
        return User.query.get(id)
    login_manager.init_app(app)

    # flask-openid
    oid.init_app(app)

    # init debug toolbar
    toolbar = DebugToolbarExtension(app)

    init_extensions(app)
Beispiel #45
0
from apps.oauth.views import oauth_app

from app_exceptions import UserInputError

app = Flask(__name__)
app.config.from_object(os.environ.get('APP_CONFIG_CLASS'))

@app.errorhandler(UserInputError)
def handle_user_input_error(error):
    response = jsonify(error.to_dict())
    response.status_code = error.status_code
    return response


db.init_app(app)
db.app = app
oauth.init_app(app)
login_manager.init_app(app)
manager = Manager(app)
migrate = Migrate(app, db)

manager.add_command('db', MigrateCommand)

app.register_blueprint(index_app, url_prefix='/')
app.register_blueprint(user_app, url_prefix='/user')
app.register_blueprint(oauth_app, url_prefix='/oaut')


if __name__ == '__main__':
    manager.run()
Beispiel #46
0
def create_app(app_config):
    app = Flask(__name__)
    app.config.from_object(app_config)

    # create a fake MarathonInfo if one doesn't exist
    # just enough to bootstrap
    info = db.session.query(MarathonInfo).first()
    if not info:
        now = datetime.datetime.now()
        half_an_hour_earlier = now - datetime.timedelta(minutes=30)
        half_an_hour_later = now + datetime.timedelta(minutes=30)

        test_game = Game.create(name='Test Game', developer='Test Dev')

        test_play = ScheduleEntry.create(
            title='Play The Test Game',
            game_id=test_game.id,
            start=half_an_hour_earlier,
            end=half_an_hour_later
        )

        MarathonInfo.create(
            start=(now - datetime.timedelta(hours=10)),
            hours=31,
            total=12345.67,
            current_game_id=test_game.id,
            next_game_id=test_game.id,
            current_schedule_entry=test_play.id
        )

    __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__)))
    try: # dev
        with open(os.path.join(__location__, 'secrets.json')) as secrets_file:
            secrets = json.load(secrets_file)
            app.secret_key = secrets.get('app_secret')
            app_config.SECRET_KEY = app.secret_key

            app.config.update(
                MAIL_SERVER='smtp.gmail.com',
                MAIL_PORT=465,
                MAIL_USERNAME='******',
                MAIL_DEFAULT_SENDER='*****@*****.**',
                MAIL_PASSWORD=secrets.get("email_password"),
                MAIL_USE_SSL=True,
                MAIL_USE_TLS=False
            )
    except IOError: # prod
        app.secret_key = os.environ.get('IGG_APP_SECRET')
        app_config.SECRET_KEY = app.secret_key

        app.config.update(
            MAIL_SERVER='smtp.gmail.com',
            MAIL_PORT=465,
            MAIL_USERNAME='******',
            MAIL_DEFAULT_SENDER='*****@*****.**',
            MAIL_PASSWORD=os.environ.get("IGG_EMAIL_PASSWORD"),
            MAIL_USE_SSL=True,
            MAIL_USE_TLS=False
        )

    login_manager.login_view = 'login.show'

    admin.add_view(AdminModelView(Challenge, db.session, endpoint='challengeadmin'))
    admin.add_view(AdminModelView(Game, db.session))
    admin.add_view(AdminModelView(MarathonInfo, db.session))
    admin.add_view(AdminModelView(Prize, db.session))
    admin.add_view(AdminModelView(Interview, db.session))
    admin.add_view(AdminModelView(ScheduleEntry, db.session))
    admin.add_view(AdminModelView(User, db.session))
    admin.add_view(AdminModelView(Crew, db.session))
    
    admin.add_view(ImageView(Image, db.session))

    login_manager.init_app(app)
    admin.init_app(app)
    mail.init_app(app)
    register_routes(app)

    @app.errorhandler(404)
    def page_not_found(e):
        return render_template('404.tmpl'), 404

    @login_manager.user_loader
    def load_user(id):
        return db.session.query(User).filter_by(id=id).first()

    @app.context_processor
    def inject_marathon_info():
        marathon_info = getattr(g, "marathon_info", None)
        if not marathon_info:
            marathon_info = g.marathon_info = db.session.query(MarathonInfo).first()
        current_game = db.session.query(Game).filter_by(id=marathon_info.current_game_id).first()
        return dict(marathon_info=marathon_info, current_game=current_game)

    return app
Beispiel #47
0
def configure_extensions(app):
    db.init_app(app)
    login_manager.init_app(app)
    mail.init_app(app)
Beispiel #48
0
def register_extensions(app):
    """Register all extensions."""
    login_manager.init_app(app)
    debug_toolbar.init_app(app)
    mail.init_app(app)
Beispiel #49
0
def configure_extensions(app):
    db.init_app(app)
    login_manager.init_app(app)
    login_manager.login_view = '/login'