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