add superadmin dashboard. subscriptions

This commit is contained in:
root
2026-01-13 20:03:16 +03:00
parent 3c24c250e5
commit edb4df7e37
36 changed files with 3329 additions and 100 deletions
+71
View File
@@ -0,0 +1,71 @@
{% extends 'layouts/public.twig' %}
{% block title %}Восстановление пароля - {{ parent() }}{% endblock %}
{% block content %}
<div class="container">
<div class="row justify-content-center">
<div class="col-md-5">
<div class="card shadow">
<div class="card-header bg-white">
<h4 class="mb-0 text-center">
<i class="fa-solid fa-key me-2"></i>Восстановление пароля
</h4>
</div>
<div class="card-body">
{% if success %}
<div class="alert alert-success">
<i class="fa-solid fa-check-circle me-2"></i>
{{ success }}
</div>
<div class="text-center mt-3">
<a href="{{ base_url('/login') }}" class="btn btn-primary">
<i class="fa-solid fa-arrow-left me-1"></i>Вернуться ко входу
</a>
</div>
{% else %}
<p class="text-muted text-center mb-4">
Введите email, на который зарегистрирована ваша учётная запись.
Мы отправим вам ссылку для сброса пароля.
</p>
{% if error %}
<div class="alert alert-danger">
<i class="fa-solid fa-triangle-exclamation me-2"></i>
{{ error }}
</div>
{% endif %}
<form action="{{ base_url('/forgot-password/send') }}" method="post">
{{ csrf_field()|raw }}
<div class="mb-3">
<label for="email" class="form-label">Email адрес</label>
<input type="email"
class="form-control"
id="email"
name="email"
value="{{ old('email') }}"
placeholder="name@example.com"
required
autofocus>
</div>
<div class="d-grid">
<button type="submit" class="btn btn-primary">
<i class="fa-solid fa-paper-plane me-1"></i>Отправить ссылку
</button>
</div>
</form>
{% endif %}
</div>
<div class="card-footer bg-white text-center">
<a href="{{ base_url('/login') }}" class="text-muted">
<i class="fa-solid fa-arrow-left me-1"></i>Вернуться ко входу
</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
+14
View File
@@ -10,6 +10,11 @@
</div>
{{ form_open(base_url('/login'), 'class="needs-validation"') }}
{{ csrf_field()|raw }}
{% if error %}
<div class="alert alert-danger">{{ error }}</div>
{% endif %}
<div class="mb-3">
<label for="email" class="form-label">Email</label>
@@ -19,11 +24,20 @@
<label for="password" class="form-label">Пароль</label>
<input type="password" name="password" value="{{ old.password|default('') }}" class="form-control" id="password" required>
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="remember" name="remember">
<label class="form-check-label" for="remember">Запомнить меня</label>
</div>
<button type="submit" class="btn btn-primary w-100">Войти</button>
{{ form_close() }}
<div class="mt-3 text-center">
<small><a href="{{ base_url('/forgot-password') }}">Забыли пароль?</a></small>
</div>
<div class="mt-2 text-center">
<small>Нет аккаунта? <a href="{{ base_url('/register') }}">Зарегистрироваться</a></small>
</div>
</div>
+81
View File
@@ -0,0 +1,81 @@
{% extends 'layouts/public.twig' %}
{% block title %}Сброс пароля - {{ parent() }}{% endblock %}
{% block content %}
<div class="container">
<div class="row justify-content-center">
<div class="col-md-5">
<div class="card shadow">
<div class="card-header bg-white">
<h4 class="mb-0 text-center">
<i class="fa-solid fa-key me-2"></i>Сброс пароля
</h4>
</div>
<div class="card-body">
{% if error %}
<div class="alert alert-danger">
<i class="fa-solid fa-triangle-exclamation me-2"></i>
{{ error }}
</div>
<div class="text-center mt-3">
<a href="{{ base_url('/forgot-password') }}" class="btn btn-primary">
<i class="fa-solid fa-repeat me-1"></i>Запросить ссылку снова
</a>
</div>
{% else %}
<p class="text-muted text-center mb-4">
Введите новый пароль для учётной записи <strong>{{ email }}</strong>
</p>
<form action="{{ base_url('/forgot-password/update') }}" method="post">
{{ csrf_field()|raw }}
<input type="hidden" name="token" value="{{ token }}">
<div class="mb-3">
<label for="password" class="form-label">Новый пароль</label>
<input type="password"
class="form-control"
id="password"
name="password"
placeholder="Минимум 6 символов"
required
minlength="6"
autofocus>
<div class="form-text">Минимум 6 символов</div>
</div>
<div class="mb-3">
<label for="password_confirm" class="form-label">Подтвердите пароль</label>
<input type="password"
class="form-control"
id="password_confirm"
name="password_confirm"
placeholder="Повторите пароль"
required>
</div>
<div class="alert alert-info">
<i class="fa-solid fa-info-circle me-2"></i>
После смены пароля вы будете автоматически разлогинены на всех устройствах.
</div>
<div class="d-grid">
<button type="submit" class="btn btn-primary">
<i class="fa-solid fa-check me-1"></i>Изменить пароль
</button>
</div>
</form>
{% endif %}
</div>
<div class="card-footer bg-white text-center">
<a href="{{ base_url('/login') }}" class="text-muted">
<i class="fa-solid fa-arrow-left me-1"></i>Вернуться ко входу
</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}