Joomla 1.5 Запрет регистрации с определенных email

Тема в разделе "Разделение прав доступа", создана пользователем keper84, 23.05.2011.

  1. Offline

    keper84 Недавно здесь

    Регистрация:
    23.05.2011
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    Друзья и коллеги, заранее прошу прощения если не в том разделе создал тему, сильно не отчитывайте :[
    И так вопрос:
    Как запретить регистрацию пользователей с определенными email адресами? К примерe есть сервисы одноразовой почты, адреса у которых выглядят так:
    gkl34323@klzlk.com
    Требуется запретить весь домен *@klzlk.com или же разрешить только определенную группу доменов, например *.mail.ru, *.gmail.com и т.д.

    Сколько в гугле не рылся все в пустую :(

    Заранее спасибо.
     
  2.  
  3. joomguru
    Offline

    joomguru Модератор

    Регистрация:
    03.12.2010
    Сообщения:
    455
    Симпатии:
    74
    Пол:
    Мужской
    Нужно править com_user, писать регулярное выражение.
     
  4. Offline

    keper84 Недавно здесь

    Регистрация:
    23.05.2011
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    Это все здорово, но что там именно править? Какой параметр и на что именно править?
     
  5. sergiks
    Offline

    sergiks специалист

    Регистрация:
    10.10.2010
    Сообщения:
    362
    Симпатии:
    36
    Пол:
    Мужской
    Повторяем как мантру: «не нужно править core файлы!». Все делается корректными методами.

    Нужно написать плагин, который будет отлавливать событие onBeforeStoreUser и в нем проверять email на вшивость.

    Для начала можете использовать плагин-пример plugins/user/example.php - копируйет его и в путь!
    План такой:
    1. получаете очередного юзера кандидата на создание (или на апдейт если $isnew==false);
    2. берете его email и сравниваете поочередно с политическими проститутками
    Код (PHP):
    1. if( preg_match( '#@mailforspam.com$#', $email) {
    2.   // плохой мыл детектед
    3. } elseif(  preg_match( '#@mailinator.com$#', $email) {
    4. ...

    3. если мыл плохой, то надо видимо редиректить на ввод данных с сообщением, что "да ведь это же жулики!":
    Код (PHP):
    1. $mainframe->redirect( JRoute::_('index.php?option=com_user&view=.....'), 'Введите свой настоящий мыл, а не это фуфло, пожалуйста.');
     
  6. sergiks
    Offline

    sergiks специалист

    Регистрация:
    10.10.2010
    Сообщения:
    362
    Симпатии:
    36
    Пол:
    Мужской
    Еще более крутанским пилотажем будет в темплейте сделать оверрайд формы ввода данных для нового юзера,
    и там же по событию ввода в поле email или даже по событию изменения содержания этого поля,
    JavaScript'ом проверять, не вводят ли уже что-то плохое, и если да - то сразу подписывать под полем красным "Нехороший адрес!".

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

Поделиться этой страницей

Загрузка...