N1 Nex1on

← Выпуски NEX1ON

NEX1ON 0.2.0

Учётные записи, роли и права

вышел 06.09.2026 PHP 8.2 или новее архивом не раздавался

Пользователи, роли и права в три слоя, сеансы в базе, ограничение попыток входа, почта. Внутренний этап.

Во второй версии у движка появились люди: учётные записи, роли, права, вход и почта.

Права в три слоя

Спор решается сверху вниз: личный запрет, личное разрешение, права роли. Уровень роли отвечает на другой вопрос — не «что можно делать», а «кого можно трогать»: администратор может править пользователей, но владельца сайта не тронет.

Сеансы в базе

Сеансы хранятся в базе, а не в файлах PHP. Это дало три вещи: список активных входов в профиле, возможность закрыть чужой сеанс и закрытие всех прочих входов при смене пароля.

Что ещё вошло

  • Вход по почте или по имени, «запомнить меня» одноразовым ключом, который меняется при каждом использовании.
  • Регистрация, подтверждение почты, восстановление пароля. Ответы одинаковы, есть такая учётная запись или нет, — по ним нельзя выяснить, кто зарегистрирован.
  • Первый зарегистрировавшийся становится владельцем сайта.
  • Ограничение попыток входа по трём счётчикам: адрес, введённая строка и найденная учётная запись. Иначе чередование почты и имени удваивало бы число попыток.
  • Защита форм ключом и проверка присланных данных с переводимыми сообщениями.
  • Почта: SMTP со STARTTLS, mail() и запись писем в файлы для разработки.
  • Команды user:create, user:list, user:role, user:password, user:unblock, mail:test.

Исправлено по ходу

  • Неверный адрес отправителя ронял регистрацию ошибкой 500.
  • Сообщение после перенаправления показывалось на прежнем языке.
  • Chrome перекрашивал автозаполненные поля тёмной темы в белый цвет.

Доступность

Внутренний этап разработки, архива нет.