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()
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)
# 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)
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
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