"""This module contains custom middleware."""from__future__importannotationsfromdjango.confimportsettingsfromdjango.contrib.auth.middlewareimportLoginRequiredMiddleware# type: ignore[attr-defined]# TODO(AlexHx8472): Stubs not yet available in django-stubs. # noqa: FIX002# TODO(AlexHx8472): We may want to contribute them to the project. # noqa: FIX002
[docs]classTrustpointLoginRequiredMiddleware(LoginRequiredMiddleware):# type: ignore[misc]"""Middleware that redirects all unauthenticated requests to a login page."""
[docs]defprocess_view(# type: ignore[no-untyped-def] # noqa: ANN201self,request,# noqa: ANN001view_func,# noqa: ANN001view_args,# noqa: ANN001view_kwargs,# noqa: ANN001):"""Allow unauthenticated access to public paths, else redirect to login page."""ifnotrequest.user.is_authenticatedandany(request.path.startswith(path)forpathinsettings.PUBLIC_PATHS):returnNonereturnsuper().process_view(request,view_func,view_args,view_kwargs)