217 lines
6.8 KiB
Python
217 lines
6.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
# ....
|
|
# available languages
|
|
import datetime
|
|
import os
|
|
import logging
|
|
from enum import Enum, auto
|
|
|
|
logger = logging.getLogger(__name__)
|
|
logger.setLevel(logging.DEBUG)
|
|
|
|
basedir = os.path.abspath(os.path.dirname(__file__))
|
|
logs_dir = os.path.abspath(os.path.join(basedir, os.path.pardir, 'logs'))
|
|
|
|
print("Logging to: {}".format(logs_dir))
|
|
if not os.path.exists(logs_dir):
|
|
print("Logging directory does not yet exist: creating it!")
|
|
os.makedirs(logs_dir)
|
|
|
|
logger.info("Basedir is: {}".format(basedir))
|
|
|
|
|
|
class Config:
|
|
LOG_LEVEL = "DEBUG"
|
|
DEBUG = True
|
|
TESTING = True
|
|
ROOT_LOG_FILE = os.path.join(logs_dir, "root.log")
|
|
LOG_FILE = os.path.join(logs_dir, "app.log")
|
|
CRON_LOG_FILE = os.path.join(logs_dir, "cron.log")
|
|
ERROR_LOG_FILE = os.path.join(logs_dir, "error.log")
|
|
|
|
# SERVER_NAME = "ubkaps154.ubka.uni-karlsruhe.de:5443"
|
|
# SERVER_NAME = "localhost.dev"
|
|
SERVER_NAME = "localhost:8080"
|
|
# SERVER_NAME = "lrc.test:5443"
|
|
# SERVER_NAME = "localhost"
|
|
# SERVER_NAME = "localhost.localdomain"
|
|
# PORT = 5443
|
|
|
|
OPENCAST_URL = "https://oc-bib-admin.bibliothek.kit.edu"
|
|
OPENCAST_USER = "admin"
|
|
OPENCAST_PW = "mz.paziuw!"
|
|
|
|
TEMPLATE_AUTO_RELOAD = True
|
|
|
|
CAMPUS_MANAGEMENT_USER = "bib"
|
|
CAMPUS_MANAGEMENT_PW = "bwTf8EVazosl7:4d2YBOz!"
|
|
|
|
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'app.db')
|
|
SQLALCHEMY_MIGRATE_REPO = os.path.join(basedir, 'db_repository')
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = True
|
|
|
|
WTF_CSRF_ENABLED = True
|
|
SECRET_KEY = 'you-will-never-guess'
|
|
OPENID_PROVIDERS = [
|
|
{'name': 'Google', 'url': 'https://www.google.com/accounts/o8/id'},
|
|
{'name': 'Yahoo', 'url': 'https://me.yahoo.com'},
|
|
{'name': 'AOL', 'url': 'http://openid.aol.com/<username>'},
|
|
{'name': 'Flickr', 'url': 'http://www.flickr.com/<username>'},
|
|
{'name': 'MyOpenID', 'url': 'https://www.myopenid.com'}]
|
|
|
|
OAUTH_CREDENTIALS = {
|
|
'facebook': {
|
|
'id': '1198624176930248',
|
|
'secret': '4fbc01d776834c1ffc89a5bed1cd97d0'
|
|
},
|
|
'twitter': {
|
|
'id': '3RzWQclolxWZIMq5LJqzRZPTl',
|
|
'secret': 'm9TEd58DSEtRrZHpz2EjrV9AhsBRxKMo8m3kuIZj3zLwzwIimt'
|
|
},
|
|
'google': {
|
|
'id': '1084993305658-d9n88548ssrtmt5v6s2dne57i4qpviur.apps.googleusercontent.com',
|
|
'secret': 'oNpvoAKMPMjRyiu5EDrmmX4X'
|
|
},
|
|
}
|
|
|
|
# OIDC_REDIRECT_URI = "https://ubkaps154.ubka.uni-karlsruhe.de:5443/redirect_uri" # not required if SERVER_NAME set
|
|
|
|
SESSION_PERMANENT = True # turn on flask session support
|
|
PERMANENT_SESSION_LIFETIME = datetime.timedelta(days=7).total_seconds() # session time in secs
|
|
|
|
# mail server settings
|
|
MAIL_SERVER = 'localhost'
|
|
MAIL_PORT = 25
|
|
MAIL_USERNAME = None
|
|
MAIL_PASSWORD = None
|
|
|
|
SMTP_SERVER = "smarthost.kit.edu"
|
|
FROM_MAIL = "noreply@lrc.bib.kit.edu"
|
|
ERROR_E_MAIL_TO = ["kurze@kit.edu", "andreas.reichert@kit.edu"]
|
|
ADMIN_E_MAIL_TO = ["kurze@kit.edu", "andreas.reichert@kit.edu"]
|
|
|
|
# administrator list
|
|
ADMINS = ['you@example.com']
|
|
|
|
# pagination
|
|
POSTS_PER_PAGE = 5
|
|
LOCKS_PER_PAGE = 8
|
|
|
|
LANGUAGES = {
|
|
'en': 'English',
|
|
'es': 'Español'
|
|
}
|
|
|
|
# ASSETS_DEBUG = True
|
|
|
|
# JWT_SECRET = "abcxyz"
|
|
# JWT_ALGORITHM = "HS256"
|
|
# JWT_EXP_DELTA_SECONDS = 5 * 60
|
|
|
|
JWT_SECRET_KEY = "abcxyz"
|
|
JWT_BLACKLIST_ENABLED = True
|
|
JWT_BLACKLIST_TOKEN_CHECKS = ['access', 'refresh']
|
|
JWT_TOKEN_LOCATION = ['headers', 'cookies', 'json', 'query_string']
|
|
|
|
AUTH_RETURN_EXTERNAL_JWT = False
|
|
|
|
INDEX_TEMPLATE = "index.html"
|
|
|
|
# # INITIAL VALUES # #
|
|
|
|
class Permissions(Enum):
|
|
RECODER_NEW = "RECODER_NEW"
|
|
RECORDER_EDIT = "RECORDER_EDIT"
|
|
RECODER_SHOW = "RECODER_SHOW"
|
|
RECORDER_DELETE = "RECORDER_DELETE"
|
|
RECORDERS_LIST = "RECORDERS_LIST"
|
|
RECODER_MODEL_SHOW = "RECODER_MODEL_SHOW"
|
|
RECODER_MODEL_EDIT = "RECODER_MODEL_EDIT"
|
|
RECODER_MODELS_LIST = "RECODER_MODELS_LIST"
|
|
RECORDER_COMMAND_SHOW = "RECORDER_COMMAND_SHOW"
|
|
RECORDER_COMMAND_EDIT = "RECORDER_COMMAND_EDIT"
|
|
RECORDER_COMMANDS_LIST = "RECORDER_COMMANDS_LIST"
|
|
RECORDER_COMMAND_EXECUTE = "RECORDER_COMMAND_EXECUTE"
|
|
RECORDER_COMMAND_EDIT_ACL = "RECORDER_COMMAND_EDIT_ACL"
|
|
VIRTUAL_COMMAND_CREATE = "VIRTUAL_COMMAND_CREATE"
|
|
VIRTUAL_COMMAND_EDIT = "VIRTUAL_COMMAND_EDIT"
|
|
VIRTUAL_COMMAND_SHOW = "VIRTUAL_COMMAND_SHOW"
|
|
VIRTUAL_COMMAND_DELETE = "VIRTUAL_COMMAND_DELETE"
|
|
CRON_JOB_CREATE = "CRON_JOB_CREATE"
|
|
CRON_JOB_EDIT = "CRON_JOB_EDIT"
|
|
CRON_JOB_SHOW = "CRON_JOB_SHOW"
|
|
CRON_JOB_DELETE = "CRON_JOB_DELETE"
|
|
CRON_JOBS_LIST = "CRON_JOBS_LIST"
|
|
USER_CREATE = "USER_CREATE"
|
|
USER_EDIT = "USER_EDIT"
|
|
USER_SHOW = "USER_SHOW"
|
|
USER_DELETE = "USER_DELETE"
|
|
USERS_LIST = "USERS_LIST"
|
|
|
|
def __str__(self):
|
|
return str(self.value)
|
|
|
|
PERMISSIONS = [str(e.value) for e in Permissions]
|
|
|
|
GROUPS = [ # {"name": "Admins",
|
|
# "permissions": PERMISSIONS},
|
|
{"name": "BIB-LRC-Admin", "permissions": PERMISSIONS}, # BIB Admins may do (almost) anything
|
|
{"name": "BIB-LRC-User", "permissions": ["USERS_LIST", "RECORDERS_LIST", "RECODER_SHOW", "CRON_JOBS_LIST"]},
|
|
{"name": "ZML"},
|
|
{"name": "read_only"}]
|
|
|
|
USERS = [{"nickname": "admin",
|
|
"first_name": "Tobias",
|
|
"last_name": "Kurze",
|
|
"email": "kurze@kit.edu",
|
|
"role": "admin",
|
|
"password": "admin"}
|
|
]
|
|
|
|
class Roles(Enum):
|
|
ADMIN = "admin"
|
|
|
|
def __str__(self):
|
|
return str(self.value)
|
|
|
|
ROLE_PERMISSION_MAPPINGS = { # roles are a 'special' attribute that may grant permissions in addition to groups
|
|
str(Roles.ADMIN): PERMISSIONS
|
|
}
|
|
|
|
DEFAULT_ARCHIVE_STREAM_1_NAME = "extron1"
|
|
DEFAULT_ARCHIVE_STREAM_2_NAME = "extron2"
|
|
|
|
STREAM_SANITY_CHECK_RETRIES = 3
|
|
STREAM_SANITY_CHECK_INTERVAL_SEC = 5
|
|
|
|
|
|
class ProductionConfig(Config):
|
|
DATABASE_URI = 'mysql://user@localhost/foo'
|
|
DEBUG = False
|
|
|
|
|
|
class DevelopmentConfig(Config):
|
|
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'app.db_debug')
|
|
# SERVER_NAME = "*:5443"
|
|
USE_SSL = False
|
|
PREFERRED_URL_SCHEME = 'http'
|
|
|
|
HOST = "localhost"
|
|
PORT = 5443
|
|
SERVER_NAME = f"{HOST}:{PORT}"
|
|
# OIDC_REDIRECT_URI = "https://ubkaps154.ubka.uni-karlsruhe.de:5443/redirect_uri" # not required if SERVER_NAME set
|
|
|
|
DEBUG = True
|
|
|
|
|
|
class TestingConfig(Config):
|
|
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'app.db_test')
|
|
TESTING = True
|
|
USE_SSL = True
|
|
PREFERRED_URL_SCHEME = 'https'
|
|
CERT = os.path.join(basedir, "cert.pem")
|
|
KEY = os.path.join(basedir, "key.pem")
|
|
HOST = "ubkaps154.ubka.uni-karlsruhe.de"
|
|
PORT = 5443
|
|
SERVER_NAME = f"{HOST}:{PORT}"
|