75 lines
2.7 KiB
HTML
75 lines
2.7 KiB
HTML
{% extends "base.html" %}
|
||
|
||
{% block title %}Вход{% endblock %}
|
||
|
||
{% block content %}
|
||
<div class="mx-auto mt-10 max-w-md rounded-lg border border-slate-200 bg-white p-8 text-center">
|
||
<h1 class="text-2xl font-semibold">Вход в админку</h1>
|
||
<p class="mt-2 text-sm text-slate-600">Доступ только администраторам клана.</p>
|
||
|
||
{% if deeplink_error %}
|
||
<p class="mt-4 rounded-lg border border-amber-200 bg-amber-50 p-3 text-sm text-amber-800">
|
||
Deep-link вход не настроен: проверьте <span class="font-mono">BOT_USERNAME</span>.
|
||
</p>
|
||
{% endif %}
|
||
|
||
{% if configured %}
|
||
<div class="mt-8 flex justify-center">
|
||
<script
|
||
async
|
||
src="https://telegram.org/js/telegram-widget.js?22"
|
||
data-telegram-login="{{ bot_username }}"
|
||
data-size="large"
|
||
data-auth-url="{{ public_url }}/auth/telegram?next={{ next | urlencode }}"
|
||
data-request-access="write"
|
||
></script>
|
||
</div>
|
||
{% endif %}
|
||
|
||
{% if deeplink %}
|
||
<div class="mt-6 border-t border-slate-100 pt-5">
|
||
<a
|
||
href="/auth/deeplink/start"
|
||
class="inline-block rounded-lg border border-slate-300 px-4 py-2 text-sm font-medium text-slate-700 hover:bg-slate-50"
|
||
>
|
||
Открыть Telegram
|
||
</a>
|
||
<p class="mt-2 text-xs text-slate-500">Подтвердите вход в установленном приложении Telegram.</p>
|
||
<p id="deeplink-status" class="mt-2 text-sm text-sky-700">
|
||
{% if deeplink_pending %}Ожидаем подтверждение в Telegram…{% endif %}
|
||
</p>
|
||
</div>
|
||
{% endif %}
|
||
|
||
{% if not configured and not deeplink %}
|
||
<p class="mt-6 rounded-lg border border-amber-200 bg-amber-50 p-3 text-sm text-amber-800">
|
||
Вход не настроен: задайте <span class="font-mono">BOT_TOKEN</span>,
|
||
<span class="font-mono">BOT_USERNAME</span> и <span class="font-mono">ADMIN_PUBLIC_URL</span>.
|
||
</p>
|
||
{% endif %}
|
||
</div>
|
||
|
||
{% if deeplink_pending %}
|
||
<script>
|
||
(function () {
|
||
var status = document.getElementById("deeplink-status");
|
||
var timer = setInterval(function () {
|
||
fetch("/auth/deeplink/status", { credentials: "same-origin" })
|
||
.then(function (response) { return response.json(); })
|
||
.then(function (data) {
|
||
if (data.status === "ok") {
|
||
clearInterval(timer);
|
||
window.location.href = "/";
|
||
} else if (data.status === "denied") {
|
||
clearInterval(timer);
|
||
if (status) status.textContent = "У вас нет доступа к админке.";
|
||
}
|
||
})
|
||
.catch(function () {});
|
||
}, 2000);
|
||
setTimeout(function () { clearInterval(timer); }, 300000);
|
||
})();
|
||
</script>
|
||
{% endif %}
|
||
{% endblock %}
|