Restructured config setup
This commit is contained in:
parent
9537943fa5
commit
97562394ce
|
@ -1,6 +1,5 @@
|
||||||
# Python imports
|
# Python imports
|
||||||
import os, secrets
|
import os
|
||||||
from datetime import timedelta
|
|
||||||
|
|
||||||
|
|
||||||
# Lib imports
|
# Lib imports
|
||||||
|
@ -16,40 +15,14 @@ from flask_login import current_user, login_user, logout_user, LoginManager
|
||||||
from core.utils import Logger
|
from core.utils import Logger
|
||||||
|
|
||||||
|
|
||||||
# Configs and 'init'
|
|
||||||
APP_NAME = ':::APP TITLE:::'
|
|
||||||
ROOT_FILE_PTH = os.path.dirname(os.path.realpath(__file__))
|
|
||||||
# This path is submitted as the redirect URI in certain code flows.
|
|
||||||
# Change localhost%3A6969 to different port accordingly or change to your domain.
|
|
||||||
REDIRECT_LINK = "http%3A%2F%2Flocalhost%3A6969%2F"
|
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
app.config.update({
|
app.config.from_object("core.config.Config")
|
||||||
"TITLE": APP_NAME,
|
|
||||||
'DEBUG': False,
|
|
||||||
'LOGIN_PATH': "FLASK_LOGIN", # Value can be OIDC or FLASK_LOGIN
|
|
||||||
'SECRET_KEY': secrets.token_hex(32), # For csrf and some other stuff...
|
|
||||||
'PERMANENT_SESSION_LIFETIME': timedelta(days = 7).total_seconds(),
|
|
||||||
'SQLALCHEMY_DATABASE_URI': "sqlite:///static/db/database.db",
|
|
||||||
'SQLALCHEMY_TRACK_MODIFICATIONS': False,
|
|
||||||
'APP_REDIRECT_URI': REDIRECT_LINK,
|
|
||||||
'OIDC_CLIENT_SECRETS': ROOT_FILE_PTH + '/client_secrets.json',
|
|
||||||
'OIDC_ID_TOKEN_COOKIE_SECURE': True, # Only set false in development setups...
|
|
||||||
'OIDC_REQUIRE_VERIFIED_EMAIL': False,
|
|
||||||
'OIDC_USER_INFO_ENABLED': True,
|
|
||||||
'OIDC_VALID_ISSUERS': [
|
|
||||||
'http://localhost:8080/auth/realms/apps',
|
|
||||||
'https://localhost:443/auth/realms/apps'
|
|
||||||
],
|
|
||||||
'OIDC_TOKEN_TYPE_HINT': 'access_token'
|
|
||||||
})
|
|
||||||
|
|
||||||
oidc = OpenIDConnect(app)
|
oidc = OpenIDConnect(app)
|
||||||
login_manager = LoginManager(app)
|
login_manager = LoginManager(app)
|
||||||
bcrypt = Bcrypt(app)
|
bcrypt = Bcrypt(app)
|
||||||
logger = Logger().get_logger()
|
logger = Logger().get_logger()
|
||||||
|
|
||||||
|
|
||||||
def oidc_loggedin():
|
def oidc_loggedin():
|
||||||
return oidc.user_loggedin
|
return oidc.user_loggedin
|
||||||
|
|
||||||
|
@ -60,10 +33,9 @@ def oidc_isAdmin():
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
app.jinja_env.globals['oidc_loggedin'] = oidc_loggedin
|
app.jinja_env.globals['oidc_loggedin'] = oidc_loggedin
|
||||||
app.jinja_env.globals['oidc_isAdmin'] = oidc_isAdmin
|
app.jinja_env.globals['oidc_isAdmin'] = oidc_isAdmin
|
||||||
app.jinja_env.globals['TITLE'] = APP_NAME
|
app.jinja_env.globals['TITLE'] = app.config["TITLE"]
|
||||||
|
|
||||||
|
|
||||||
from core.models import db, User
|
from core.models import db, User
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
# System import
|
||||||
|
import os, secrets, json
|
||||||
|
from datetime import timedelta
|
||||||
|
|
||||||
|
|
||||||
|
# Lib imports
|
||||||
|
|
||||||
|
|
||||||
|
# Apoplication imports
|
||||||
|
|
||||||
|
|
||||||
|
APP_NAME = ':::APP TITLE:::'
|
||||||
|
ROOT_FILE_PTH = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
# This path is submitted as the redirect URI in certain code flows.
|
||||||
|
# Change localhost%3A6969 to different port accordingly or change to your domain.
|
||||||
|
REDIRECT_LINK = "http%3A%2F%2Flocalhost%3A6969%2F"
|
||||||
|
|
||||||
|
|
||||||
|
class FileGroups:
|
||||||
|
videos = ('.mkv', '.avi', '.flv', '.mov', '.m4v', '.mpg', '.wmv', '.mpeg', '.mp4', '.webm')
|
||||||
|
office = ('.doc', '.docx', '.xls', '.xlsx', '.xlt', '.xltx', '.xlm', '.ppt', 'pptx', '.pps', '.ppsx', '.odt', '.rtf')
|
||||||
|
images = ('.png', '.jpg', '.jpeg', '.gif', '.ico', '.tga')
|
||||||
|
text = ('.txt', '.text', '.sh', '.cfg', '.conf')
|
||||||
|
music = ('.psf', '.mp3', '.ogg', '.flac', '.m4a')
|
||||||
|
pdf = ('.pdf')
|
||||||
|
|
||||||
|
|
||||||
|
class Config(object):
|
||||||
|
TITLE = APP_NAME
|
||||||
|
DEBUG = False
|
||||||
|
TESTING = False
|
||||||
|
SECRET_KEY = secrets.token_hex(32)
|
||||||
|
|
||||||
|
PERMANENT_SESSION_LIFETIME = timedelta(days = 7).total_seconds()
|
||||||
|
SQLALCHEMY_DATABASE_URI = "sqlite:///static/db/database.db"
|
||||||
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
||||||
|
|
||||||
|
LOGIN_PATH = "FLASK_LOGIN" # Value can be OIDC or FLASK_LOGIN
|
||||||
|
OIDC_TOKEN_TYPE_HINT = 'access_token'
|
||||||
|
APP_REDIRECT_URI = REDIRECT_LINK
|
||||||
|
OIDC_CLIENT_SECRETS = ROOT_FILE_PTH + '/client_secrets.json'
|
||||||
|
OIDC_ID_TOKEN_COOKIE_SECURE = True
|
||||||
|
OIDC_REQUIRE_VERIFIED_EMAIL = True
|
||||||
|
OIDC_USER_INFO_ENABLED = True
|
||||||
|
OIDC_VALID_ISSUERS = [
|
||||||
|
'http://localhost:8080/auth/realms/apps',
|
||||||
|
'https://localhost:443/auth/realms/apps'
|
||||||
|
]
|
||||||
|
|
||||||
|
STATIC_FPTH = ROOT_FILE_PTH + "/static"
|
||||||
|
FILEGROUPS = FileGroups
|
||||||
|
VEXTENSION = FileGroups.videos
|
||||||
|
OEXTENSION = FileGroups.office
|
||||||
|
IEXTENSION = FileGroups.images
|
||||||
|
TEXTENSION = FileGroups.text
|
||||||
|
MEXTENSION = FileGroups.music
|
||||||
|
PEXTENSION = FileGroups.pdf
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class ProductionConfig(Config):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class DevelopmentConfig(Config):
|
||||||
|
DEBUG = True
|
||||||
|
OIDC_ID_TOKEN_COOKIE_SECURE = False
|
||||||
|
OIDC_REQUIRE_VERIFIED_EMAIL = False
|
||||||
|
|
||||||
|
|
||||||
|
class TestingConfig(Config):
|
||||||
|
TESTING = True
|
|
@ -6,7 +6,7 @@ from flask_login import current_user
|
||||||
|
|
||||||
|
|
||||||
# App imports
|
# App imports
|
||||||
from core import app, oidc, db # Get from __init__
|
from core import app, logger, oidc, db # Get from __init__
|
||||||
from core.utils import MessageHandler # Get simple message processor
|
from core.utils import MessageHandler # Get simple message processor
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,13 +5,13 @@ import os, logging
|
||||||
|
|
||||||
|
|
||||||
class Logger:
|
class Logger:
|
||||||
def __init__(self):
|
def __init__(self, name = "NO_LOGGER_NAME_PASSED_ON_INIT"):
|
||||||
self.logger = self.create_logger("flask_app")
|
self.logger = self.create_logger(name)
|
||||||
|
|
||||||
def get_logger(self):
|
def get_logger(self):
|
||||||
return self.logger
|
return self.logger
|
||||||
|
|
||||||
def create_logger(self, loggerName = "NO_LOGGER_NAME_PASSED", createFile = True):
|
def create_logger(self, loggerName, createFile = True):
|
||||||
"""
|
"""
|
||||||
Create a new logging object and return it.
|
Create a new logging object and return it.
|
||||||
:note:
|
:note:
|
||||||
|
|
Loading…
Reference in New Issue