3359a8db13
Модель/сервисы HR-заявок с заменами, приглашения на установку пароля (инвайты), обновлённая страница профиля сотрудника и правки 2FA. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
79 lines
4.6 KiB
HTML
79 lines
4.6 KiB
HTML
{% load static %}
|
|
<!DOCTYPE html>
|
|
<html lang="uk">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>АКС — Встановлення пароля</title>
|
|
<link rel="stylesheet" href="{% static 'assets/css/main.css' %}">
|
|
</head>
|
|
<body style="background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-sidebar-accent) 100%); min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1rem; font-family: var(--font-sans);">
|
|
|
|
<div style="width: 100%; max-width: 28rem; background: var(--color-card); border-radius: 0.75rem; border: 1px solid var(--color-border); box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1); overflow: hidden;">
|
|
|
|
<div style="padding: 2rem 2rem 1.5rem; text-align: center; border-bottom: 1px solid var(--color-border);">
|
|
<div style="width: 3rem; height: 3rem; margin: 0 auto 0.75rem;">
|
|
<img src="{% static 'assets/img/logosm.svg' %}" alt="АКС" style="width: 100%; height: 100%; object-fit: contain;">
|
|
</div>
|
|
<h1 style="font-size: 1.375rem; font-weight: 600; color: var(--color-foreground); margin-bottom: 0.375rem;">
|
|
{% if invalid %}Посилання недійсне{% else %}Встановлення пароля{% endif %}
|
|
</h1>
|
|
{% if invalid %}
|
|
<p style="font-size: 0.875rem; color: var(--color-muted-foreground);">
|
|
Посилання прострочене, вже використане або не існує. Зверніться до HR або IT для нового запрошення.
|
|
</p>
|
|
<p style="margin-top: 1rem;"><a href="/login/" style="color: var(--color-primary); text-decoration: none; font-weight: 500;">← На сторінку входу</a></p>
|
|
{% else %}
|
|
<p style="font-size: 0.875rem; color: var(--color-muted-foreground);">
|
|
{{ employee.last_name }} {{ employee.first_name }} · логін <strong>{{ employee.username }}</strong>
|
|
</p>
|
|
{% if expires_at %}
|
|
<p style="font-size: 0.75rem; color: var(--color-muted-foreground); margin-top: 0.375rem;">
|
|
Дійсне до {{ expires_at|date:"d.m.Y H:i" }}
|
|
</p>
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
|
|
{% if not invalid %}
|
|
<form method="post" style="padding: 2rem; display: flex; flex-direction: column; gap: 1.25rem;">
|
|
{% csrf_token %}
|
|
{% if errors %}
|
|
<div style="color: #d63333; background: rgba(214, 51, 51, 0.1); border: 1px solid rgba(214, 51, 51, 0.25); padding: 0.75rem; border-radius: 0.5rem; font-size: 0.8125rem;">
|
|
{% for err in errors %}<div>{{ err }}</div>{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div>
|
|
<label for="password" style="display: block; font-size: 0.875rem; font-weight: 500; margin-bottom: 0.5rem;">Новий пароль</label>
|
|
<input type="password" id="password" name="password" required autocomplete="new-password" class="input"
|
|
placeholder="Мінімум 8 символів" style="width: 100%; padding: 0.75rem 1rem;">
|
|
</div>
|
|
<div>
|
|
<label for="password_confirm" style="display: block; font-size: 0.875rem; font-weight: 500; margin-bottom: 0.5rem;">Підтвердження пароля</label>
|
|
<input type="password" id="password_confirm" name="password_confirm" required autocomplete="new-password" class="input"
|
|
placeholder="Повторіть пароль" style="width: 100%; padding: 0.75rem 1rem;">
|
|
</div>
|
|
|
|
{% if show_ad_sync %}
|
|
<label style="display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.8125rem; color: var(--color-foreground); cursor: pointer;">
|
|
<input type="checkbox" name="sync_ad" value="1" style="margin-top: 0.125rem; width: 1rem; height: 1rem;" checked>
|
|
<span>Також змінити пароль у домені Active Directory<br>
|
|
<span style="color: var(--color-muted-foreground); font-size: 0.75rem;">{{ employee.ad_user_dn }}</span>
|
|
</span>
|
|
</label>
|
|
{% elif ad_sync_hint %}
|
|
<p style="font-size: 0.8125rem; color: var(--color-muted-foreground); margin: 0; padding: 0.75rem; background: var(--color-muted); border-radius: 0.5rem;">
|
|
{{ ad_sync_hint }}
|
|
</p>
|
|
{% endif %}
|
|
|
|
<button type="submit" class="btn btn-primary" style="width: 100%; padding: 0.75rem 1rem; font-size: 0.875rem; font-weight: 500;">
|
|
Зберегти пароль
|
|
</button>
|
|
</form>
|
|
{% endif %}
|
|
</div>
|
|
</body>
|
|
</html>
|