This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
authentik/passbook/root/urls.py
Jens L 665839133f
Application Icon upload (#341)
* core: add initial implementation for File Upload

* root: add volumes to docker-compose for file upload

* helm: add pvc for uploads

* core: allow meta_icon to be overwritten with static files
2020-11-23 20:50:19 +01:00

71 lines
2.1 KiB
Python

"""passbook URL Configuration"""
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import include, path
from django.views.generic import RedirectView
from structlog import get_logger
from passbook.core.views import error
from passbook.lib.utils.reflection import get_apps
from passbook.root.monitoring import MetricsView
LOGGER = get_logger()
admin.autodiscover()
admin.site.login = RedirectView.as_view(
pattern_name="passbook_flows:default-authentication"
)
admin.site.logout = RedirectView.as_view(
pattern_name="passbook_flows:default-invalidation"
)
handler400 = error.BadRequestView.as_view()
handler403 = error.ForbiddenView.as_view()
handler404 = error.NotFoundView.as_view()
handler500 = error.ServerErrorView.as_view()
urlpatterns = []
for _passbook_app in get_apps():
mountpoints = None
base_url_module = _passbook_app.name + ".urls"
if hasattr(_passbook_app, "mountpoint"):
mountpoint = getattr(_passbook_app, "mountpoint")
mountpoints = {base_url_module: mountpoint}
if hasattr(_passbook_app, "mountpoints"):
mountpoints = getattr(_passbook_app, "mountpoints")
if not mountpoints:
continue
for module, mountpoint in mountpoints.items():
namespace = _passbook_app.label + module.replace(base_url_module, "")
_path = path(
mountpoint,
include(
(module, _passbook_app.label),
namespace=namespace,
),
)
urlpatterns.append(_path)
LOGGER.debug(
"Mounted URLs",
app_name=_passbook_app.name,
mountpoint=mountpoint,
namespace=namespace,
)
urlpatterns += [
path("administration/django/", admin.site.urls),
path("metrics/", MetricsView.as_view(), name="metrics"),
]
if settings.DEBUG:
import debug_toolbar
urlpatterns = (
[
path("-/debug/", include(debug_toolbar.urls)),
]
+ static("/media/", document_root=settings.MEDIA_ROOT)
+ urlpatterns
)