function OnBeforeUserLogin($arFields) { $phone = preg_replace("/[^0-9]/", '', $arFields["LOGIN"]); if (\CDev::check_phone($phone)) { $filter = array("PERSONAL_PHONE" => $phone); } else { $filter = array("=EMAIL" => $arFields["LOGIN"]); } $rsUsers = \CUser::GetList($by = "LAST_NAME", $order = "asc", $filter); if ($user = $rsUsers->GetNext()) { $arFields["LOGIN"] = $user["LOGIN"]; } }
$result['message'] = ''; //$result['post'] = $_POST; if (!$USER->IsAuthorized()) { $html = ""; if (strlen($_POST['ajax_key']) && $_POST['ajax_key'] != md5('ajax_' . LICENSE_KEY) || !check_bitrix_sessid()) { $html = "Сессия не действительна!"; } $emailTo = trim(htmlspecialcharsbx($_POST['USER_LOGIN'])); $phone = preg_replace("/[^0-9]/", '', $emailTo); $checkword = htmlspecialcharsbx($_POST["USER_CHECKWORD"]); $password = htmlspecialcharsbx($_POST["USER_PASSWORD"]); if (!CDev::check_email($emailTo) && !CDev::check_phone($phone)) { $result['errors']["USER_LOGIN"] = "******"; } if (empty($html) && count($result['errors']) == 0) { if (CDev::check_phone($phone)) { $rsUsers = CUser::GetList($by = "EMAIL", $order = "desc", array("PERSONAL_PHONE" => $phone), array("SELECT" => array("UF_PHONE_CHECKWORD", "ID"))); if ($arUser = $rsUsers->GetNext()) { if ($arUser["UF_PHONE_CHECKWORD"] == $checkword && !empty($arUser["UF_PHONE_CHECKWORD"])) { $cuser = new CUser(); $cuser->Update($arUser["ID"], array("UF_PHONE_CHECKWORD" => "", "PASSWORD" => $password, "CONFIRM_PASSWORD" => $password)); $result['status'] = "success"; } else { $result['errors']["USER_LOGIN"] = "******"; } } else { $result['errors']["USER_LOGIN"] = '******'; } } else { $rsUsers = CUser::GetList($by = "EMAIL", $order = "desc", array("=EMAIL" => $emailTo)); if ($arUser = $rsUsers->GetNext()) {