From 218e248ed3e58f24d4079e1798a53ab9750b3b09 Mon Sep 17 00:00:00 2001 From: Robert George Date: Sat, 16 Sep 2023 18:52:29 -0700 Subject: [PATCH] add reverse proxy for flower --- bookwyrm/templates/settings/layout.html | 3 +++ bookwyrm/urls.py | 1 + bookwyrm/views/admin/flower.py | 17 +++++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 bookwyrm/views/admin/flower.py diff --git a/bookwyrm/templates/settings/layout.html b/bookwyrm/templates/settings/layout.html index dcaaaeb38..84328913b 100644 --- a/bookwyrm/templates/settings/layout.html +++ b/bookwyrm/templates/settings/layout.html @@ -85,6 +85,9 @@ {% url 'settings-celery' as url %} {% trans "Celery status" %} +
  • + {% trans "Flower" %} +
  • {% url 'settings-email-config' as url %} {% trans "Email Configuration" %} diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 0ebd7925c..15fb50f67 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -28,6 +28,7 @@ BOOK_PATH = r"^book/(?P\d+)" STREAMS = "|".join(s["key"] for s in settings.STREAMS) urlpatterns = [ + views.FlowerProxyView.as_url(), path("admin/", admin.site.urls), path( "robots.txt", diff --git a/bookwyrm/views/admin/flower.py b/bookwyrm/views/admin/flower.py new file mode 100644 index 000000000..f3f6ae02b --- /dev/null +++ b/bookwyrm/views/admin/flower.py @@ -0,0 +1,17 @@ +from django.contrib.auth.mixins import UserPassesTestMixin +from django.urls import path, re_path +from revproxy.views import ProxyView + +class FlowerProxyView(UserPassesTestMixin, ProxyView): + upstream = 'http://{}:{}'.format('localhost', 8888) + url_prefix = 'flower' + rewrite = ( + (r'^/{}$'.format(url_prefix), r'/{}/'.format(url_prefix)), + ) + + def test_func(self): + return self.request.user.is_superuser + + @classmethod + def as_url(cls): + return re_path(r'^(?P{}.*)$'.format(cls.url_prefix), cls.as_view(), name='flower')