summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorHombreLaser <sebastian-440@live.com>2024-02-08 18:21:12 -0600
committerHombreLaser <sebastian-440@live.com>2024-02-08 18:21:12 -0600
commite91a86a714686a22149b55c9d5f0210cec8fef52 (patch)
treeac7212b106dac7a357b3f5a1a834b17f431f07bc /config
parenta4dbf1cd8d0769b1ff1e0d99217f92b28b92e0d4 (diff)
Add CORS
Diffstat (limited to 'config')
-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