Около месяца не могу решить следующую проблему при использовании компонента Login для регистрации новых пользователей:
При нажатии на ссылку из письма, посланого пользователю для подтверждения регистрации сниппет ConfirmRegister, который вызывает modx для обработки даного действия по какой-то причине генерирует ошибку 404. Група пользователей для регистрации добавлена, права доступа выставлены. Доступ LoadOnly к Users для «Аноним» пользователя есть. Сначала все работало, но потом перестало и по какой причине до сих пор не могу определить…
Не срабатывает ConfirmRegister при переходе по ссылке из письма
Версия MODX: Revolution
Комментарии (5)
Для добавления комментариев вы должны авторизоваться или зарегистрироваться.
LITOSH 22.10.2021 02:20 #
Харьков Александр 22.10.2021 18:10 #
Павел 31.10.2021 09:11 #
Харьков Александр 31.10.2021 10:43 #
Харьков Александр 01.11.2021 10:44 #
Если пользователь зарегистрировался, но не активировался и был удален из базы данных то в данной папке остаются сообщения с паролями и именами этих пользователей. Если регистрируется пользователь с таким же именем, какой уже был зарегистрирован но удален из базы, то modx добавляет к имени файла сообщения с паролем дату поста и еще уникальный ключ. А сниппет ConfirmRegister.php ищет в этой папке файл только с именем пользователя, без учета даты и Id ключа и естественно не может его найти. Если активация проходит успешно, то этот файл удаляется после его прочтения и дубляжа не возникает, но если пользователь был удален из базы без активации то может возникнуть данный баг с дублированием имен пользователей в именах файлов сообщений. Я думаю это недоработка разработчиков modx, которые не учли такую ситуацию, потому что в идеале нужно было удалять сообщения из данной папки, для данного пользователя при его удалении из базы (решение №1), или чтобы СonfirmRegister учитывал возможный дубляж и искал не /activation/username.msg а /activation/date-id-username.msg и выбирал файл с последней датой (решение №2). Или сделать cron процес, который бы проверял и удалял файлы со старыми (больше 3 дней) сообщениями (решение №3). Как было бы лучше выбирать не нам, а пока остается только вручную чистить данную папку после ручного удаления неактивированных пользователей из базы.