Update web/core/views.py

This commit is contained in:
Joshua Laymon 2025-09-06 02:50:57 +00:00
parent 13ebdfc4d2
commit 322e6ec1f7

View File

@ -1050,3 +1050,28 @@ is_superuser = user_passes_test(lambda u: u.is_superuser)
def audit_log(request):
rows = AuditLog.objects.all().order_by("-timestamp")[:100]
return render(request, "tools/audit_log.html", {"rows": rows})
from django.contrib.staticfiles import finders
from django.http import HttpResponseBadRequest, HttpResponseRedirect
from django.urls import reverse
import os
def _is_valid_theme(name: str) -> bool:
# Validate against files present in /static/themes
for finder in finders.get_finders():
for path, storage in finder.list(['themes']):
if path == f'themes/{name}.css':
return True
return False
def set_theme(request):
if request.method != 'POST':
return HttpResponseBadRequest('Invalid method')
theme = (request.POST.get('theme') or '').strip()
if not _is_valid_theme(theme):
return HttpResponseBadRequest('Unknown theme')
request.session['theme'] = theme
# also write to localStorage on next load via inline script in base.html
# redirect back to settings
return HttpResponseRedirect(reverse('settings')) # adjust to your settings view name/URL