aboutsummaryrefslogtreecommitdiff
path: root/webmentions_ssg/__init__.py
diff options
context:
space:
mode:
authorDennis Fink2026-08-10 23:28:03 +0200
committerDennis Fink2026-08-10 23:28:03 +0200
commitb3e12b975064f0873bdb4d2834cae75925387d6b (patch)
tree92a7ce50f9a3e2b0a49aa32addd9c7e35062d91e /webmentions_ssg/__init__.py
parent5b39f70aa14cac635b6084170e9d0bd3f548b911 (diff)
downloadwebmentions-ssg-b3e12b975064f0873bdb4d2834cae75925387d6b.tar.gz
webmentions-ssg-b3e12b975064f0873bdb4d2834cae75925387d6b.zip
feat(core): add received webmention admin actions
Add authenticated delete and reverify actions to the received webmentions admin view and protect them with CSRF validation. Enable CSRF protection globally while exempting the public Webmention endpoint.
Diffstat (limited to '')
-rw-r--r--webmentions_ssg/__init__.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/webmentions_ssg/__init__.py b/webmentions_ssg/__init__.py
index f66e478..b799678 100644
--- a/webmentions_ssg/__init__.py
+++ b/webmentions_ssg/__init__.py
@@ -14,6 +14,7 @@ from flask import Flask
from flask_bootstrap import Bootstrap5
from flask_migrate import Migrate, upgrade
from flask_sqlalchemy import SQLAlchemy
+from flask_wtf.csrf import CSRFProtect
from sqlalchemy.orm import DeclarativeBase
from webmentions_ssg.config import DefaultConfig, DevelopmentConfig, ProductionConfig
@@ -28,6 +29,7 @@ class Base(DeclarativeBase):
pass
+CSRF = CSRFProtect()
BOOTSTRAP = Bootstrap5()
DATABASE = SQLAlchemy(model_class=Base)
MIGRATE = Migrate()
@@ -94,6 +96,7 @@ def create_app(config_class: type[DefaultConfig] | None = None) -> Flask:
DATABASE.init_app(app)
MIGRATE.init_app(app, db=DATABASE)
+ CSRF.init_app(app)
from .auth import AUTH