Release v2.1: GDPR, passkeys, session management, admin redesign

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-07 02:43:57 +03:00
parent d4f0eaa7d9
commit 0a51001791
32 changed files with 1529 additions and 193 deletions
+26
View File
@@ -0,0 +1,26 @@
{% extends "base.html" %}
{% block title %}Политика cookies — PhotoHost{% endblock %}
{% block content %}
<section class="legal-section">
<div class="container legal-container">
<h1>Политика cookies</h1>
<h2>Обязательные cookies</h2>
<p>Нужны для входа, CSRF-защиты и работы личного кабинета. Отключить их нельзя.</p>
<ul>
<li><code>session</code> — идентификатор сессии Flask</li>
<li><code>photohost_consent</code> — ваш выбор по cookies</li>
</ul>
<h2>Аналитические cookies</h2>
<p>Используются только при вашем согласии. Помогают понять, как улучшать сервис.</p>
<h2>Управление согласием</h2>
<p>Вы можете изменить выбор через баннер cookies или в профиле после входа.</p>
<p><a href="{{ url_for('legal.privacy') }}">Политика конфиденциальности</a></p>
</div>
</section>
{% endblock %}
+48
View File
@@ -0,0 +1,48 @@
{% extends "base.html" %}
{% block title %}GDPR — PhotoHost{% endblock %}
{% block content %}
<section class="legal-section">
<div class="container legal-container">
<h1>GDPR — ваши права</h1>
<p>В соответствии с Общим регламентом защиты данных (EU GDPR) вы имеете следующие права:</p>
<div class="legal-cards">
<article class="legal-card">
<h3>Право на доступ</h3>
<p>Узнать, какие данные мы храним о вас.</p>
</article>
<article class="legal-card">
<h3>Право на исправление</h3>
<p>Обновить email и пароль в профиле.</p>
</article>
<article class="legal-card">
<h3>Право на переносимость</h3>
<p>Скачать данные в JSON из <a href="{{ url_for('cabinet.profile') }}">профиля</a>.</p>
</article>
<article class="legal-card">
<h3>Право на удаление</h3>
<p>Удалить аккаунт и все связанные фото в профиле.</p>
</article>
<article class="legal-card">
<h3>Право на ограничение</h3>
<p>Отключить аналитические cookies в баннере согласия.</p>
</article>
<article class="legal-card">
<h3>Право отозвать согласие</h3>
<p>Изменить настройки cookies в любой момент.</p>
</article>
</div>
<h2>Как воспользоваться</h2>
<ol>
<li>Войдите в аккаунт</li>
<li>Откройте <a href="{{ url_for('cabinet.profile') }}">Профиль</a></li>
<li>Экспортируйте данные или удалите аккаунт</li>
</ol>
<p>Для запросов к администратору используйте email, указанный при регистрации.</p>
</div>
</section>
{% endblock %}
+39
View File
@@ -0,0 +1,39 @@
{% extends "base.html" %}
{% block title %}Политика конфиденциальности — PhotoHost{% endblock %}
{% block content %}
<section class="legal-section">
<div class="container legal-container">
<h1>Политика конфиденциальности</h1>
<p class="legal-updated">Последнее обновление: {{ "2026-06-06" }}</p>
<h2>1. Какие данные мы обрабатываем</h2>
<ul>
<li>Учётные данные: имя пользователя, email, хеш пароля</li>
<li>Загруженные фото и метаданные (имя файла, размер, дата)</li>
<li>Технические данные: IP-адрес, user-agent, cookies сессии</li>
<li>Passkey (публичный ключ WebAuthn, без хранения биометрии)</li>
</ul>
<h2>2. Цели обработки</h2>
<ul>
<li>Регистрация, авторизация и предоставление сервиса</li>
<li>Хранение и публикация загруженных изображений</li>
<li>Безопасность аккаунта и управление сессиями</li>
<li>Выполнение требований GDPR</li>
</ul>
<h2>3. Правовые основания (GDPR)</h2>
<p>Обработка осуществляется на основании исполнения договора (п. 6(1)(b) GDPR) и законного интереса по обеспечению безопасности (п. 6(1)(f) GDPR).</p>
<h2>4. Срок хранения</h2>
<p>Данные хранятся до удаления аккаунта пользователем или до получения запроса на удаление.</p>
<h2>5. Ваши права</h2>
<p>Вы можете запросить доступ, исправление, экспорт или удаление данных в <a href="{{ url_for('cabinet.profile') }}">профиле</a> или связавшись с администратором сайта.</p>
<p><a href="{{ url_for('legal.gdpr') }}">GDPR — подробнее о правах</a> · <a href="{{ url_for('legal.cookies') }}">Политика cookies</a></p>
</div>
</section>
{% endblock %}