Files
zulip/zerver/views/errors.py
Mateusz Mandera c1857b2c86 config_error: Support passing arguments specifying the "go back" link.
Depending on the kind of config error being shown, different "go back"
links may be more appropriate.
We probably hard-coded /login/ for it, because these config errors are
most commonly used for authentication backend config error, where it
makes sense to have /login/ as "go back", because the user most likely
indeed got there from the login page.

However, for remote_billing_bouncer_not_configured, it doesn't make
sense, because the user almost surely is already logged in and got there
by clicking "Plan management" inside the gear menu in the logged in app.
2024-03-05 11:53:51 -08:00

29 lines
969 B
Python

from typing import Optional
from django.conf import settings
from django.http import HttpRequest, HttpResponse
from django.shortcuts import render
def config_error(
request: HttpRequest,
error_name: str,
*,
go_back_to_url: Optional[str] = None,
go_back_to_url_name: Optional[str] = None,
) -> HttpResponse:
assert "/" not in error_name
context = {
"error_name": error_name,
"go_back_to_url": go_back_to_url or "/login/",
"go_back_to_url_name": go_back_to_url_name or "the login page",
}
if settings.DEVELOPMENT:
context["auth_settings_path"] = "zproject/dev-secrets.conf"
context["client_id_key_name"] = f"social_auth_{error_name}_key"
else:
context["auth_settings_path"] = "/etc/zulip/settings.py"
context["client_id_key_name"] = f"SOCIAL_AUTH_{error_name.upper()}_KEY"
return render(request, f"zerver/config_error/{error_name}.html", context=context, status=500)