error_unauthorized.html 33 lignes · 2131 octets
<!DOCTYPE html>
<html lang="{{ current_locale }}">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="{{ subtitle }}">
    <title>{{ page_title }}</title>
    <link href="/static/css/tailwind.css" rel="stylesheet">
    <link href="/static/css/custom.css" rel="stylesheet">
</head>
<body class="min-h-screen bg-base-200 flex items-center justify-center px-4">
    <main class="card bg-base-100 shadow-xl max-w-xl w-full">
        <div class="card-body items-center text-center">
            {# Icon shifts with reason: alert-triangle for blocked variants,
               clock for timeout, lock for invalid_signature. #}
            {% if reason == "timeout" %}
            <svg xmlns="http://www.w3.org/2000/svg" class="h-16 w-16 text-warning mb-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" /></svg>
            {% else if reason == "invalid_signature" %}
            <svg xmlns="http://www.w3.org/2000/svg" class="h-16 w-16 text-error mb-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z" /></svg>
            {% else %}
            <svg xmlns="http://www.w3.org/2000/svg" class="h-16 w-16 text-error mb-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /></svg>
            {% endif %}

            <h1 class="card-title text-2xl mb-2">{{ heading }}</h1>
            <p class="text-base-content/80 mb-6">{{ body }}</p>

            <div class="card-actions">
                <a href="/login" class="btn btn-primary">{{ back_to_login }}</a>
            </div>
        </div>
    </main>
</body>
</html>