Как в Битрикс сделать проверку номера пользователя на уникальность?
Добрый день!
Как в Битриксе реализовать проверку телефона пользователя на уникальность, аналогично тому, как это делается с email? На сайте будет возможность авторизоваться через SMS, нужно чтобы у каждого пользователя был свой номер. Соответственно система не должна позволять регистрироваться, если введён номер, который уже есть у другого пользователя. Причем хотелось бы, чтобы и при добавлении через админку так же проверялось наличие номера.
В таблице b_user есть поле PERSONAL_PHONE.
Придется перекрывать любую запись в него (то есть регистрацию, правку профиля пользователем, правку юзера админом), приводя номер к каноничному - иначе по произвольно записанному не отличишь "8492233333" от "+7(4922) 33-33-33 доб. 114".
Ну, и при этом можно заодно проверять, нет ли такого уже в базе.
Может, на маркетплейсе кто-то и готовое предложит...
1) При регистрации на сайте делаем средствами js маску для проверки номера телефона.
2) Номер телефона можно делать совпадающим с логином.
В init.php добавить обработчик событий onbeforeuseradd, onbeforeuserupdate, в них присваивать логину номер телефона. На выходе получим у всех пользователей логин совпадающий с телефоном. Автоматом будет выдаваться и ошибка Логин уже существует при вводе номера, который уже есть.
2) Номер телефона можно делать совпадающим с логином.
Если используются социальные модули (форум, например), то Битрикс в настройках по умолчанию будет публично светить логины пользователей. То есть, получается, телефоны. Нехорошо.