Обработка персональных данных

Чекбокс согласия на ПД, способы включения, хранение логов, требования закона.

📜 Обработка персональных данных и согласие

Как работает согласие на обработку ПД на формах, где смотреть логи, как включить для своего проекта.


🔄 Как это работает

Чекбокс согласия на обработку ПД не добавляется автоматически на все формы. Его нужно явно включить одним из двух способов:

Способ 1. Колонка pd_consent в таблице данных

Если в таблице, к которой привязана форма, есть колонка pd_consent (INTEGER, DEFAULT 0), то чекбокс появляется автоматически. Значение сохраняется в БД (1 — согласие получено, 0 — нет).

Пример для prostostihi:

ALTER TABLE contacts ADD COLUMN pd_consent INTEGER DEFAULT 0;

→ Чекбокс появился, данные пишутся в таблицу contacts.

Способ 2. Опция consent_enabled в form_config

Если колонки в таблице нет, но чекбокс нужен — добавьте в form_config:

{
  "consent_enabled": true,
  "consent_required": true,
  ...
}

Галочка появится, данные будут только в логе (не в БД).

Параметры: | Поле | По умолч. | Описание | |------|-----------|----------| | consent_enabled | false | Показывать чекбокс | | consent_required | true | Делать чекбокс обязательным |


✅ Что нужно сделать на новом проекте

1. Создать страницу Политики конфиденциальности

  1. Создать страницу в админке или вставить напрямую в таблицу pages:

    • slug: confidential
    • title: «Политика конфиденциальности»
    • status: active
  2. Шаблон page.html.twig уже содержит стили для юридических документов.

  3. Типовой шаблон — в файлах проекта: apidcms/confidential_template.md

2. Создать страницу Публичной оферты

slug oferta. Типовой шаблон: apidcms/oferta_template.md

3. Подать уведомление в РКН

Если сайт собирает персональные данные → через Госуслуги подать уведомление о включении в реестр операторов ПД. Штраф за отсутствие — до 300 000 ₽.


📋 Хранение доказательств согласия

При каждой отправке формы с отмеченной галочкой система записывает строку в лог:

admin/storage/logs/pd_consent.log

Формат одной строки:

2026-06-19 23:15:15 | 192.168.1.1 | contacts | id=42 | Mozilla/5.0...

Что фиксируется:

  • Дата и время
  • IP-адрес отправителя
  • Таблица, в которую сохранились данные
  • ID записи в таблице
  • User-Agent

🔍 Как проверить

Через SSH:

tail -f www/admin/storage/logs/pd_consent.log

Или через файловый менеджер в админке → storage/logs/pd_consent.log