Подтверждение регистрации

Рейтинг: 7.6436  
На голосовании
Предложил Пользователь 69300 07.08.2012 21:47:01

Подтверждение регистрации

Компонент подтверждения регистрации ( system.auth.confirmation ) довольно прост. В начале он проверяет авторизирован ли пользователь, иначе активный ли пользователь, и лишь потом обращает внимание на CONFIRM_CODE. При этом конечной точкой является обнуление этого поля( CONFIRM_CODE ).

Мне кажется, что логика этого компонента не верна - ведь пользователь может быть активным благодаря администратору, но содержать CONFIRM_CODE заполненым. Более того то, что пользователю выставлена активность не означает, что он подтвердил свой email! И наоборот если пользователь не активный, это не значит, что подтверждение регистрации должно его активировать, т.к. важен email, а не активность.

Вот примерная последовательность действий по моему мнению более правильная:


1. если полученный USER_ID соответсвует пользователю, тогда получить его данные
2. если пользователь не активирован и выставлен к примеру параметр "активировать после регистрации", тогда продолжить проверку
3. если существует CONFIRM_CODE у пользователя и в присланном параметре
4. если они совпадают тогда обнулить CONFIRM_CODE и если указаный выше параметр установлен в "Y" - активировать пользователя.

во всех остальных случаях выводить ошибку либо форму для заполнения кода.

Рейтинг: 0  
Пользователь 9643 08.08.2012 14:49:17
Пишите свой собственный компонент. Битриксы компоненты не меняют свои. Они только модули и интерфейс апгрейдят. И то, вяло.
Рейтинг: 0  
Пользователь 69300 08.08.2012 20:36:01
свой то я написал. но это проблема компонента, который используется ядром! помойму такие вещи лучше чтобы были в основном наборе компонентов. Более того новый компонент используется на новой странице и помнить править шаблоны писем, чтобы правильный адрес указывался, уже не особо интересно.
Рейтинг: 0  
Пользователь 3308 06.06.2013 11:20:10
Прочитал и ничего не понял :(
Рейтинг: 0  
Пользователь 69300 15.08.2013 01:04:50
Только заметил комментарий Романа.
Суть этого предложения станет более понятна если заглянуть в код компонента system.auth.confirmation и попытаться представить что происходит -
например, в случае если пользователь зарегистрировался и для того чтобы его аккаунт не заблокировали, ему необходимо верифицировать свой email, при этом аккаунт до момента удаления должен быть активным на сайте.