示例#1
0
def _disable_plugins():
    plugin = request.args.get('disableplugins', 0, type=str)
    pluginsmanager = PluginManager()
    try:
        pluginsmanager.disable_plugins([get_plugin_from_all(plugin)])
    except KeyError:
        pass
    return jsonify(success=True)
    def setUp(self):
        self.app = Flask(__name__)
        self.app.config['TESTING'] = True
        self.plugin_manager = PluginManager()
        self.plugin_manager.init_app(self.app)

        # Call load_plugins to reload them without calling setup_plugins()
        self.plugin_manager.load_plugins()
示例#3
0
文件: ext.py 项目: weko3-dev15/weko
    def init_app(self, app):
        """Flask application initialization.

        :param app: The Flask application.
        """
        self.init_config(app)
        self.plugin_manager = PluginManager()
        sys.path.append('/code')
        root_path = app.root_path
        app.root_path = os.path.join('/code', 'plugins')
        self.plugin_manager.init_app(app,
                                     base_app_folder='plugins',
                                     plugin_folder='plugin')
        app.root_path = root_path
        app.register_blueprint(blueprint)
        # Register Jinja2 template filters for plugins formatting
        app.add_template_global(current_plugins, name='current_plugins')
        app.extensions['weko-plugins'] = self
 def setUp(self):
     self.app = Flask(__name__)
     self.app.config['TESTING'] = True
     self.plugin_manager = PluginManager()
 def test_class_init(self):
     plugin_manager = PluginManager(self.app)
     self.assertIsInstance(plugin_manager, PluginManager)
    def test_init_app(self):
        plugin_manager = PluginManager()
        plugin_manager.init_app(self.app)

        self.assertIsInstance(plugin_manager, PluginManager)
示例#7
0
# Timeouts
timeouts = dict()

# Ratelimits
ratelimits = dict()

# Newsletter
from .newsletter import Newsletter
newsletter = Newsletter()

# Importer
from .importers import Importer
importer = Importer()

from flask_plugins import PluginManager
plugin_manager = PluginManager()

from flask_assets import Environment
assets = Environment()

from flask.json import JSONEncoder as BaseEncoder
from speaklater import _LazyString


class JSONEncoder(BaseEncoder):  # pragma: no cover
    """JSON Encoder to deal with Babel lazy strings."""
    def default(self, o):
        if isinstance(o, _LazyString):
            return str(o)

        return BaseEncoder.default(self, o)
示例#8
0
def create_app(test_config=None):
    # create and configure the app
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_object(os.environ['APP_SETTINGS'])
    db.init_app(app)
    db.app = app

    # hook up mail
    mail = Mail(app)

    try:
        # initialize data store and setup roles, security
        # this will fail if the db does not exist ...
        user_datastore = SQLAlchemyUserDatastore(db, User, Role)
        user_datastore.find_or_create_role(name='admin',
                                           description='Administrator')
        user_datastore.find_or_create_role(name='client', description='Client')
        user_datastore.commit()
        security = Security(app, user_datastore)
    except:
        pass

    with app.app_context():
        # Create admin
        if admin.app is None:
            admin.init_app(app)

        app.config['FLASK_ADMIN_SWATCH'] = 'cosmo'

        admin.add_view(UserAdmin(User, db.session))
        admin.add_view(RoleAdmin(Role, db.session))
        admin.add_view(BaseAdmin(Company, db.session))
        admin.add_view(BaseAdmin(UserRequest, db.session))
        admin.add_view(BaseAdmin(Project, db.session))
        admin.add_view(BaseAdmin(ServiceAgreement, db.session))

        # Initialize the plugin manager
        plugin_manager = PluginManager(app)
        plugins = get_enabled_plugins()

        if test_config is None:
            # load the instance config, if it exists, when not testing
            app.config.from_pyfile('config.py', silent=True)
        else:
            # load the test config if passed in
            app.config.from_mapping(test_config)

        # ensure the instance folder exists
        try:
            os.makedirs(app.instance_path)
        except OSError:
            pass

        app.register_blueprint(user_bp)
        app.register_blueprint(company_bp)
        app.register_blueprint(request_bp)
        app.register_blueprint(project_bp)

        # internal version
        @app.route('/version')
        def version():
            return app_version

        # index
        @app.route("/")
        def index():
            return render_template("index.html")

        @app.route("/plugins")
        @login_required
        def plugins():
            return render_template("plugins.html",
                                   plugins=get_enabled_plugins())

        @app.route("/disable/<plugin>")
        def disable(plugin):
            plugin = get_plugin(plugin)
            plugin_manager.disable_plugins([plugin])
            return redirect(url_for("index"))

        @app.route("/enable/<plugin>")
        def enable(plugin):
            plugin = get_plugin(plugin)
            plugin_manager.enable_plugins([plugin])
            return redirect(url_for("index"))

    return app
示例#9
0
from oauthlib.oauth2 import WebApplicationClient

from lib.Authentication import AuthenticationHandler
from lib.Config import Configuration
from lib.DatabaseSchemaChecker import SchemaChecker, DatabaseSchemaError
from lib.LogHandler import AppLogger
from lib.Toolkit import isURL
from lib.User import User

auth_handler = AuthenticationHandler()

logging.setLoggerClass(AppLogger)

login_manager = LoginManager()

plugins = PluginManager()

app = None
token_blacklist = None
socketio = None
oidcClient = None
config = None

ACCESS_EXPIRES = timedelta(minutes=15)
REFRESH_EXPIRES = timedelta(days=30)


def create_app(version, run_path):

    global app, token_blacklist, socketio, oidcClient, config