Update web/core/views.py
This commit is contained in:
parent
fea1a68edf
commit
b165f4af38
@ -54,10 +54,28 @@ EXPECTED_HEADERS = [
|
||||
]
|
||||
|
||||
def login_view(request):
|
||||
# If Django session already exists, go straight in
|
||||
if request.user.is_authenticated:
|
||||
return redirect("search")
|
||||
return redirect("oidc_authentication_init")
|
||||
|
||||
# Auto-start OIDC ONLY on a clean GET to /login/
|
||||
# If ?next= is present, Django is already in a redirect flow — don't loop
|
||||
if request.method == "GET" and "next" not in request.GET:
|
||||
return redirect("oidc_authentication_init")
|
||||
|
||||
# Fallback (rare): render the page so the user can click manually
|
||||
ctx = {}
|
||||
|
||||
if request.method == "POST":
|
||||
u = request.POST.get("username")
|
||||
p = request.POST.get("password")
|
||||
user = authenticate(request, username=u, password=p)
|
||||
if user:
|
||||
login(request, user)
|
||||
return redirect("search")
|
||||
ctx["error"] = "Invalid credentials"
|
||||
|
||||
return render(request, "login.html", ctx)
|
||||
|
||||
|
||||
def is_admin(user):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user