Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions docker-app/qfieldcloud/core/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
from django.contrib.admin.sites import AdminSite
from django.contrib.admin.templatetags.admin_urls import admin_urlname
from django.contrib.admin.views.main import ChangeList
from django.contrib.auth.views import redirect_to_login
from django.core.exceptions import PermissionDenied, ValidationError
from django.db.models import Q, QuerySet
from django.db.models.fields.json import JSONField
Expand Down Expand Up @@ -78,6 +79,22 @@ def __init__(self, *args, **kwargs) -> None:
for _model, model_admin in self._registry.items():
model_admin.admin_site = self

def login(
self, request: HttpRequest, extra_context: dict[str, Any] | None = None
) -> HttpResponse:
"""Override the default Django admin login view to redirect to the Allauth's login view."""
if request.method == "GET" and self.has_permission(request):
# Already logged-in, redirect to admin index
index_path = reverse("admin:index", current_app=self.name)
return HttpResponseRedirect(index_path)

# If the user is not authenticated, redirect to the accounts login page, but keep the query string that has the original request URL.
return redirect_to_login(
request.GET.get("next", ""), login_url=reverse(settings.LOGIN_URL)
)

# TODO consider adding a logout view to redirect to the Allauth's logout view, but then we lose the nice template we have right now.


qfc_admin_site = QfcAdminSite(name="qfc_admin_site")

Expand Down
Loading