diff --git a/frontends/etiquette_flask/backend/endpoints/__init__.py b/frontends/etiquette_flask/backend/endpoints/__init__.py index 5cd9b44..469e5a0 100644 --- a/frontends/etiquette_flask/backend/endpoints/__init__.py +++ b/frontends/etiquette_flask/backend/endpoints/__init__.py @@ -1,3 +1,4 @@ +from . import admin_endpoints from . import album_endpoints from . import basic_endpoints from . import bookmark_endpoints @@ -6,6 +7,7 @@ from . import tag_endpoints from . import user_endpoints __all__ = [ + 'admin_endpoints', 'album_endpoints', 'basic_endpoints', 'bookmark_endpoints', diff --git a/frontends/etiquette_flask/backend/endpoints/admin_endpoints.py b/frontends/etiquette_flask/backend/endpoints/admin_endpoints.py new file mode 100644 index 0000000..8689589 --- /dev/null +++ b/frontends/etiquette_flask/backend/endpoints/admin_endpoints.py @@ -0,0 +1,25 @@ +import flask; from flask import request + +from voussoirkit import flasktools + +from .. import common + +site = common.site +session_manager = common.session_manager + +#################################################################################################### + +@site.route('/admin') +def get_admin(): + if not request.is_localhost: + flask.abort(403) + + return common.render_template(request, 'admin.html') + +@site.route('/admin/reload_config', methods=['POST']) +def post_reload_config(): + if not request.is_localhost: + return flasktools.make_json_response({}, status=403) + + common.P.load_config() + return flasktools.make_json_response({}) diff --git a/frontends/etiquette_flask/static/js/api.js b/frontends/etiquette_flask/static/js/api.js index 3eef555..4341196 100644 --- a/frontends/etiquette_flask/static/js/api.js +++ b/frontends/etiquette_flask/static/js/api.js @@ -1,5 +1,15 @@ const api = {}; +/**************************************************************************************************/ +api.admin = {}; + +api.admin.reload_config = +function reload_config(callback) +{ + const url = "/admin/reload_config"; + return common.post(url, null, callback); +} + /**************************************************************************************************/ api.albums = {}; diff --git a/frontends/etiquette_flask/templates/admin.html b/frontends/etiquette_flask/templates/admin.html new file mode 100644 index 0000000..2de87b4 --- /dev/null +++ b/frontends/etiquette_flask/templates/admin.html @@ -0,0 +1,45 @@ + + + + {% import "header.html" as header %} + Admin control + + + + + {% if theme %}{% endif %} + + + + + + + + +{{header.make_header(session=session)}} +
+
+ +
+
+ + + + +