Partially implement Database Cleanup button in the admin Panel

This commit is contained in:
Jori van Ee 2017-08-01 20:24:54 +02:00 committed by Jeremy Zhang
parent eaf55ba027
commit 5da55cc66b
2 changed files with 17 additions and 2 deletions

View File

@ -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()

View File

@ -20,5 +20,12 @@
<a class="waves-effect waves-light btn" href="{{ url_for('admin.guilds') }}">Manage</a>
</div>
</div>
<div class="col s12">
<div class="card-panel indigo lighten-5 z-depth-3 hoverable black-text">
<h4>Cleanup DB</h4>
<p class="flow-text">Clean up the database</p>
SoonTM
</div>
</div>
</div>
{% endblock %}