diff --git a/webapp/titanembeds/blueprints/api/api.py b/webapp/titanembeds/blueprints/api/api.py index 04466dd..c61e7c4 100644 --- a/webapp/titanembeds/blueprints/api/api.py +++ b/webapp/titanembeds/blueprints/api/api.py @@ -1,4 +1,4 @@ -from titanembeds.database import db, Guilds, UnauthenticatedUsers, UnauthenticatedBans, AuthenticatedUsers, KeyValueProperties, GuildMembers, Messages, get_channel_messages, list_all_guild_members +from titanembeds.database import db, Guilds, UnauthenticatedUsers, UnauthenticatedBans, AuthenticatedUsers, KeyValueProperties, GuildMembers, Messages, get_channel_messages, list_all_guild_members, get_administrators_list from titanembeds.decorators import valid_session_required, discord_users_only from titanembeds.utils import check_guild_existance, guild_accepts_visitors, guild_query_unauth_users_bool, get_client_ipaddr, discord_api, rate_limiter, channel_ratelimit_key, guild_ratelimit_key from titanembeds.oauth import user_has_permission, generate_avatar_url, check_user_can_administrate_guild @@ -499,9 +499,17 @@ def create_authenticated_user(): response.status_code = 403 return response +def canCleanupDB(): + canclean = False + if request.form.get("secret", None) == config['app-secret']: + canclean = True + if 'user_id' in session: + if session['user_id'] in get_administrators_list(): + canclean = True + return canclean @api.route("/cleanup-db", methods=["DELETE"]) def cleanup_keyval_db(): - if request.form.get("secret", None) == config["app-secret"]: + if canCleanupDB(): db.session.query(KeyValueProperties).filter(KeyValueProperties.expiration < datetime.datetime.now()).delete() db.session.commit() diff --git a/webapp/titanembeds/templates/admin_index.html.j2 b/webapp/titanembeds/templates/admin_index.html.j2 index ad74096..60a7ce1 100644 --- a/webapp/titanembeds/templates/admin_index.html.j2 +++ b/webapp/titanembeds/templates/admin_index.html.j2 @@ -20,5 +20,12 @@ Manage +
+
+

Cleanup DB

+

Clean up the database

+ SoonTM +
+
{% endblock %}