\BXmaker\AuthUserPhone\Manager
- Основной класс для работы с модулем, содержит большую часть методов которые необходимы при кастомизации либо разработке дополнительной логики
class Manager extends CBXmaker_AuthUserPhone_Manager
{
//...
}
Тип подтверждения номера телефона через код из смс
\BXmaker\AuthUserPhone\Manager::CONFIRM_TYPE_SMS_CODE = 1
Тип подтверждения номера телефона через звонок от пользователя на роботизированный номер
\BXmaker\AuthUserPhone\Manager::CONFIRM_TYPE_USER_CALL = 2
Тип подтверждения номера телефона через код из последних цифр номера входящего звонка от робота
\BXmaker\AuthUserPhone\Manager::CONFIRM_TYPE_BOT_CALL = 3
Вызывается при отправке код в смс, нужно использовать для отправки смс через сторонний, не встроенный смс сервис передаются параметры: PHONE CODE В ответ ожидается просто результат либо ошибка, которая будет возвращена
\BXmaker\AuthUserPhone\Manager::EVENT_ON_SEND_SMS_CODE = 'onSendCode'
Вызывается при добавлении нового пользователя, когда зарегистрирован например передаются параметры: PHONE - телефона PASSWORD - пароль ID - идентификатор пользователя USER_ID - идентификатор пользователя
В ответ ожидается просто результат либо ошибка, которая будет возвращена
\BXmaker\AuthUserPhone\Manager::EVENT_ON_USER_ADD = 'onUserAdd'
Вызывается при установке нового пароля передаются параметры: USER_ID - идентификатор пользователя PHONE - номер телефона пользователя PASSWORD - новый пароль
В результате ожидается просто успешный результат, в случае ошибки, будет возвращена ошибка
\BXmaker\AuthUserPhone\Manager::EVENT_ON_CHANGE_PASSWORD = 'onUserChangePassword'
Вызывается после подготовки номера телефона для дальнейшего использования, передаются параметры: PHONE - подготовленный номер телефона PHONE_ORIGINAL - исходный номер телефона
В результате ожидается массив содержащий ключ PHONE с измененный номером телефона, который должен проходить валидацию встроенную в Битрикс
\BXmaker\AuthUserPhone\Manager::EVENT_ON_PREPARED_PHONE = 'onPreparedPhone'
Вызывается перед отправкой временного кода в смс для подтверждения номера телефона передаются параметры: PHONE - подготовленный номер телефона CODE - временный код
В результате ожидается массив содержащий ключ CODE если необходимо изменить код
\BXmaker\AuthUserPhone\Manager::EVENT_SERVICE_START_SMS_CODE = 'onBeforeServiceStartSmsCode'
Вызывается перед запросом роботизированного номера телефона на который должен позвонить человек для подтверждения своего номера телефона передаются параметры: PHONE - подготовленный номер телефона
В результат не обрабатывается, только ошибка
\BXmaker\AuthUserPhone\Manager::EVENT_SERVICE_START_USER_CALL = 'onBeforeServiceStartUserCall'
Вызывается перед запросом звонка от робота, в номере телефона которого содержится временный код. Важно учитывать что передаваемый код в событии будет содержаться в номере только в случае если используемый сервис поддерживает такой вариант, иначе будет получен в ответе от сервиса иной код, который сгенерировал сервис
передаются параметры: PHONE - подготовленный номер телефона CODE - временный код В результат не обрабатывается, только ошибка
\BXmaker\AuthUserPhone\Manager::EVENT_SERVICE_START_BOT_CALL = 'onBeforeServiceStartBotCall'
Только добавление пользователя. Вернет объект результата с идентификатором добавленного пользователя
/**
* @param $phone
* @param $arUserFields
* @return \BXmaker\AuthUserPhone\Result
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\ArgumentNullException
* @throws \Bitrix\Main\ArgumentOutOfRangeException
* @throws \Bitrix\Main\Db\SqlQueryException
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
*/
public function addUser($phone, $arUserFields = []);
Авторизация пользователя прямо сейчас, вызывается нужно после успешного прохождения всех проверок
/**
* @param $userId
* @param bool $bSave
* @return \BXmaker\AuthUserPhone\Result
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
* @throws \Bitrix\Main\ArgumentException
*/
public function authorize($userId, $bSave = true);
Базовый класс, используемый во всех наших модулях
/**
* @depricated
* @return \BXmaker\AuthUserPhone\Base
*/
public function base();
Вернет объект класса для работы с капчей
/**
* @return \BXmaker\AuthUserPhone\Captcha
*/
public function captcha();
Проверка истекло ли время ожидания повторного запроса звонка от бота, если не истекло, то будет выброшено исключение
/**
* @param $phone
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
* @throws \BXmaker\AuthUserPhone\Exception\TimeoutException
*/
public function checkBotCallTimeout($phone);
Проверка нового пароля на соответствие требованиям настроек безопасности
/**
* @param $password
* @param array $arGroupId
* @return \BXmaker\AuthUserPhone\Result
*/
public function checkNewPassword($password, $arGroupId = []);
Проверка истекло ли время ожидания повторной отправки, если не истекло, то будет выброшена исключение
/**
* @param $phone
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
* @throws \BXmaker\AuthUserPhone\Exception\TimeoutException
*/
public function checkSmsCodeTimeout($phone);
Проверка истекло ли время ожидания повторного получения номера телефона на который должен позвонить польвзаотель по умолчанию таких ограничений нет
/**
* @param $phone
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
* @throws \BXmaker\AuthUserPhone\Exception\TimeoutException
*/
public function checkUserCallTimeout($phone);
Уберет все символы кроме цифр
/**
* @param $number
* @return string
*/
public function clearNumber($number);
Удаление временного email адреса зарегистрированного только что пользователя в доменной зоне local.loc
/**
* @param $user_id
* @return bool
* @throws \Bitrix\Main\Db\SqlQueryException
*/
public function clearUserTemporaryEmail($user_id);
Метод запускаемый по крону для заполнение номерами телефонов использовать так, запускаем каждую ночь каждую минуту с 2 до 3 часов ' 2-3 * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/bxmaker.authuserphone/tools/cron.php fill 1000'
/**
* @param int $limit
* @return bool
* @throws \Bitrix\Main\LoaderException
*/
public function cronAutofill($limit = 500);
Заполнит поля пользователя с номером телефона, согласно настройкам автозаполнения
/**
* @param $arUserOrUserId
* @param bool $bReplace
* @return \Bitrix\Main\Result
* @throws \Bitrix\Main\LoaderException
*/
public function fillUserPhoneFields($arUserOrUserId, $bReplace = false);
Произведет поиск пользователя по email адресу и паролю, и вернет объект с результатом
/**
* @param $email
* @param $password
* @param $bActiveOnly
* @return \BXmaker\AuthUserPhone\Result
*/
public function findUserIdByEmailPassword($email, $password, $bActiveOnly = true);
Произведет поиск пользователя по логину и паролю, и вернет объект с результатом
/**
* @param $login
* @param $password
* @param $bActiveOnly
* @return \BXmaker\AuthUserPhone\Result
*/
public function findUserIdByLoginPassword($login, $password, $bActiveOnly = true);
Произведет поиск пользователя по телефону, логину или email адресу
/**
* @param $phoneLoginEmail - телефон, логин или email
* @param $mayBePhone
* @param $mayByLogin
* @param $mayBeEmail
* @param $bActiveOnly
* @return \BXmaker\AuthUserPhone\Result
*/
public function findUserIdByPLE($phoneLoginEmail, $mayBePhone = true, $mayByLogin = true, $mayBeEmail = true, $bActiveOnly = true);
Ищет пользователя по номеру телефона и возвращает объект результата с идентификатором пользователя
/**
* @param $phone
* @param bool $bActiveOnly - только активные аккаунты
* @return \BXmaker\AuthUserPhone\Result
*/
public function findUserIdByPhone($phone, $bActiveOnly = true);
Произведет поиск пользователя по номеру телефона и паролю, и вернет объект с результатом
/**
* @param $phone
* @param $password
* @param $bActiveOnly
* @return \BXmaker\AuthUserPhone\Result
*/
public function findUserIdByPhonePassword($phone, $password, $bActiveOnly = true);
Завершение действия, очищение от временных данных подтверждений, лимитов вызывается после подтверждения номера когда пользователь авторизовался успешно
/**
* @param $phone
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\Db\SqlQueryException
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
*/
public function finishAction($phone);
Вернет объект класса для форматирования номера телефона
/**
* @return \BXmaker\AuthUserPhone\Format
*/
public function format();
Возвращает массив полей для автозаполнения номерами телефонов
/**
* @return array
*/
public function getAutoFillPhoneFields();
Вернет код поля с номером телефона пользователя, которое явялется родным для битрикса для перехода на использование добавленого в новых версиях битркиса поля, чтобы не добавлять свое
/**
* @return string - PHONE_NUMBER
*/
public function getBitrixUserPhoneFieldCode();
Вернет длину кода отправленно при последнем запросе звонк аот робота
/**
* @param $phone - подготовленный номер телефона
* @return int
*/
public function getBotCallCodeLength($phone);
Вернет количество секунд до возможности повторно запросить звонок от робота
/**
* @param $phone - подготовленный номер телефона
* @return int
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
*/
public function getBotCallTimeout($phone);
Возвращает название компонента который будет использвоан по умолчанию вместо стандартнйо авторизации,например bxmaker:authuserphone.login
/**
* @return string
*/
public function getDefaultComponent();
Приведение к формату номера телефона
/**
* @param $phone
* @return string
*/
public function getFormatedPhone($phone, $format = null);
Возвращает строку сгенерированную в качесвте пароля
/**
* @return string
*/
public function getGeneratedPassword($arGroupId = [2]);
Вернет массив настроек для профиля безопасности, с модификацией в частности по умолчанию длина пароля может быть не задана минимальная, но она требуется далее поэтмоу ее ставим принудительно в случае отсутствия
/**
* @param int|int[] $arGroupId - или массив ID групп польвзаотеля, или ID самого польвзаотеля
* @return array
*/
public function getGroupPolicy($arGroupId);
/**
* @return \BXmaker\AuthUserPhone\Manager
*/
public static final function getInstance();
Вернет языкозависимое сообщение
/**
* @param string $name
* @param array|null $arReplace
* @return string
*/
public function getMessage($name, $arReplace = null);
Текст сообщения - новый пароль пользователя
/**
* @param $pass
* @return string
*/
public function getMessageNewPass($phone, $pass, $textTemplate = null, $siteId = null);
Текст сообщения пароль пользователя
/**
* @param $pass
* @return string
*/
public function getMessagePass($phone, $pass, $textTemplate = null, $siteId = null);
Текст сообщения для временного кода
/**
* @param $code
* @param null $textTemplate
* @param null $siteId
* @return mixed|null|string
*/
public function getMessageTemporaryCode($code, $textTemplate = null, $siteId = null);
public function getModuleId();
Вернет массив ID свойств заказа, в значениях которых может быть указан номер телефона польвзаотеля соласно настройкам модуля (например для свойства телефон с кодом PHONE и ID=12 -> [12, 47, ...])
/**
* @return array
*/
public function getOrderPropertyIdWithPhone();
Возвращает номер телефона пользователя 79991112233 или null
/**
* @param $userId
* @return null
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
* @throws \Bitrix\Main\ArgumentException
*/
public function getPhone($userId);
Подготовка номера телефона
/**
* @param $phone
* @return mixed
*/
public function getPreparedPhone($phone);
Вернет referer запроса
/**
* @return string
*/
public function getReferer();
Поле которе должно передаваться в масивом полей пользователя для обнволения, чтобы номер телефона был заменен или при регистрации
/**
* @return string
*/
public function getSetPhoneAcceptFlagCode();
Возвращает идентификатор текущего сайта
/**
* @return string
*/
public function getSiteId();
Возвращает текущий домен для использвоания в ссылке для восстаноdления доступа
/**
* @return string
* @throws \Bitrix\Main\SystemException
*/
public function getSiteUrl();
Вернет длину кода для смс подтверждения или через звонок от бота
/**
* @param $phone - подготовленный номер телефона
* @return int
*/
public function getSmsCodeLength($phone);
Вернет количество секунд до возможности повторно запросить код в смс
/**
* @param $phone - подготовленный номер телефона
* @return int
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
*/
public function getSmsCodeTimeout($phone);
Вернет временный email для регистрации пользователя
/**
* @param $phone
* @return string
*/
public function getTemporaryEmail($phone);
Вернет url адрес относительный. при переходе по которому пользователь будет автоматически авторизован
/**
* @param $user - Id пользователя или массив полей пользователя
* @return bool|string
*/
public function getUserAccessRestoreUrl($user);
Формируем контрольную строку для восстановления доступа
/**
* @param $userId
* @param $timestamp
* @param $password
* @param $checkword
* @param null $salt
* @return string
*/
public function getUserAccessRestoreUrlHash($userId, $timestamp, $password, $salt = null);
Вернет количество секунд до возможности повторно запросить номер телефона для звонка от пользвоателя
/**
* @param $phone - подготовленный номер телефона
* @return int
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
*/
public function getUserCallTimeout($phone);
Вернет массив идентификтоаров группу польвзователя при доабвлении
/**
* @return string[]
* @throws \Bitrix\Main\ArgumentNullException
* @throws \Bitrix\Main\ArgumentOutOfRangeException
*/
public function getUserDefaultGroupIds();
Вернет массив кодов полей в которых может быть телефон пользователя согласно настройкам модуля [PERSONAL_MOBILE, PERSONAL_PHONE, ...]
/**
* @return array
*/
public function getUserFieldsWithPhone();
Вернет массив идентификаторов групп конкретного пользователя
/**
* @param $userId
* @return array
*/
public function getUserGroups($userId);
Вернет идентификатор текущего пользователя или null
/**
* @return null|int
*/
public function getUserId();
Возвращает url адрес для преадресации на страницу заполнения профиля
/**
* @return string
*/
public function getUserProfileUrl();
Подключает jQuery на странице
public function initComponentJQuery();
Проверка авторизован ли пользователь
/**
* @return bool
*/
public function isAuthorized();
Проверка демо режимаs
/**
* @return bool
*/
public final function isDemo();
Проверка включен ли модуль для текущего сайта
/**
* @return bool
*/
public function isEnabled();
Проверяет занятость email адреса
/**
* @param $email
* @return bool
*/
public function isExistEmail($email);
Произведет существование логина
/**
* @param $login
* @return bool
*/
public function isExistLogin($login);
Проверка не истекло ли время демо режима
/**
* @return bool
*/
public final function isExpired();
Проверка установлен ли модуль интернет-магазина
/**
* @return bool
* @throws \Bitrix\Main\LoaderException
*/
public function isInstalledSaleModule();
Вернет флаг необхзодимости автозаполнени номера телефона по массиву идентификтаоров групп пользователя
/**
* @param $arGroups - массив ижентификаторов групп
* @return bool
*/
public function isNeedAutoFillPhoneForGroups($arGroups = []);
Нужно ли заполнять дополнительные поля пользователя с номером телефона
/**
* @param $userId
* @return bool
*/
public function isNeedAutoFillPhoneForUser($userId);
Проверка есть ли у пользователя незаполненные поля, например имя. Список полей задается в настройках модуля
/**
* @param $userId
* @return bool
*/
public function isNeedFillUserProfile($userId);
Зарегистрирвоан в рамках данной сессии пользователь или нет
/**
* @return bool
*/
public function isSetUserRegisterFlag();
Проверка валидности кода полуечнного при звонке от робота с учетом времени действия
/**
* @param $phone
* @param $code
* @return bool
*/
public function isValidBotCallCode($phone, $code);
Проверяет валидность email адреса
/**
* @param $email
* @return false|int
*/
public function isValidEmail($email);
Проверка правильноси номера
/**
* @param $phone - должен передаваться подготовленный номер телефона
* @return bool
*/
public function isValidPhone($phone);
Проверка валидности кода из смс с учетом времени действия
/**
* @param $phone
* @param $code
* @return bool
*/
public function isValidSmsCode($phone, $code);
Проверка данных для восстановления доступа по email из url
/**
* @param $arUrlQueryParams
* @return bool
*/
public function isValidUserAccessRestoreUrlHash($arUrlQueryParams, $bCheckTimeout = true);
Проверка на валидность указанного пароля
/**
* @param $arUser - массив полей польвзователя или ID пользователя
* @param $password
* @return bool
*/
public function isValidUserPassword($arUser, $password);
Вернет объект для рабоыт с лимитом по IP
/**
* @return \BXmaker\AuthUserPhone\Manager\Limit
*/
public function limit();
Вернет объект для рабоыт с лимитом по IP
/**
* @return \BXmaker\AuthUserPhone\Manager\Ip\Limit
*/
public function limitIP();
Вернет объект класса для работы с пользователем
/**
* @return \CUser
*/
public function oldUser();
Вернет ошибку при работе с пользователем
/**
* @return bool|string
*/
public function oldUserError();
Вернет объект класса для работы с настройками модуля
/**
* @return \BXmaker\AuthUserPhone\Param
*/
public function param();
Подготавливает поля добавляемого пользователя, заполняет обязательные пользовательские поля подходящими пустыми значениями чтобы нормально прошло добавление пользователя
/**
* @param $phone
* @param $arUserFields
* @return mixed
* @throws \Bitrix\Main\ArgumentNullException
* @throws \Bitrix\Main\ArgumentOutOfRangeException
*/
public function prepareNewUserFields($phone, $arUserFields);
Регистрация пользователя, вернет объект результата с ID пользователя для дальнейшей авторизации
/**
* @param string $phone - подготовленный номер телефона
* @param array $arUserFields - массив дополнительных полей
* @return \BXmaker\AuthUserPhone\Result
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\ArgumentNullException
* @throws \Bitrix\Main\ArgumentOutOfRangeException
* @throws \Bitrix\Main\Db\SqlQueryException
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
*/
public function register($phone, $arUserFields = []);
Чтобы после автоматической смены пароля не прекращалась сессия при следующем обновлении страницы
/**
* @param $userId
*/
protected function removeLogoutAction($userId);
Сохранение согласия польвзаотеля с соглашением
/**
* @param $userId
* @param $consentId
* @param $consentUrl
* @return int|null
*/
public function saveConsent($userId, $consentId, $consentUrl);
Вызов обработчиков собйтий для модификации результата
/**
* @param $eventName
* @param $arParameters
* @param null $module
* @return mixed
*/
public function sendEvent($eventName, $arParameters = []);
Отправка письма с ссылкой для восстановления по логину, email, номеру телефона
/**
* @param $phoneLoginEmail
* @return \BXmaker\AuthUserPhone\Result
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
* @throws \Bitrix\Main\ArgumentException
*/
public function sendRestoreEmailByPLE($phoneLoginEmail, $mayByPhone = true, $mayByLogin = true, $mayBeEmail = true);
Отправка email с уникальной персональной ссылкой для автоматической авторизации пользвоателя на сайте при переходе по ней
/**
* @param $arUserId - массив ID пользователей
* @return \BXmaker\AuthUserPhone\Result
* @throws \Bitrix\Main\SystemException
*/
public function sendRestoreEmailByUserId($arUserId);
Вернет менеджера сервисов
/**
* @return \BXmaker\AuthUserPhone\Service
*/
public function service();
Установка пароля пользователю с заданным номером
/**
* @param $userId
* @param null $password
* @return \BXmaker\AuthUserPhone\Result
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
* @throws \Bitrix\Main\ArgumentException
*/
public function setPassword($userId, $password = null);
Установка номера телефона пользователю, с автозаполнением полей с форматирвоанными номерами
/**
* @param $userId
* @param $phone
* @return \BXmaker\AuthUserPhone\Result
*/
public function setPhone($userId, $phone);
Ставит отметку что номер телефона подтвержден в главном модуле
/**
* @param $userId
* @param $phone
* @return bool
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
*/
public function setPhoneConfirmedFlagToMainModule($userId, $phone);
Устанавливает идентификатор текущего сайта, с которым будем работать. Если не передать идентификатор, текущий сайт будет определен автоматически.
/**
* @param string $siteId
* @return $this
*/
public function setSiteId($siteId = null);
Флаг, пользователь зарегистрирвоан в рамках данной сессии
public function setUserRegisterFlag($flag = true);
Сообщение о демо режиме
public function showDemoMessage();