mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-06-13 09:30:40 +00:00
Simplify Config setup and move some functions to dedicated files
This commit is contained in:
@ -1,7 +1,8 @@
|
||||
from config import config
|
||||
from config import Config
|
||||
from flask import Flask
|
||||
from flask_login import LoginManager
|
||||
from flask_mail import Mail
|
||||
from flask_migrate import Migrate
|
||||
from flask_paranoid import Paranoid
|
||||
from flask_socketio import SocketIO
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
@ -10,23 +11,26 @@ import flask_assets
|
||||
|
||||
assets = flask_assets.Environment()
|
||||
db = SQLAlchemy()
|
||||
login_manager = LoginManager()
|
||||
login_manager.login_view = 'auth.login'
|
||||
login = LoginManager()
|
||||
login.login_view = 'auth.login'
|
||||
login.login_message = 'Please log in to access this page.'
|
||||
mail = Mail()
|
||||
migrate = Migrate()
|
||||
paranoid = Paranoid()
|
||||
paranoid.redirect_view = '/'
|
||||
socketio = SocketIO()
|
||||
|
||||
|
||||
def create_app(config_name):
|
||||
def create_app(config_class=Config):
|
||||
app = Flask(__name__)
|
||||
app.config.from_object(config[config_name])
|
||||
app.config.from_object(config_class)
|
||||
|
||||
assets.init_app(app)
|
||||
config[config_name].init_app(app)
|
||||
config_class.init_app(app)
|
||||
db.init_app(app)
|
||||
login_manager.init_app(app)
|
||||
login.init_app(app)
|
||||
mail.init_app(app)
|
||||
migrate.init_app(app, db)
|
||||
paranoid.init_app(app)
|
||||
socketio.init_app(
|
||||
app, message_queue=app.config['NOPAQUE_SOCKETIO_MESSAGE_QUEUE_URI'])
|
||||
|
25
app/cli.py
Normal file
25
app/cli.py
Normal file
@ -0,0 +1,25 @@
|
||||
from .models import Role
|
||||
from flask_migrate import upgrade
|
||||
|
||||
|
||||
def register(app):
|
||||
@app.cli.command()
|
||||
def deploy():
|
||||
"""Run deployment tasks."""
|
||||
# migrate database to latest revision
|
||||
upgrade()
|
||||
# create or update user roles
|
||||
Role.insert_roles()
|
||||
|
||||
@app.cli.command()
|
||||
def tasks():
|
||||
from app.tasks import TaskRunner
|
||||
task_runner = TaskRunner()
|
||||
task_runner.run()
|
||||
|
||||
@app.cli.command()
|
||||
def test():
|
||||
"""Run the unit tests."""
|
||||
import unittest
|
||||
tests = unittest.TestLoader().discover('tests')
|
||||
unittest.TextTestRunner(verbosity=2).run(tests)
|
@ -1,11 +1,11 @@
|
||||
from datetime import datetime, timedelta
|
||||
from flask import current_app, url_for
|
||||
from flask_login import UserMixin, AnonymousUserMixin
|
||||
from flask_login import UserMixin
|
||||
from itsdangerous import BadSignature, TimedJSONWebSignatureSerializer
|
||||
from time import sleep
|
||||
from werkzeug.security import generate_password_hash, check_password_hash
|
||||
import xml.etree.ElementTree as ET
|
||||
from . import db, login_manager
|
||||
from . import db, login
|
||||
import base64
|
||||
import logging
|
||||
import os
|
||||
@ -285,18 +285,6 @@ class User(UserMixin, db.Model):
|
||||
return user
|
||||
|
||||
|
||||
class AnonymousUser(AnonymousUserMixin):
|
||||
'''
|
||||
Model replaces the default AnonymousUser.
|
||||
'''
|
||||
|
||||
def can(self, permissions):
|
||||
return False
|
||||
|
||||
def is_administrator(self):
|
||||
return False
|
||||
|
||||
|
||||
class JobInput(db.Model):
|
||||
'''
|
||||
Class to define JobInputs.
|
||||
@ -722,13 +710,6 @@ class QueryResult(db.Model):
|
||||
return '<QueryResult {}>'.format(self.title)
|
||||
|
||||
|
||||
'''
|
||||
' Flask-Login is told to use the application’s custom anonymous user by setting
|
||||
' its class in the login_manager.anonymous_user attribute.
|
||||
'''
|
||||
login_manager.anonymous_user = AnonymousUser
|
||||
|
||||
|
||||
@login_manager.user_loader
|
||||
@login.user_loader
|
||||
def load_user(user_id):
|
||||
return User.query.get(int(user_id))
|
||||
|
Reference in New Issue
Block a user