Смена Email в профиле пользователя

+19
4.17K
Иллюстрация

Данный функционал добавляем в настройки профиля пользователя возможность смены email.

Иллюстрация

Для смены email пользователю необходимо ввести старый email и новый. Далее на новый email будет получен код подтверждения который нужно ввести в настройки. При каждом запросе генерируется новый проверочный код.

Иллюстрация

Иллюстрация

Иллюстрация

После установки дополнения необходимо добавить строчку для включения данного хука, в файле system/controllers/users/manifest.php

Добавить строку: 'profile_edit_menu'

В итоге содержание файла:
  1. <?php
  2.  
  3. return array(
  4.  
  5. 'hooks' => array(
  6. 'admin_dashboard_chart',
  7. 'menu_users',
  8. 'rating_vote',
  9. 'user_notify_types',
  10. 'user_privacy_types',
  11. 'user_tab_info',
  12. 'auth_login',
  13. 'user_loaded',
  14. 'wall_permissions',
  15. 'wall_after_add',
  16. 'wall_after_delete',
  17. 'sitemap_sources',
  18. 'profile_edit_menu'
  19. )
  20.  
  21. );
  22.  



DONATE!!!

p.s. чуть не забыл: плюсы надо в карму ставить если дополнение вам полезно. тынц
+2
DeeMon DeeMon 7 лет назад #
Для смены email пользователю необходимо ввести старый email и новый. Далее на новый email будет получен код подтверждения
То есть если у кого то ломанут профиль, то легко сменят email?
+1
Kreator Kreator 7 лет назад #
То есть если у кого то ломанут профиль, то легко сменят email?
Да

p.s. если чуток доработать, можно проверку сделать сразу по новой и по старой почте.
+3
Fuze Fuze 7 лет назад #
Код подтверждения нужно высылать на старый email, иначе смысла в данном функционале нет совсем.
+1
Kreator Kreator 7 лет назад #
Спасибо за подсказки.
Еще пару-тройка советов и вариантов и соберу апдейт.
Кто установил эту версию - обновление будет "безболезненным".
Дополнение не изменяет системные файлы (кроме описанной добавленной строчки)
+1
Владимир Владимир 7 лет назад #
Еще пару-тройка советов и вариантов и соберу апдейт.
С такими дополнениями спешить не нужно. Безопасность всё-таки.
Предлагаю дополнить следующим:
1. Хранить старый е-мейл в базе..

2. Ввести настройку админом времени, в течение которого нельзя повторно менять е-мейл (времени блокировки смены е-мейл). Т.е. пользователь может менять е-мейл один раз в столько-то дней (указываем в настройке).

3. Далее дополнить ещё предупреждающим оповещением (на старый мейл) в течение указанного выше времени блокировки столько-то раз (или лучше указывать дни, когда выслать это предупреждение: высылать на такой-то и такой-то день /на 2-й, 3-й и 7-й/ - указывается в настройках аналогично ). Где сообщается, что "Вы сменили е-мейл ...и т д" - здесь, если было все по желанию пользователя - письмо остается без ответа, если вопреки - пользователь должен написать ответ админу с просьбой восстановления (в письме может быть код - как вариант - админ вставляет код - по нему иденцифицируется и фиксируется откат).
Предвижу вопрос: как такое может быть, если пользователь сам подтвердил смену со старого мейла - очень просто, например, кто-то временно сел за его комп, а сейчас как правило включенный комп означает автоподключение к почте (у большинства).

4. После смены почты держать в админке пользователя сообщение "Вы сменили е-мейл" (с датой изменения и определенное время - время блокировки (см.п.2)

5. И делайте компонент с нормальными языковыми константами для возможности мультиязычности.
+1
lakomet lakomet 7 лет назад #
По 1-му и 2-му пунктам, согласен на все 150%
3-й и 4-й пункт не понял
с 5-ым пунктом согласен
И от себя добавлю, высылать на старый адрес не код, а ссылку, переходя по которой происходит подтверждение, по типу как это сделано при регистрации и смене пароля. Ещё одна может и бредовая идея - это сделать модерируемую смену почты, т.е. модератор должен подтвердить смену(опционально).
+1
Pocus Pocus 7 лет назад #
Имхо не стоит плодить вкладки. Смену емейла и пароля можно разместить на одной.
+1
fincheck fincheck 7 лет назад #
А если нет доступа к старому мылу, а иначе зачем смена Email
+1
lakomet lakomet 7 лет назад #
Если нет доступа к старому мылу, то нужно прикручивать, что-то похожее на это
+1
fincheck fincheck 7 лет назад #
А может прикрутить "девичья фамилия матери" или "имя любимого питомца" ну Вы поняли.
+1
lakomet lakomet 7 лет назад #
fincheck:
ну Вы поняли
, если это был сарказм, то это не смешно - это безопасность. В таком случае, нужно делать как на других ресурсах, не смена почты, а сначала добавляем второе, треть, ....., десятое мыло, верифицируем их переходом по ссылке, а уже после того в списке емэйлов, ставим крыжик напротив нужного мыла - "Сделать основным/логином". Смена емэйла(логина) произойдёт или по времени(допустим через 10-30 дней) или после перехода по ссылке, высланной на старый емэйл.
+1
fincheck fincheck 7 лет назад #
Нет, нет я с уважением. Я к тому что Вы же поняли про что я? Так а почему с дополнительными вопросами нельзя? Вроде на майл было так.
+1
lakomet lakomet 7 лет назад #
В любом случае, на старое мыло, нужно высылать уведомление о смене мыла/логина.
+2
globator globator 7 лет назад #
Или можно код подтверждения отправить на старый email вместо новый.
+2
globator globator 7 лет назад #
Опередили с ответом smile Нужно было написать а потом есть, что за манера кушать за компом stuk
+1
Dorimen Dorimen 7 лет назад #
Еще можно где-то в профиле пользователя в секретном разделе, доступно для админа, фиксировать изменения e-mail в профиле. Например, там есть такая вкладочка как "Авторизации" - удобно. Можно сделать что-то подобное и для этого.
+1
Владимир Владимир 7 лет назад #
Ну, апдейта, как обычно, обещанного Kreator три года ждут?
+1
Kreator Kreator 7 лет назад #
Нет, не три. Сегодня выложим Бесплатный Шаблон SiteStroi - Default Template Cover, потом и эту обновку сделаем, может быть даже так же сегодня.
+1
Алексей Т Алексей Т 7 лет назад #
Все думают что мы пропали просто, а мы работаем акацааа))) zst
+1
Владимир Владимир 7 лет назад #
Ну, тогда - другое дело -)
+1
Kreator Kreator 7 лет назад #
Дополнение обновлено. Изменена логика проверки при смене email. Теперь при смене не нужно вводить старый email, а только новый. В свою очередь высылается не только проверочный код на новый email но и другой код на старый email. При проверке нужно вводить оба полученных кода.

За другие советы спасибо. В ближайшее время "усложнять" дополнение не планируется, в виде проверок на время и установки различного рода ограничений. Основной целью данного дополнения было внедрить данную функцию, т.к. таковой вообще не было.
+1
Kreator Kreator 7 лет назад #
Для тех кто устанавливал могут также установить через админку обновленный компонент поверх.
Либо перезакачать файлы с заменой (Что в принципе в данном случае одно и то же)
0
denis denis 7 лет назад #
Доброго дня. смена почты при условии подтверждения с двух почтовых ящиков или нет?
Хотелось бы спросить как вынуть вкладку из "Ещё". Там ограничения наверное 6 вкладок. Интересно где это изменяется в базе данных, или в файлах. Шаблон стандартный
+1
ParadoX ParadoX 7 лет назад #
Ничего не понимаю, всё сделал по инструкции - вкладка не появляется! 2.7.1
+1
ParadoX ParadoX 7 лет назад #
При включённом режиме отладки видится так:

Без режима отладки поля нет...
+1
Dorimen Dorimen 7 лет назад #
Такая же проблема. Устанавливал компонент на чистую InstantCMS 2.7.2. Без включенной отладки не показывает вкладку смены емейла.
+1
Yar Yar 6 лет назад #
Перестало работать на 2.10.0. Как минимум не отображается вкладка в редактировании профиля. Что делать?
0
Kreator Kreator 6 лет назад #
Проверим, спасибо за "звонок".
dmitriybarinov dmitriybarinov 5 лет назад #
Комментарий удален
0
Capitan Capitan 5 лет назад #
Не работает на 2.11.0. Вкладки нет.
0
Yar Yar 5 лет назад #
Проверят, спасибо за "звонок". (с)
Олег Васильевич я Олег Васильевич я 5 лет назад #
Комментарий удален

Еще от автора

Поле - Дата публикации записи
Дата публикации записи в шаблоне выводится в конце записи.
Статистика просмотров контента и Фильтр исходящей почты (SiteKreator v.22.2.2)
Улучшение компонента продолжается. Медленно но верно компонент обрастает еще большими возможностями.
Kmailer v.3.3.1 - Компонент для организации рассылки по email пользователям сайта и подписчикам
Всем доброго времени суток. Представляю вашему вниманию компонент KMailer 3.3.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.