mirror of
				https://github.com/sissbruecker/linkding.git
				synced 2025-11-04 13:04:00 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""siteroot URL Configuration
 | 
						|
 | 
						|
The `urlpatterns` list routes URLs to views. For more information please see:
 | 
						|
    https://docs.djangoproject.com/en/2.2/topics/http/urls/
 | 
						|
Examples:
 | 
						|
Function views
 | 
						|
    1. Add an import:  from my_app import views
 | 
						|
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
 | 
						|
Class-based views
 | 
						|
    1. Add an import:  from other_app.views import Home
 | 
						|
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
 | 
						|
Including another URLconf
 | 
						|
    1. Import the include() function: from django.urls import include, path
 | 
						|
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
 | 
						|
"""
 | 
						|
 | 
						|
from django.conf import settings
 | 
						|
from django.contrib.auth import views as auth_views
 | 
						|
from django.urls import path, include
 | 
						|
 | 
						|
from bookmarks.admin import linkding_admin_site
 | 
						|
 | 
						|
 | 
						|
class LinkdingLoginView(auth_views.LoginView):
 | 
						|
    """
 | 
						|
    Custom login view to lazily add additional context data
 | 
						|
    Allows to override settings in tests
 | 
						|
    """
 | 
						|
 | 
						|
    def get_context_data(self, **kwargs):
 | 
						|
        context = super().get_context_data(**kwargs)
 | 
						|
 | 
						|
        context["allow_registration"] = settings.ALLOW_REGISTRATION
 | 
						|
        context["enable_oidc"] = settings.LD_ENABLE_OIDC
 | 
						|
        return context
 | 
						|
 | 
						|
    def form_invalid(self, form):
 | 
						|
        response = super().form_invalid(form)
 | 
						|
        response.status_code = 401
 | 
						|
        return response
 | 
						|
 | 
						|
 | 
						|
class LinkdingPasswordChangeView(auth_views.PasswordChangeView):
 | 
						|
    def form_invalid(self, form):
 | 
						|
        response = super().form_invalid(form)
 | 
						|
        response.status_code = 422
 | 
						|
        return response
 | 
						|
 | 
						|
 | 
						|
urlpatterns = [
 | 
						|
    path("admin/", linkding_admin_site.urls),
 | 
						|
    path(
 | 
						|
        "login/",
 | 
						|
        LinkdingLoginView.as_view(redirect_authenticated_user=True),
 | 
						|
        name="login",
 | 
						|
    ),
 | 
						|
    path("logout/", auth_views.LogoutView.as_view(), name="logout"),
 | 
						|
    path(
 | 
						|
        "change-password/",
 | 
						|
        LinkdingPasswordChangeView.as_view(),
 | 
						|
        name="change_password",
 | 
						|
    ),
 | 
						|
    path(
 | 
						|
        "password-change-done/",
 | 
						|
        auth_views.PasswordChangeDoneView.as_view(),
 | 
						|
        name="password_change_done",
 | 
						|
    ),
 | 
						|
    path("", include("bookmarks.urls")),
 | 
						|
]
 | 
						|
 | 
						|
if settings.LD_ENABLE_OIDC:
 | 
						|
    urlpatterns.append(path("oidc/", include("mozilla_django_oidc.urls")))
 | 
						|
 | 
						|
if settings.LD_CONTEXT_PATH:
 | 
						|
    urlpatterns = [path(settings.LD_CONTEXT_PATH, include(urlpatterns))]
 | 
						|
 | 
						|
if settings.DEBUG:
 | 
						|
    import debug_toolbar
 | 
						|
 | 
						|
    urlpatterns.append(path("__debug__/", include(debug_toolbar.urls)))
 | 
						|
 | 
						|
if settings.ALLOW_REGISTRATION:
 | 
						|
    urlpatterns.append(path("", include("django_registration.backends.one_step.urls")))
 |