Рейтинг: 3.0147  
Новая
Предложил Шишкин Алексей 02.04.2014 10:18:25

Запрашивать подтверждение регистрации по E-mail для каждого сайта в отдельности

В парадигме многосайтовости данная опция для настроек модуля является неуместной. На различных сайтах возможна различная логика регистрации. Данный параметр необходимо вынести в настройки сайта. Сейчас же приходится копировать компонент main.register в свое пространство, и там принудительно задавать опцию для конкретного сайта:

//$bConfirmReq = COption::GetOptionString("main", "new_user_registration_email_confirmation", "N") == "Y";
// For my site makes it own
$bConfirmReq = "Y";
 
Рейтинг: 16.2395  
На голосовании
Предложил Александрович Денис 09.07.2013 08:34:18

Повторная отправка писем для подтверждения регистрации.

Иногда возникает необходимость отправлять повторные письма для подтверждения регистрации, например из-за ошибки хостера (перестала работать функция mail() и т.д.), или еще какой-то форс мажор. Вследствие чего чего сайт теряет новых пользователей. Хотелось бы чтоб присутствовал штатный функционал для отправки писем из списка пользователей, а не через Командную PHP строку, используя CUser::GetList и CEvent::Send("NEW_USER_CONFIRM"...

Рейтинг: 7.6436  
На голосовании
Предложил Зеленецкий Дмитрий 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" - активировать пользователя.

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