summaryrefslogtreecommitdiff
path: root/config/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'config/__init__.py')
-rw-r--r--config/__init__.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/config/__init__.py b/config/__init__.py
index 24ff968..6a623cf 100644
--- a/config/__init__.py
+++ b/config/__init__.py
@@ -1,6 +1,8 @@
import tomllib
import re
+from flask_cors import CORS
import sqlalchemy.exc as sqlalchemy_exceptions
+from sqlalchemy import select
from src.database import db, init_db
from src.database.models import Blog
@@ -14,6 +16,7 @@ def initialize(app):
# Check the config file for any blog domains.
initialize_blogs(app)
initialize_blueprints(app)
+ initialize_cors_policies(app)
def database_connection_string(app):
@@ -44,6 +47,20 @@ def initialize_blogs(app):
break
+def configured_blogs(app):
+ statement = select(Blog.domain).where(Blog.domain.in_(user_config['Blogs']['domains']))
+ with app.app_context():
+ return [r for r, in db.session.execute(statement)]
+
+
+def initialize_cors_policies(app):
+ allowed_origins = configured_blogs(app)
+ cors_settings = {'resources': {r"/api/*": {'origins': allowed_origins},
+ r"/static/*": {'origins': allowed_origins}}
+ }
+ CORS(app, **cors_settings)
+
+
def initialize_blueprints(app):
import src.controllers as app_controllers