function OnPostForm() { $wizard =& $this->GetWizard(); if ($wizard->IsNextButtonClick()) { $arResult = $wizard->GetVars(true); COption::SetOptionString("sale", "order_email", $arResult["orderEmail"]); COption::SetOptionString("sale", "delete_after", $arResult["saveBasket"]); COption::SetOptionString("sale", "default_currency", $arResult["currencyID"]); $arFields["LID"] = $arResult["siteID"]; $arFields["CURRENCY"] = $arResult["currencyID"]; CSaleLang::Update($arResult["siteID"], array("LID" => $arResult["siteID"], "CURRENCY" => $arResult["currencyID"])); CSaleGroupAccessToSite::DeleteBySite($arResult["siteID"]); foreach ($arResult["groupID"] as $v) { CSaleGroupAccessToSite::Add(array("SITE_ID" => $arResult["siteID"], "GROUP_ID" => $v)); } if (!empty($arResult["1C_GROUP_PERMISSIONS"])) { COption::SetOptionString("catalog", "1C_GROUP_PERMISSIONS", implode(",", $arResult["1C_GROUP_PERMISSIONS"])); } COption::SetOptionString("catalog", "1C_ELEMENT_ACTION", $arResult["1C_ELEMENT_ACTION"]); COption::SetOptionString("catalog", "1C_SECTION_ACTION", $arResult["1C_SECTION_ACTION"]); COption::SetOptionString("catalog", "1C_INTERVAL", $arResult["1C_INTERVAL"]); COption::SetOptionString("catalog", "1C_FILE_SIZE_LIMIT", $arResult["1C_FILE_SIZE_LIMIT"]); COption::SetOptionString("catalog", "1C_SITE_LIST", $arResult["siteID"]); if (!empty($arResult["1C_GROUP_PERMISSIONS"])) { COption::SetOptionString("sale", "1C_SALE_GROUP_PERMISSIONS", implode(",", $arResult["1C_GROUP_PERMISSIONS"])); } COption::SetOptionString("sale", "1C_EXPORT_PAYED_ORDERS", $arResult["1C_EXPORT_PAYED_ORDERS"]); COption::SetOptionString("sale", "1C_EXPORT_ALLOW_DELIVERY_ORDERS", $arResult["1C_EXPORT_ALLOW_DELIVERY_ORDERS"]); COption::SetOptionString("sale", "1C_EXPORT_FINAL_ORDERS", $arResult["1C_EXPORT_FINAL_ORDERS"]); COption::SetOptionString("sale", "1C_FINAL_STATUS_ON_DELIVERY", $arResult["1C_FINAL_STATUS_ON_DELIVERY"]); COption::SetOptionString("sale", "1C_SALE_SITE_LIST", $arResult["siteID"]); foreach ($arResult["groupID"] as $v) { $perm = $GLOBALS["APPLICATION"]->GetGroupRight("sale", $v); if ($perm != "W") { $GLOBALS["APPLICATION"]->SetGroupRight("sale", $v, "U"); } } $dbStatus = CSaleStatus::GetList(array("SORT" => "ASC"), array("LID" => $arResult["siteID"]), false, false, array("ID", "LID", "SORT")); while ($arStatus = $dbStatus->Fetch()) { $arPerms = array(); foreach ($arResult["groupID"] as $v) { $arPerms[] = array("GROUP_ID" => $v, "PERM_VIEW" => $arResult["perm"][$arStatus["ID"]][$v]["PERM_DELETE"] == "Y" || $arResult["perm"][$arStatus["ID"]][$v]["PERM_UPDATE"] == "Y" || $arResult["perm"][$arStatus["ID"]][$v]["PERM_PAYMENT"] == "Y" || $arResult["perm"][$arStatus["ID"]][$v]["PERM_DELIVERY"] == "Y" || $arResult["perm"][$arStatus["ID"]][$v]["PERM_CANCEL"] == "Y" ? "Y" : $arResult["perm"][$arStatus["ID"]][$v]["PERM_VIEW"], "PERM_CANCEL" => $arResult["perm"][$arStatus["ID"]][$v]["PERM_CANCEL"], "PERM_MARK" => $arResult["perm"][$arStatus["ID"]][$v]["PERM_MARK"], "PERM_DEDUCTION" => $arResult["perm"][$arStatus["ID"]][$v]["PERM_DEDUCTION"], "PERM_DELIVERY" => $arResult["perm"][$arStatus["ID"]][$v]["PERM_DELIVERY"], "PERM_PAYMENT" => $arResult["perm"][$arStatus["ID"]][$v]["PERM_PAYMENT"], "PERM_STATUS" => $arResult["perm"][$arStatus["ID"]][$v]["PERM_STATUS"], "PERM_STATUS_FROM" => $arResult["perm"][$arStatus["ID"]][$v]["PERM_STATUS_FROM"], "PERM_UPDATE" => $arResult["perm"][$arStatus["ID"]][$v]["PERM_UPDATE"], "PERM_DELETE" => $arResult["perm"][$arStatus["ID"]][$v]["PERM_DELETE"]); } CSaleStatus::Update($arStatus["ID"], array("PERMS" => $arPerms, "SORT" => $arStatus["SORT"])); } $paySystemID = array(); $paySystem = array(); foreach ($arResult["paySystem"] as $pType => $pSystem) { if (!empty($pSystem)) { foreach ($pSystem as $v) { $paySystem[$v][] = $pType; if (!in_array($v, $paySystemID)) { $paySystemID[] = $v; } } } } $dbPaySys = CSalePaySystem::GetList(array(), array("ACTIVE" => "Y"), false, false, array("ID", "ACTIVE")); while ($arPaySys = $dbPaySys->Fetch()) { if (!in_array($arPaySys["ID"], $paySystemID)) { CSalePaySystem::Update($arPaySys["ID"], array("ACTIVE" => "N")); } } foreach ($paySystem as $pID => $value) { $dbPaySysAction = CSalePaySystemAction::GetList(array(), array("PAY_SYSTEM_ID" => $pID)); while ($arPaySysAction = $dbPaySysAction->Fetch()) { if (!in_array($arPaySysAction["PERSON_TYPE_ID"], $value)) { CSalePaySystemAction::Delete($arPaySysAction["ID"]); } } } function LocalGetPSActionParams($fileName) { $arPSCorrespondence = array(); if (file_exists($fileName) && is_file($fileName)) { include $fileName; } return $arPSCorrespondence; } foreach ($paySystem as $pID => $value) { foreach ($value as $personID) { $arFields = array(); $arPaySysAction = ""; $dbPaySysAction = CSalePaySystemAction::GetList(array(), array("PAY_SYSTEM_ID" => $pID, "PERSON_TYPE_ID" => $personID)); if ($arPaySysAction = $dbPaySysAction->Fetch()) { $pathToAction = $_SERVER["DOCUMENT_ROOT"] . $arPaySysAction["ACTION_FILE"]; } else { $dbPaySysAction = CSalePaySystemAction::GetList(array(), array("PAY_SYSTEM_ID" => $pID)); if ($arPaySysActionTmp = $dbPaySysAction->Fetch()) { $pathToAction = $_SERVER["DOCUMENT_ROOT"] . $arPaySysActionTmp["ACTION_FILE"]; } } if (strlen($pathToAction) > 0) { $arPSCorrespondence = LocalGetPSActionParams($pathToAction . "/.description.php"); $arParams = array(); foreach ($arPSCorrespondence as $k => $v) { $typeTmp = $arResult[$pID . "_" . $k . "_" . $personID]; $valueTmp = $arResult["VALUE1_" . $pID . "_" . $k . "_" . $personID]; if (strlen($valueTmp) <= 0) { $valueTmp = $arResult["VALUE2_" . $pID . "_" . $k . "_" . $personID]; } $arParams[$k] = array("TYPE" => $typeTmp, "VALUE" => $valueTmp); } $arFields = array("NEW_WINDOW" => $arResult["paySystemPopup"][$pID][$personID], "PARAMS" => CSalePaySystemAction::SerializeParams($arParams)); if (IntVal($arPaySysAction["ID"]) > 0) { CSalePaySystemAction::Update($arPaySysAction["ID"], $arFields); } else { $arFields["PAY_SYSTEM_ID"] = $pID; $arFields["PERSON_TYPE_ID"] = $personID; $arFields["NAME"] = $arPaySysActionTmp["NAME"]; $arFields["ACTION_FILE"] = $arPaySysActionTmp["ACTION_FILE"]; $arFields["HAVE_PREPAY"] = "N"; $arFields["HAVE_RESULT"] = "N"; $arFields["HAVE_ACTION"] = "N"; $arFields["HAVE_PAYMENT"] = "N"; $arFields["HAVE_RESULT_RECEIVE"] = "N"; if (file_exists($pathToAction)) { if (is_dir($pathToAction)) { if (file_exists($pathToAction . "/pre_payment.php")) { $arFields["HAVE_PREPAY"] = "Y"; } if (file_exists($pathToAction . "/result.php")) { $arFields["HAVE_RESULT"] = "Y"; } if (file_exists($pathToAction . "/action.php")) { $arFields["HAVE_ACTION"] = "Y"; } if (file_exists($pathToAction . "/payment.php")) { $arFields["HAVE_PAYMENT"] = "Y"; } if (file_exists($pathToAction . "/result_rec.php")) { $arFields["HAVE_RESULT_RECEIVE"] = "Y"; } } else { $arFields["HAVE_PAYMENT"] = "Y"; } } CSalePaySystemAction::Add($arFields); } } } } COption::SetOptionInt("sale", "location", $arResult["location"], false, $arResult["siteID"]); if (empty($arResult["delivery"])) { $arResult["delivery"] = array(); } $dbDelivery = CSaleDeliveryHandler::GetList(array("SORT" => "ASC"), array("SITE_ID" => $arResult["siteID"], "ACTIVE" => "Y")); while ($arDelivery = $dbDelivery->Fetch()) { if (!in_array($arDelivery["SID"] . "_new", $arResult["delivery"])) { CSaleDeliveryHandler::Set($arDelivery["SID"], array("ACTIVE" => "N")); } } $dbDelivery = CSaleDelivery::GetList(array("SORT" => "ASC"), array("LID" => $arResult["siteID"], "ACTIVE" => "Y")); while ($arDelivery = $dbDelivery->Fetch()) { if (!in_array($arDelivery["ID"], $arResult["delivery"])) { CSaleDelivery::Update($arDelivery["ID"], array("ACTIVE" => "N")); } } if (strlen($arResult["login"]) > 0) { $arFields = array("LOGIN" => $arResult["login"], "PASSWORD" => $arResult["password"], "CONFIRM_PASSWORD" => $arResult["password_rep"], "EMAIL" => $arResult["email"]); $user = new CUser(); $ID = $user->Add($arFields); if (IntVal($ID) > 0) { $sGroups = COption::GetOptionString("main", "new_user_registration_def_group", ""); CUser::SetUserGroup($ID, array_merge(explode(",", $sGroups), $arResult["1C_GROUP_PERMISSIONS"])); } } } }
public function onUserLoginExternal(&$arParams) { if (!$this->useOfficeAuth()) { return null; } $login = new UserLogin($arParams['LOGIN']); $password = $arParams['PASSWORD']; if ($this->isAuthorized($login->getOfficeLogin(), $password, $this->officeAuthUrl())) { $fields = array("LOGIN" => $login->getBitrixLogin(), "NAME" => $login->getOfficeLogin(), "PASSWORD" => $password, "EMAIL" => $login->getEmail(), "ACTIVE" => "Y", "EXTERNAL_AUTH_ID" => "Office", "LID" => SITE_ID); $user = new \CUser(); $existedUser = \CUser::GetList($by = "timestamp_x", $order = "desc", array("LOGIN_EQUAL_EXACT" => $login->getBitrixLogin(), "EXTERNAL_AUTH_ID" => "Office"))->Fetch(); if (!$existedUser) { $id = $user->Add($fields); } else { $id = $existedUser["ID"]; $user->Update($id, $fields); } if ($id > 0) { $groups = \CUser::GetUserGroup($id); if (!in_array(1, $groups)) { $groups[] = 1; \CUser::SetUserGroup($id, $groups); } $arParams["store_password"] = "******"; return $id; } } return null; }
public static function UserCreate($name, $phone, $domen, $login, $group) //$name - string, $phone - string, $domen - string, $login - string, $group - array { if (CUser::IsAuthorized()) { $userId = CUser::GetID(); return (int)$userId; } else { $usersCheck = CUser::GetByLogin($login); if ($arUser = $usersCheck->Fetch()) { return (int)$arUser["ID"]; } else { $stringPhone = preg_replace('~\D~','',$phone); $password = OrderClick::GeneratePassword(10); $user = new CUser; $arFields = Array( "NAME" => $name, "EMAIL" => $stringPhone . "@" . $domen, "LOGIN" => $phone, "ACTIVE" => "N", // Делаю пользователя не активным "GROUP_ID" => $group, "PASSWORD" => $password, "CONFIRM_PASSWORD" => $password, "PERSONAL_PHONE" => $stringPhone, ); return $user->Add($arFields); } } }
public function Add() { global $USER; if ($USER->isAuthorized()) { return \CUser::GetID(); } $this->arFields = array_merge($this->getFields(), $this->defaultFields); if (!$this->arFields["EMAIL"]) { throw new CRUDException("Please, set email for new user"); } $u = \CUser::GetList($by = "ID", $order = "DESC", array("EMAIL" => $this->arFields["EMAIL"]))->Fetch(); if ($u) { return $u["ID"]; } try { $this->generate('LOGIN')->generate('PASSWORD')->generate('GROUP_ID'); } catch (CRUDGenerateException $e) { prentExpection($e->getMessage()); } $objUser = new \CUser(); $newUserID = $objUser->Add($this->arFields); if (!intval($newUserID)) { throw new CRUDException("An error was occured while adding new User in CRUD: " . $objUser->LAST_ERROR . ". Line: " . __LINE__); } else { return $newUserID; } }
function registerUser($userInfo) { $errors = array(); $result = ''; if (empty($userInfo['name'])) { $errors[] = 'Вы не ввели имя'; } if (empty($userInfo['email'])) { $errors[] = 'Вы не ввели email'; } if (empty($userInfo['phone'])) { $errors[] = 'Вы не ввели телефон'; } if (empty($errors)) { $user = new CUser(); $password = make_password(8); $arFields = array("NAME" => $userInfo['name'], "EMAIL" => $userInfo['email'], "LOGIN" => $userInfo['email'], "ACTIVE" => "Y", "GROUP_ID" => array(6), "PASSWORD" => $password, "CONFIRM_PASSWORD" => $password, "PERSONAL_PHONE" => $userInfo['phone']); $ID = $user->Add($arFields); if (intval($ID) > 0) { $result = "Вы успешно зарегистрированы."; $arEventField = array("NAME" => $userInfo['name'], "EMAIL" => $userInfo['email'], "PASSWORD" => $password); CEvent::SendImmediate("NEW_REG", "s1", $arEventField); unset($_POST['user']); global $USER; global $APPLICATION; $USER->Authorize($ID); LocalRedirect($APPLICATION->GetCurPageParam('', array('user[name]', 'user[email]', 'ELEMENT_CODE', 'code'))); } else { $errors[] = $user->LAST_ERROR; } } return $errors; }
public static function createUloginAccount($profile, $id) { $user = new CUser(); $ulogin_profile['EMAIL'] = $profile['EMAIL']; $ulogin_profile['LOGIN'] = $profile['LOGIN']; $ulogin_profile['PASSWORD'] = rand(1000000, 10000000); $ulogin_profile['CONFIRM_PASSWORD'] = $ulogin_profile['PASSWORD']; $ulogin_profile['ACTIVE'] = 'N'; $ulogin_profile['ADMIN_NOTES'] = $profile['NETWORK'] . '=' . $id; $ulogin_profile['EXTERNAL_AUTH_ID'] = $profile['EXTERNAL_AUTH_ID']; return $user->Add($ulogin_profile); }
function addUser($arUserFields = array(), $arDepartmens = array()) { $arUserFields["GROUP_ID"] = array(5); $emails = array_unique(split(', ', $arUserFields["EMAIL"])); $arUserFields["EMAIL"] = trim($emails[0]); $arUserFields["COPY_EMAIL"] = implode(', ', $emails); $arUserFields["UID"] = $ID; $arUserFields["CONFIRM_PASSWORD"] = trim($arUserFields["CONFIRM_PASSWORD"]); $arUserFields["PASSWORD"] = trim($arUserFields["PASSWORD"]); $user = new CUser(); $ID = $user->Add($arUserFields); if (intval($ID) > 0) { $arUserFields["UID"] = $ID; } else { echo "<hr/>" . $user->LAST_ERROR; } print_r($arUserFields); return $arUserFields; }
/** * Сохраняет пользователя * @return bool */ public function save() { if (!$this->validate() || !$this->riseEvent('beforeSave')) { return false; } $arFields = []; foreach ($this->getAttributes() as $key => $attr) { $arFields[strtoupper($key)] = $attr->getValueToDb(); } if (!is_array($arFields['PERSONAL_PHOTO'])) { unset($arFields['PERSONAL_PHOTO']); } if (!is_array($arFields['WORK_LOGO'])) { unset($arFields['WORK_LOGO']); } $user = new \CUser(); //записываем поля пользователя if (!$this->isNew()) { if (empty($arFields['PASSWORD']) || empty($arFields['CONFIRM_PASSWORD'])) { unset($arFields['PASSWORD'], $arFields['CONFIRM_PASSWORD']); } $id = $this->getAttribute('id')->getValue(); //при обновлении элемента сначала записываем базовые поля $res = $user->Update($id, $arFields); if (!$res) { throw new Exception($user->LAST_ERROR); } $this->riseEvent('afterSave'); } else { $new = $user->Add($arFields); if ($new) { $this->getAttribute('id')->setValue($new); $this->riseEvent('afterSave'); } else { throw new Exception($user->LAST_ERROR); } } return true; }
{ if(ExecuteModuleEventEx($arEvent, array(&$arResult['VALUES'])) === false) { if($err = $APPLICATION->GetException()) $arResult['ERRORS'][] = $err->GetString(); $bOk = false; break; } } $ID = 0; $user = new CUser(); if ($bOk) { $ID = $user->Add($arResult["VALUES"]); } if (intval($ID) > 0) { $register_done = true; // authorize user if ($arParams["AUTH"] == "Y" && $arResult["VALUES"]["ACTIVE"] == "Y") { if (!$arAuthResult = $USER->Login($arResult["VALUES"]["LOGIN"], $arResult["VALUES"]["PASSWORD"])) $arResult["ERRORS"][] = $arAuthResult; } $arResult['VALUES']["USER_ID"] = $ID;
public static function createUser($providerName, $userProfile) { global $USER; COption::SetOptionString("main", "captcha_registration", "N"); $default_group = COption::GetOptionString("main", "new_user_registration_def_group"); if (!empty($default_group)) { $arrGroups = explode(",", $default_group); } $password = mb_substr(md5(uniqid(rand(), true)), 0, 8); $birthday = $userProfile["birthDay"] . "." . $userProfile["birthMonth"] . "." . $userProfile["birthYear"]; if (strlen($birthday) != 10) { $birthday = ""; } $email = ""; if (!empty($userProfile["email"])) { $email = $userProfile["email"]; } else { if (!empty($userProfile["emailVerified"])) { $email = $userProfile["emailVerified"]; } } if (empty($userProfile["firstName"]) && empty($userProfile["lastName"])) { $userProfile["firstName"] = $userProfile["displayName"]; } $cUser = new \CUser(); $arFields = array("NAME" => $userProfile["firstName"], "LAST_NAME" => $userProfile["lastName"], "EMAIL" => $email, "LOGIN" => $email, "PERSONAL_GENDER" => strtoupper(substr($userProfile["gender"], 0, 1)), "PERSONAL_WWW" => $arResult['USER']["URL"], "PERSONAL_BIRTHDAY" => $birthday, "ACTIVE" => "Y", "GROUP_ID" => $arrGroups, "EXTERNAL_AUTH_ID" => $providerName . $userProfile["identifier"], "PASSWORD" => $password, "CONFIRM_PASSWORD" => $password, "PERSONAL_PHONE" => $userProfile["phone"], "PERSONAL_CITY" => $userProfile["home_town"]); //$json = file_get_contents('https://graph.facebook.com/'.$userProfile["identifier"].'/picture?type=large'); //$file = $_SERVER["DOCUMENT_ROOT"].'/upload/avatar/'.$userProfile["identifier"].'.jpg'; if (!empty($userProfile["photoURL"])) { if ($providerName == "facebook") { $img = file_get_contents('https://graph.facebook.com/' . $userProfile["identifier"] . '/picture?type=large'); $file = $_SERVER["DOCUMENT_ROOT"] . '/upload/avatar/' . $userProfile["identifier"] . '.jpg'; file_put_contents($file, $img); } else { if ($providerName == "yandex") { $img = file_get_contents('https://avatars.yandex.net/get-yapic/' . $userProfile["identifier"] . '/islands-200'); $file = $_SERVER["DOCUMENT_ROOT"] . '/upload/avatar/' . $userProfile["identifier"] . '.jpg'; file_put_contents($file, $img); } else { if ($providerName == "linkedin") { $img = file_get_contents($userProfile["photoURL"]); $file = $_SERVER["DOCUMENT_ROOT"] . '/upload/avatar/' . $userProfile["identifier"] . '.jpg'; file_put_contents($file, $img); } else { $file = $userProfile["photoURL"]; } } } $arImage = \CFile::MakeFileArray($file); $arImage["MODULE_ID"] = "main"; $arFields["PERSONAL_PHOTO"] = $arImage; } $USER_ID = $cUser->Add($arFields); if ($USER_ID) { \CUser::SendUserInfo($USER_ID, SITE_ID, "Приветствуем Вас как нового пользователя нашего сайта!"); if (!empty($email)) { \CUserEx::capacityAdd($USER_ID, 1); // за мэйл +1ГБ $fields = array(); $fields["EXTERNAL_AUTH_ID"] = ""; $fields["PASSWORD"] = $password; $fields["CONFIRM_PASSWORD"] = $password; $сuser = new \CUser(); $сuser->Update($USER_ID, $fields); $arEventFields = array("USER_NAME" => trim($userProfile["firstName"] . " " . $userProfile["lastName"]), "PASSWORD" => $password, "EMAIL" => $email); CEvent::Send("USER_PASS_CHANGED_PROFILE", SITE_ID, $arEventFields); $USER->Login($email, $password, 'N'); } //Бонус за регистрацию \CUserEx::capacityAdd($USER_ID, BONUS_FOR_REGISTRATION); self::connectToUser($USER_ID, $providerName, $userProfile); } else { echo $cUser->LAST_ERROR; } COption::SetOptionString("main", "captcha_registration", "Y"); return $USER_ID; }
if ($registerNewUser === true) { $userPassword = uniqid(); $newUser = new CUser; $arFields = array( "NAME" => ICrmOrderActions::fromJSON($order['customer']['firstName']), "LAST_NAME" => ICrmOrderActions::fromJSON($order['customer']['lastName']), "EMAIL" => $order['customer']['email'], "LOGIN" => $login, "LID" => "ru", "ACTIVE" => "Y", "PASSWORD" => $userPassword, "CONFIRM_PASSWORD" => $userPassword ); $registeredUserID = $newUser->Add($arFields); if ($registeredUserID === false) { ICrmOrderActions::eventLog('ICrmOrderActions::orderHistory', 'CUser::Register', 'Error register user'); die(); } try { $api->customerFixExternalIds(array(array('id' => $order['customer']['id'], 'externalId' => $registeredUserID))); } catch (\IntaroCrm\Exception\CurlException $e) { ICrmOrderActions::eventLog( 'ICrmOrderActions::orderHistory', 'RetailCrm\RestApi::customerFixExternalIds::CurlException', $e->getCode() . ': ' . $e->getMessage() ); die(); }
protected function execute(InputInterface $input, OutputInterface $output) { $file = $input->getArgument('file'); if (!file_exists($file) || !($fh = fopen($file, 'r'))) { $output->writeln('<error>Can\'t read data from file</error>'); return null; } //выбираем группу $group = 0; $res = \CGroup::GetList($by = '', $order = '', ['STRING_ID' => 'totaldict_chairman_experts']); if ($ob = $res->Fetch()) { $group = $ob['ID']; } //выбираем список статусов $statusList = []; $rsData = \CUserTypeEntity::GetList([], ['ENTITY_ID' => 'USER', 'FIELD_NAME' => 'UF_TD_ORG_STATUS']); if ($fob = $rsData->GetNext()) { $ar = ['newby' => 'НОВИЧКИ', 'pretty_boy' => 'КРАСАВЧИКИ', 'catching' => 'ДОГОНЯЮЩИЕ', 'redneck' => 'ДЕРЕВНИ']; $res = \CUserFieldEnum::GetList([], ['USER_FIELD_ID' => $fob['ID']]); while ($ob = $res->Fetch()) { if (empty($ar[$ob['XML_ID']])) { continue; } $statusList[$ar[$ob['XML_ID']]] = $ob['ID']; } } //список стран для заполнения $countries = GetCountryArray(); $countries = array_combine($countries['reference'], $countries['reference_id']); $currentStatus = null; while (($data = fgetcsv($fh)) !== false) { //если заполнена только вторая колонка то это статус if (empty($data[1]) && !empty($data[0]) && isset($statusList[$data[0]])) { $currentStatus = $statusList[$data[1]]; continue; } //массив для загрузки данных пользователя $arLoad = ['ACTIVE' => 'Y', 'PERSONAL_COUNTRY' => isset($countries['Россия']) ? $countries['Россия'] : null, 'PERSONAL_CITY' => $data[0], 'LAST_NAME' => $data[1], 'WORK_POSITION' => $data[3], 'PERSONAL_MOBILE' => $data[4], 'PERSONAL_STREET' => $data[6], 'PERSONAL_WWW' => $data[8], 'PASSWORD' => 'Test,user,passwr0d', 'CONFIRM_PASSWORD' => 'Test,user,passwr0d', 'UF_TD_ORG_STATUS' => $currentStatus, 'GROUP_ID' => [2, $group]]; //пробуем разбить email if (strpos($data[5], ',')) { $explode = array_map('trim', explode(',', $data[5])); $arLoad['EMAIL'] = $explode[0]; unset($explode[0]); $arLoad['PERSONAL_NOTES'] = implode(', ', $explode); } elseif (strpos($data[5], 'и')) { $explode = array_map('trim', explode('и', $data[5])); $arLoad['EMAIL'] = $explode[0]; unset($explode[0]); $arLoad['PERSONAL_NOTES'] = implode(', ', $explode); } elseif (strpos($data[5], ';')) { $explode = array_map('trim', explode(';', $data[5])); $arLoad['EMAIL'] = $explode[0]; unset($explode[0]); $arLoad['PERSONAL_NOTES'] = implode(', ', $explode); } elseif (strpos($data[5], ' ')) { $explode = array_map('trim', explode(' ', $data[5])); $arLoad['EMAIL'] = $explode[0]; unset($explode[0]); $arLoad['PERSONAL_NOTES'] = implode(', ', $explode); } else { $arLoad['EMAIL'] = trim($data[5]); } //пробуем разбить фамилию и имя if (strpos($data[2], ' ')) { $explode = explode(' ', trim($data[2])); $arLoad['NAME'] = $explode[0]; $arLoad['SECOND_NAME'] = $explode[1]; } else { $arLoad['NAME'] = trim($data[2]); } //пробуем завести дату в базу if (($time = strtotime($data[7])) !== false) { $arLoad['PERSONAL_BIRTHDAY'] = ConvertTimeStamp($time, 'SHORT', 'ru'); } //пробуем найти страну, чтобы привязать пользователя к городу $country = \bxpimple\Locator::$item->get('countryFinder')->mergeFilterWith(['NAME' => 'Россия'])->one(); if ($country) { //если нашли страну, то пробуем найти и город $city = \bxpimple\Locator::$item->get('cityFinder')->mergeFilterWith(['NAME' => trim($data[0]), 'PROPERTY_TOTALDICT_GEO_CITIES_COUNTRY' => $country->getAttribute('ID')->getValue()])->one(); if ($city) { //если нашли город, то привязываем пользователя $arLoad['UF_TD_CITY_IB'] = $city->getAttribute('ID')->getValue(); } } //задаем логин, по умолчанию используем email $arLoad['LOGIN'] = $arLoad['EMAIL']; //пробуем найти пользователя по его логину $user = new \CUser(); $res = \CUser::GetList($by = '', $order = '', ['LOGIN_EQUAL' => $arLoad['LOGIN']]); if ($ob = $res->Fetch()) { $arGroups = \CUser::GetUserGroup($ob['ID']); if (is_array($arGroups)) { $arLoad['GROUP_ID'] = array_unique(array_merge($arLoad['GROUP_ID'], $arGroups)); } //обновляем if (!$user->Update($ob['ID'], $arLoad)) { $output->writeln('<error>User ' . $arLoad['LOGIN'] . ' error: ' . $user->LAST_ERROR . '</error>'); } else { $output->writeln('<info>User ' . $arLoad['LOGIN'] . ' updated</info>'); } } else { //создаем нового if (!$user->Add($arLoad)) { $output->writeln('<error>User ' . $arLoad['LOGIN'] . ' error: ' . $user->LAST_ERROR . '</error>'); } else { $output->writeln('<info>New user ' . $arLoad['LOGIN'] . ' added</info>'); } } } fclose($fh); }
public static function RegisterUser($userData, $SITE_ID = SITE_ID) { $bExtranetUser = !isset($userData['UF_DEPARTMENT']) || empty($userData['UF_DEPARTMENT']); $strPassword = self::GeneratePassword($SITE_ID, $bExtranetUser); $arUser = array("LOGIN" => $userData["EMAIL"], "EMAIL" => $userData["EMAIL"], "UF_DEPARTMENT" => intval($userData["UF_DEPARTMENT"]) > 0 ? array($userData["UF_DEPARTMENT"]) : array(0), "PASSWORD" => $strPassword, "CONFIRM_CODE" => $userData['CONFIRM_CODE'], "GROUP_ID" => $userData['GROUP_ID']); $obUser = new CUser(); $res = $obUser->Add($arUser); return $res ? $res : preg_split("/<br>/", $obUser->LAST_ERROR); }
function ImportUser() { if ($this->isErrorOccured) { return false; } $this->errorMessage = ""; $defaultEmail = $this->GetDefaultEmail(); if (!($arUser = $this->csv->FetchDelimiter())) { return false; } $arFields = array(); foreach ($this->arHeader as $index => $key) { if (($f = trim($arUser[$index])) != '') { $arFields[$key] = $f; } } if (!array_key_exists("NAME", $arFields) || strlen($arFields["NAME"]) < 1) { $this->errorMessage = GetMessage("CSV_IMPORT_NO_NAME") . " (" . implode(", ", $arFields) . ").<br>"; return true; } if (!array_key_exists("LAST_NAME", $arFields) || strlen($arFields["LAST_NAME"]) < 1) { $this->errorMessage = GetMessage("CSV_IMPORT_NO_LASTNAME") . " (" . implode(", ", $arFields) . ").<br>"; return true; } if (!array_key_exists("PASSWORD", $arFields) || strlen($arFields["PASSWORD"]) < 1) { $arFields["PASSWORD"] = $this->GenerateUserPassword(6); } $arFields["CONFIRM_PASSWORD"] = $arFields["PASSWORD"]; if (!array_key_exists("EMAIL", $arFields) || strlen($arFields["EMAIL"]) < 3 || !check_email($arFields["EMAIL"])) { $arFields["EMAIL"] = $defaultEmail; } if (!array_key_exists("LOGIN", $arFields)) { $arFields["LOGIN"] = ToLower($arFields["NAME"] . " " . $arFields["LAST_NAME"]); } if (array_key_exists("PERSONAL_BIRTHDAY", $arFields) && (strlen($arFields["PERSONAL_BIRTHDAY"]) < 2 || !CheckDateTime($arFields["PERSONAL_BIRTHDAY"]))) { unset($arFields["PERSONAL_BIRTHDAY"]); } if (array_key_exists("DATE_REGISTER", $arFields) && (strlen($arFields["DATE_REGISTER"]) < 2 || !CheckDateTime($arFields["DATE_REGISTER"]))) { unset($arFields["DATE_REGISTER"]); } if ($this->externalAuthID !== null && !array_key_exists("EXTERNAL_AUTH_ID", $arFields)) { $arFields["EXTERNAL_AUTH_ID"] = $this->externalAuthID; } if (!array_key_exists("XML_ID", $arFields)) { $arFields["XML_ID"] = md5(uniqid(rand(), true)); } if (!array_key_exists("CHECKWORD", $arFields) || strlen($arFields["CHECKWORD"]) <= 0) { $arFields["CHECKWORD"] = md5(CMain::GetServerUniqID() . uniqid()); } if ($this->imageFilePath !== null) { if (array_key_exists("PERSONAL_PHOTO", $arFields) && strlen($arFields["PERSONAL_PHOTO"]) > 0) { $arFile = CFile::MakeFileArray($this->imageFilePath . "/" . $arFields["PERSONAL_PHOTO"]); $arFile["MODULE_ID"] = "main"; $arFields["PERSONAL_PHOTO"] = $arFile; } if (array_key_exists("WORK_LOGO", $arFields) && strlen($arFields["WORK_LOGO"]) > 0) { $arFile = CFile::MakeFileArray($this->imageFilePath . "/" . $arFields["WORK_LOGO"]); $arFile["MODULE_ID"] = "main"; $arFields["WORK_LOGO"] = $arFile; } } else { unset($arFields["PERSONAL_PHOTO"]); unset($arFields["WORK_LOGO"]); } $arFields["GROUP_ID"] = $this->userGroups; $user = new CUser(); $userID = (int) $user->Add($arFields); if ($userID <= 0) { if ($user->LAST_ERROR != '') { $this->errorMessage = $arFields["NAME"] . " " . $arFields["LAST_NAME"] . ": " . $user->LAST_ERROR; } } if ($userID <= 0 && $this->ignoreDuplicate === false) { $postFix = 2; $login = $arFields["LOGIN"]; do { $rsUser = CUser::GetByLogin($arFields["LOGIN"]); if (!$rsUser->Fetch()) { break; } $arFields["LOGIN"] = $login . $postFix; $userID = (int) $user->Add($arFields); if ($userID > 1) { break; } $postFix++; } while (true); } if ($userID > 0) { if ($this->attachIBlockID > 0) { $iblockSectionID = $this->__GetIBlockSectionID($arFields); if ($iblockSectionID > 0) { if (!$this->isUserPropertyCreate) { $this->isUserPropertyCreate = $this->__CreateUserProperty(); } $arUpdate = array(); $arUpdate[$this->userPropertyName] = array($iblockSectionID); $user->Update($userID, $arUpdate); } } if ($this->callback !== null) { call_user_func_array($this->callback, array(&$arFields, &$userID)); } } return true; }
/** * функция перед добавлениемредактированием элемента в инфоблок * @param $arFields поля элемента ифоблока * для страницы Объявления * создает нового пользователя * отправляет логини и пароль по почтовому шаблону * добавляет цену и количество в Торговый каталог */ function OnBeforeIBlockElementAddHandler(&$arFields) { if ( (( ($arFields["IBLOCK_ID"] == 2) || ($arFields["IBLOCK_ID"] == 15) || ($arFields["IBLOCK_ID"] == 14) || ($arFields["IBLOCK_ID"] == 16) || ($arFields["IBLOCK_ID"] == 19) ) && (strstr($_SERVER['REQUEST_URI'],'/personal/moy-magazin/'))) && ((!$_REQUEST['active'])&&(!$_REQUEST['deactive'])) || ( ($arFields["IBLOCK_ID"] == 16) && (strstr($_SERVER['REQUEST_URI'],'/obyavleniya/add-ads/'))) && ((!$_REQUEST['active'])&&(!$_REQUEST['deactive'])) ) { $rsUser = CUser::GetByID(CUser::GetID()); $arUser = $rsUser->Fetch(); $ID=$arUser['ID']; $arSelect = Array("ID", "IBLOCK_ID", "NAME","PROPERTY_*"); $arFilter = Array("IBLOCK_ID"=>9, "ACTIVE"=>"Y","PROPERTY_PARTNER"=>intval($ID)); $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>1), $arSelect); while($ob = $res->GetNextElement()){ $arFields_partner = $ob->GetFields(); $id_block_partner=$arFields_partner['ID']; } if($id_block_partner){ switch($arFields["IBLOCK_ID"]){ case 2: $arFields["PROPERTY_VALUES"][59]["VALUE"]=$id_block_partner; break; case 14: $arFields["PROPERTY_VALUES"][66]["VALUE"]=$id_block_partner; break; case 15: $arFields["PROPERTY_VALUES"][71]["VALUE"]=$id_block_partner; break; case 16: $arFields["PROPERTY_VALUES"][104]["VALUE"]=$id_block_partner; break; case 19: $arFields["PROPERTY_VALUES"][105]["VALUE"]=$id_block_partner; break; } } } if ( ( (($arFields["IBLOCK_ID"] == 16)) ) && CModule::IncludeModule("catalog") && CModule::IncludeModule("sale") && ((strstr($_SERVER['REQUEST_URI'],'/obyavleniya/add-ads/'))) && ((!$_REQUEST['active'])&&(!$_REQUEST['deactive'])) ) { if(($arFields['PROPERTY_VALUES'][81]==7)||($arFields['PROPERTY_VALUES'][81]=="Y")){ //$arFields['PROPERTY_VALUES'][81]=40; //$_SESSION['field_after2']="первый"; }elseif($arFields['PROPERTY_VALUES'][81]==9){ //$_SESSION['field_after1']="второй"; //$arFields['PROPERTY_VALUES'][81]=46; } $arSelect16 = Array("ID", "IBLOCK_ID", "NAME","PROPERTY_*"); $arFilter16 = Array("IBLOCK_ID"=>18,"ACTIVE"=>"Y","CODE "=>"standart-ads"); $res16 = CIBlockElement::GetList(Array(), $arFilter16, false, Array("nPageSize"=>1), $arSelect16); while($ob16 = $res16->GetNextElement()){ $arProps16 = $ob16->GetProperties(); $interval_day_ads=$arProps16['INTERVAL_ADS']['VALUE']; } if($interval_day_ads){ $arFields['ACTIVE_TO']=date("d.m.Y H:i:s",mktime(0,0,0,date("m"),date("d")+$interval_day_ads,date("Y"))); } $_SESSION['field_after3']=$arFields; if(!CUser::IsAuthorized()){ $chars="qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP"; $max=10; $size=StrLen($chars)-1; $password=null; while($max--) $password.=$chars[rand(0,$size)]; $user = new CUser; $arFieldsUser = Array( "NAME" => $arFields["PROPERTY_VALUES"][89], "EMAIL" => $arFields["PROPERTY_VALUES"][88], "LOGIN" => $arFields["PROPERTY_VALUES"][88], "PERSONAL_MOBILE" => $arFields["PROPERTY_VALUES"][91], "LID" => "ru", "ACTIVE" => "Y", "GROUP_ID" => array(3,4,5), "PASSWORD" => $password, "CONFIRM_PASSWORD" => $password ); $ID = $user->Add($arFieldsUser); } if(($ID)||(CUser::IsAuthorized())){ if(CUser::IsAuthorized()){ $rsUser = CUser::GetByID(CUser::GetID()); $arUser = $rsUser->Fetch(); $ID=$arUser['ID']; } $arFields["CREATED_BY"]=$ID; $arFields["PROPERTY_VALUES"][83]=$ID; $_SESSION['NEW_USER_ID']=$ID; } if($ID){ if (strlen($arFields["NAME"]) > 0 && strlen($arFields["CODE"]) <= 0) { $arParams = array( "max_len" => "100", // обрезаем символьный код до 100 символов "change_case" => "L", // приводим к нижнему регистру "replace_space" => "-", // меняем пробелы на тире "replace_other" => "-", // меняем плохие символы на тире "delete_repeat_replace" => "true", // удаляем повторяющиеся тире "use_google" => "false", // отключаем использование google ); $arFields["CODE"] = Cutil::translit($arFields["NAME"], "ru", $arParams); } unset($_SESSION['VIP_ID']); if(($arFields["PROPERTY_VALUES"][81][0]=='40')){ $_SESSION['VIP_ID']=40; } if(($arFields["PROPERTY_VALUES"][81][0]=='46')){ $_SESSION['VIP_ID']=46; } if((!$_REQUEST['CODE'])&&(!CUser::IsAuthorized())){ $arEventFields = Array( "NAME" => $arFields["PROPERTY_VALUES"][89], "EMAIL" => $arFields["PROPERTY_VALUES"][88], "LOGIN" => $arFields["PROPERTY_VALUES"][88], "PERSONAL_MOBILE" => $arFields["PROPERTY_VALUES"][91], "PASSWORD" => $password, ); $event = new CEvent; $event->SendImmediate("MAIN_USER_INFOTEHNOLOG", SITE_ID, $arEventFields); }else{ } } } if (($arFields["IBLOCK_ID"] == 11) &&($arFields["ACTIVE"] == "Y")){ $_SESSION['active_block'] = $arFields; $params = Array( "max_len" => "100", // обрезает символьный код до 100 символов "change_case" => "L", // буквы преобразуются к нижнему регистру "replace_space" => "_", // меняем пробелы на нижнее подчеркивание "replace_other" => "_", // меняем левые символы на нижнее подчеркивание "delete_repeat_replace" => "true", // удаляем повторяющиеся нижние подчеркивания "use_google" => "false", // отключаем использование google ); $el = new CIBlockElement; $PROP = array(); $PROP[108] = $arProps['F_EMAIL']['VALUE']; $PROP[60] = $arProps['F_TELEPHONE']['VALUE']; $PROP[100] = $arUserLogin['ID']; $arElem= Array( "CREATED_BY"=>$arUserLogin['ID'], "IBLOCK_ID" => 9, "NAME" => $arProps['F_NAMECOMPANY']['VALUE'], "CODE" => CUtil::translit($arProps['F_NAMECOMPANY']['VALUE'], "ru" , $params), "ACTIVE" => "Y", "PROPERTY_VALUES"=> $PROP, ); if($PRODUCT_ID = $el->Add($arElem)) { if($new_partner){ $lg_psswrd="Ваши регистрационные данные: <br> Логин:".$arProps['F_EMAIL']['VALUE']."<br> Пароль:".$password."<br>"; }else{ $lg_psswrd="Ваш логин и пароль были высланы ранее при регистрации данного аккаунта"; } } } }
public function _getTestUser() { global $USER; $arFields = array('NAME' => GetMessage('OBX_MARKET_TEST_USER_1_FNAME'), 'LAST_NAME' => GetMessage('OBX_MARKET_TEST_USER_1_LNAME'), 'EMAIL' => '*****@*****.**', 'LID' => 'ru', 'ACTIVE' => 'Y', 'GROUP_ID' => array(1, 2), 'PASSWORD' => '123456', 'CONFIRM_PASSWORD' => '123456'); $rsUser1 = \CUser::GetByLogin('__test_basket_user_1'); $rsUser2 = \CUser::GetByLogin('__test_basket_user_2'); if ($arUser1 = $rsUser1->Fetch()) { self::$_arTestUser = $arUser1; } else { $user = new \CUser(); $arFields['LOGIN'] = '******'; $ID = $user->Add($arFields); $this->assertGreaterThan(0, $ID, 'Error: can\'t create test user 1. text: ' . $user->LAST_ERROR); $rsUser1 = \CUser::GetByLogin('__test_basket_user_1'); if ($arUser1 = $rsUser1->Fetch()) { $this->assertEquals('__test_basket_user_1', $arUser1['LOGIN']); self::$_arTestUser = $arUser1; } else { $this->fail('Error: can\'t get test user 1'); } } if ($arUser2 = $rsUser2->Fetch()) { self::$_arSomeOtherTestUser = $arUser2; } else { $user = new \CUser(); $arFields['LOGIN'] = '******'; $ID = $user->Add($arFields); $this->assertGreaterThan(0, $ID, 'Error: can\'t create test user 2. text: ' . $user->LAST_ERROR); $rsUser1 = \CUser::GetByLogin('__test_basket_user_2'); if ($arUser2 = $rsUser1->Fetch()) { $this->assertEquals('__test_basket_user_2', $arUser2['LOGIN']); self::$_arSomeOtherTestUser = $arUser2; } else { $this->fail('Error: can\'t get test user 2'); } } }
function SetUser($arLdapUser, $bAddNew = true) { global $USER; $isHead = false; $bUSERGen = false; if (!is_object($USER)) { $USER = new CUser(); $bUSERGen = true; } // process previously saved department data if (IsModuleInstalled('intranet') && is_array($arLdapUser['UF_DEPARTMENT'])) { $isHead = $arLdapUser['UF_DEPARTMENT']['IS_HEAD']; // replace temporary value with a real one $arLdapUser['UF_DEPARTMENT'] = array($arLdapUser['UF_DEPARTMENT']['ID']); } if (isset($arLdapUser["ID"])) { $ID = intval($arLdapUser["ID"]); self::PrepareUserPhoto($ID, $arLdapUser); $USER->Update($ID, $arLdapUser); } else { $ldapUserID = 0; if (isset($_REQUEST["ldap_user_id"]) && strlen($_REQUEST["ldap_user_id"]) == 32) { $dbUser = CUser::GetList($O = "", $B = "", array("XML_ID" => $_REQUEST["ldap_user_id"], 'EXTERNAL_AUTH_ID' => $arLdapUser['EXTERNAL_AUTH_ID'])); if ($arUser = $dbUser->Fetch()) { if ($arUser["XML_ID"]) { $ldapUserID = $arUser["ID"]; } } } $res = CUser::GetList($O = "", $B = "", array('LOGIN_EQUAL_EXACT' => $arLdapUser['LOGIN'], 'EXTERNAL_AUTH_ID' => $arLdapUser['EXTERNAL_AUTH_ID'])); $arLdapUser['PASSWORD'] = uniqid(rand(), true); if (!($ar_res = $res->Fetch()) && $ldapUserID < 1) { if ($bAddNew) { if (strlen($arLdapUser["EMAIL"]) <= 0) { $arLdapUser["EMAIL"] = COption::GetOptionString("ldap", "default_email", 'no@email'); } $ID = $USER->Add($arLdapUser); } else { $ID = 0; } } else { $ID = $ldapUserID > 1 ? $ldapUserID : $ar_res['ID']; self::PrepareUserPhoto($ID, $arLdapUser); $USER->Update($ID, $arLdapUser); } $ID = intval($ID); } // - add this user to groups if ($ID > 0) { // - set as head of department if (IsModuleInstalled('intranet') && $isHead) { CLdapUtil::SetDepartmentHead($ID, $arLdapUser['UF_DEPARTMENT'][0]); } // For each group finding all superior ones $arUserLdapGroups = array(); $arLdapGroups = $this->GetGroupListArray(); $this->GetAllMemberOf($arLdapUser['LDAP_GROUPS'], $arUserLdapGroups, $arLdapGroups); $arGroupMaps = $this->GetGroupMaps(); $arUserBitrixGroups = $USER->GetUserGroup($ID); $arUserBitrixGroupsNew = array(); $prevGroups = $arUserBitrixGroups; sort($prevGroups); foreach ($arGroupMaps as $fromLdapGroup => $arToUserGroups) { foreach ($arToUserGroups as $toUserGroup) { if (($k = array_search($toUserGroup, $arUserBitrixGroups)) !== false) { unset($arUserBitrixGroups[$k]); } // If there is such a group among user's if (in_array($fromLdapGroup, $arUserLdapGroups)) { $arUserBitrixGroupsNew[] = $toUserGroup; } } } $arUserBitrixGroups = array_merge($arUserBitrixGroups, array_unique($arUserBitrixGroupsNew)); sort($arUserBitrixGroups); if ($arUserBitrixGroups != $prevGroups) { $USER->SetUserGroup($ID, $arUserBitrixGroups); } } if ($bUSERGen) { unset($USER); } return $ID; }
if ($i == 0) { $arHead = $data; } else { $arValue[] = $data; } $i++; } fclose($handle); } foreach ($arValue as $keyuser => $user) { foreach ($user as $keyvalue => $value) { foreach ($arHead as $keyprop => $prop) { if ($keyprop == $keyvalue) { $arUser[$prop] = $value; } } } $arUsers[] = $arUser; } foreach ($arUsers as $arUser) { $user = new CUser(); $NAME = $arUser["NAME"] . " " . $arUser["LAST_NAME"]; $arFields = array("NAME" => trim($NAME), "LAST_NAME" => "", "EMAIL" => trim($arUser["EMAIL"]), "LOGIN" => trim($arUser["EMAIL"]), "LID" => "s1", "ACTIVE" => "N", "GROUP_ID" => array(5), "PASSWORD" => trim($arUser["EMAIL"]), "CONFIRM_PASSWORD" => trim($arUser["EMAIL"])); $ID = $user->Add($arFields); if (intval($ID) > 0) { echo "Пользователь: " . $arUser["EMAIL"] . " успешно добавлен<br/>"; } else { echo $user->LAST_ERROR . "<br/>"; } } }
//constant part of the subscriber $subscr = new CSubscription(); $arFields = array("ACTIVE" => "Y", "FORMAT" => $FORMAT != "html" ? "text" : "html", "CONFIRMED" => $CONFIRMED != "Y" ? "N" : "Y", "SEND_CONFIRM" => $SEND_CONFIRM != "Y" ? "N" : "Y", "ALL_SITES" => "Y", "RUB_ID" => $RUB_ID); //constant part of the user if ($USER_TYPE == "U") { $user = new CUser(); } $nError = 0; $nSuccess = 0; foreach ($aEmail as $email => $temp) { $USER_ID = false; if ($USER_TYPE == "U") { //add user $sPassw = randString(6); $arUserFields = array("LOGIN" => randString(50), "CHECKWORD" => randString(8), "PASSWORD" => $sPassw, "CONFIRM_PASSWORD" => $sPassw, "EMAIL" => $email, "ACTIVE" => "Y", "GROUP_ID" => $USER->IsAdmin() ? $USER_GROUP_ID : array(COption::GetOptionString("main", "new_user_registration_def_group"))); if ($USER_ID = $user->Add($arUserFields)) { $user->Update($USER_ID, array("LOGIN" => "user" . $USER_ID)); //send registration message if ($SEND_REG_INFO == "Y") { $user->SendUserInfo($USER_ID, $LID, GetMessage("subscr_send_info")); } } else { $arError[] = array("id" => "", "text" => $email . ": " . $user->LAST_ERROR); $nError++; continue; } } //$USER_TYPE == "U" //add subscription $arFields["USER_ID"] = $USER_ID; $arFields["EMAIL"] = $email;
public static function Set($Data) { global $USER; if (!CModule::IncludeModule("iblock")) { return false; } $Token = ""; $User = new CUser(); $NewElement = new CIBlockElement(); $Id = 0; $Password = date("His"); if (18 <= date("Y") - date("Y", strtotime($Data["PERSONAL_BIRTHDAY"]))) { if ($Data["INFO"] == 1) { $Id = $NewElement->Add(array("NAME" => date("d.m.Y H:i:s"), "IBLOCK_ID" => "19", "ACTIVE" => "Y", "PROPERTY_VALUES" => array("120" => $Data["UF_FB"], "121" => $Data["UF_G_PLUS"], "122" => $Data["UF_VK"], "117" => $Data["PERSONAL_BIRTHDAY"], "114" => $Data["NAME"], "118" => $Data["UF_BRAND_1"], "119" => $Data["UF_BRAND_2"], "116" => $Data["EMAIL"], "115" => $Data["LAST_NAME"], "123" => $USER->GetID(), "124" => $Data["PERSONAL_MOBILE"], "125" => $Data["SOURSE"]))); if (!intval($Id)) { self::$TextError = $User->LAST_ERROR; } return intval($Id) > 0 ? true : false; } $Fields = array("NAME" => $Data["NAME"], "LAST_NAME" => $Data["LAST_NAME"], "EMAIL" => $Data["EMAIL"], "LOGIN" => $Data["EMAIL"], "LID" => "ru", "ACTIVE" => "Y", "PERSONAL_BIRTHDAY" => $Data["PERSONAL_BIRTHDAY"], "UF_IAGREE" => $Data["UF_IAGREE"], "GROUP_ID" => array(3, 4, 5), "PASSWORD" => $Password, "CONFIRM_PASSWORD" => $Password, "PERSONAL_MOBILE" => $Data["PERSONAL_MOBILE"], "UF_YOU_HAVE_18" => $Data["UF_YOU_HAVE_18"], "UF_DO_YOU_SMOKE" => $Data["UF_DO_YOU_SMOKE"], "UF_GP_PROFILE" => $Data["UF_G_PLUS"], "UF_FB_PROFILE" => $Data["UF_FB"], "UF_VK_PROFILE" => $Data["UF_VK"], "UF_LATITUDE" => $Data["UF_LATITUDE"], "UF_LONGITUDE" => $Data["UF_LONGITUDE"], "UF_USER_PARENT" => $USER->GetID(), "UF_BRAND_1" => $Data["UF_BRAND_1"], "UF_BRAND_2" => $Data["UF_BRAND_2"], "UF_PASSWORD" => $Password, "UF_SOURSE" => $Data["SOURSE"], "UF_PRIVATE_MYPAGE" => 1, "UF_PRIVATE_MYFRIENDS" => 5, "UF_PRIVATE_MYGROUPS" => 9, "UF_GROUPS" => array(1)); $Id = $User->Add($Fields); if (intval($Id)) { $el_log = new CIBlockElement(); $PROP_log = array(); $PROP_log["ID"] = $id; $PROP_log["PERSONAL_BIRTHDAY"] = $Fields["PERSONAL_BIRTHDAY"]; $PROP_log["UF_IAGREE"] = $Fields["UF_IAGREE"]; $PROP_log["UF_YOU_HAVE_18"] = $Fields["UF_YOU_HAVE_18"]; $PROP_log["UF_DO_YOU_SMOKE"] = $Fields["UF_DO_YOU_SMOKE"]; $PROP_log["TYPE"] = "set_user"; $arLoadProductArray_log = array("IBLOCK_ID" => 26, "PROPERTY_VALUES" => $PROP_log, "NAME" => $id); $el_log->Add($arLoadProductArray_log); $Token = sha1($Id . "" . date("d.m.Y H:i:s")); $Fields["UF_TOKEN"] = $Token; $User->Update($Id, $Fields); self::$TextError = "Пользователь успешно добавлен."; $eventFields = array("USER_ID" => $Id, "LOGIN" => $Data["EMAIL"], "EMAIL" => $Data["EMAIL"], "NAME" => $Data["NAME"], "LAST_NAME" => $Data["LAST_NAME"], "PASSWORD" => $Password, "TOKEN" => $Token); $userFields = $USER->GetByID($USER->GetID())->Fetch(); if ($Fields["UF_USER_PARENT"] == 29808 || $Fields["UF_USER_PARENT"] == 7813 || $Fields["UF_USER_PARENT"] == 43546 || $Fields["UF_USER_PARENT"] == 43562 || $Fields["UF_USER_PARENT"] == 43563 || $Fields["UF_USER_PARENT"] == 43547 || $Fields["UF_USER_PARENT"] == 43575 || $Fields["UF_USER_PARENT"] == 43731 || $Fields["UF_USER_PARENT"] == 43735 || $Fields["UF_USER_PARENT"] == 43551 || $Fields["UF_USER_PARENT"] == 43553 || $Fields["UF_USER_PARENT"] == 32177 || $Fields["UF_USER_PARENT"] == 32175 || $Fields["UF_USER_PARENT"] == 32176 || $Fields["UF_USER_PARENT"] == 32169 || $Fields["UF_USER_PARENT"] == 32173 || $Fields["UF_USER_PARENT"] == 32172 || $Fields["UF_USER_PARENT"] == 32174 || $Fields["UF_USER_PARENT"] == 32170) { CEvent::Send("registration", "s1", $eventFields); } elseif ($userFields["PERSONAL_CITY"] == "Екатеринбург") { CEvent::Send("NEW_USER", "s1", $eventFields); } else { CEvent::Send("NEW_USER_NEW", "s1", $eventFields); } } else { self::$TextError = $User->LAST_ERROR; } } return intval($Id) > 0 ? true : false; }
public function AddUsers() { $iStarttime = time(); require $this->sDir . 'users.php'; /** * @var array $arUsers */ if (self::IsFull()) { foreach ($arUsers as $arUserId => $arUser) { if (time() - $iStarttime > $this->iMax_exec_time) { self::ArrayToFile($arUsers, 'arUsers', $this->sDir . 'users.php'); return true; } $gender = 'F'; if ($arUser['Gender'] == 0) { $gender = 'M'; } $master = ''; if (isset($arUser['MasterSpec']) && $arUser['MasterSpec'] != '') { $master = $arUser['MasterSpec']; } if (htmlspecialchars($arUser['Email']) != '') { $sEmail = $sLogin = $arUser['Email']; } else { $sLogin = substr(self::Translit($arUser['UserName']), 0, 30); $sEmail = $sLogin . '@katemagic.ru'; } $arFields = array("LOGIN" => $sLogin, "NAME" => $arUser["UserName"], "LAST_NAME" => $arUser["FamilyId"], "EMAIL" => $sEmail, "PERSONAL_PHONE" => $arUser["PhoneNumber"], "PERSONAL_GENDER" => $gender, "PERSONAL_PROFESSION" => $master, "ACTIVE" => "Y", "PERSONAL_BIRTHDAY" => $arUser["BirthDate"], "DATE_REGISTER" => $arUser['RegDate'], "UF_USER_ID" => $arUser['id']); $arParams["SELECT"] = array("UF_*"); $rsUsers = new CUser(); $obRes = $rsUsers->GetList($by = "ID", $order = "desc", array("UF_USER_ID" => $arUser['id']), $arParams); if ($arResult = $obRes->fetch()) { if ($arResult["UF_USER_ID"]) { $res = $rsUsers->Update($arResult['ID'], $arFields); if (intval($res) > 0) { unset($arUsers[$arUserId]); } else { file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/upload/1c_catalog/error_log.txt', print_r($arFields, TRUE) . PHP_EOL, FILE_APPEND); file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/upload/1c_catalog/error_log.txt', $rsUsers->LAST_ERROR . PHP_EOL, FILE_APPEND); $this->LAST_ERROR = $rsUsers->LAST_ERROR . " " . serialize($arUser); //return false; } } } else { $sPassword = randString(10); $arFields["GROUP_ID"] = array(5); $arFields["PASSWORD"] = $arFields["CONFIRM_PASSWORD"] = $sPassword; $res = $rsUsers->Add($arFields); if (intval($res) > 0) { unset($arUsers[$arUserId]); } else { file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/upload/1c_catalog/error_log.txt', print_r($arFields, TRUE) . PHP_EOL, FILE_APPEND); file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/upload/1c_catalog/error_log.txt', $rsUsers->LAST_ERROR . PHP_EOL, FILE_APPEND); $this->LAST_ERROR = $rsUsers->LAST_ERROR; //return false; } } } } else { echo "update users"; foreach ($arUsers as $arUserId => $arUser) { if (time() - $iStarttime > $this->iMax_exec_time) { self::ArrayToFile($arUsers, 'arUsers', $this->sDir . 'users.php'); return true; } $arFields = array(); if (isset($arUser['UserName']) && $arUser['UserName'] != '') { $arFields['NAME'] = $arUser['UserName']; } if (isset($arUser['FamilyId']) && $arUser['FamilyId'] != '') { $arFields['LAST_NAME'] = $arUser['FamilyId']; } if (isset($arUser['Email']) && $arUser['Email'] != '') { $arFields['EMAIL'] = $arUser['Email']; } if (isset($arUser['PhoneNumber']) && $arUser['PhoneNumber'] != '') { $arFields['PERSONAL_PHONE'] = $arUser['PhoneNumber']; } if (isset($arUser['Gender']) && $arUser['Gender'] != '') { $arFields['PERSONAL_GENDER'] = $arUser['Gender']; } if (isset($arUser['MasterSpec']) && $arUser['MasterSpec'] != '') { $arFields['PERSONAL_PROFESSION'] = $arUser['MasterSpec']; } if (isset($arUser['BirthDate']) && $arUser['BirthDate'] != '') { $arFields['PERSONAL_BIRTHDAY'] = $arUser['BirthDate']; } if (isset($arUser['RegDate']) && $arUser['RegDate'] != '') { $arFields['DATE_REGISTER'] = $arUser['RegDate']; } if (isset($arUser['id']) && $arUser['id'] != '') { $arFields['UF_USER_ID'] = $arUser['id']; } $arParams["SELECT"] = array("UF_*"); $rsUsers = new CUser(); $obRes = $rsUsers->GetList($a, $b, array("UF_USER_ID" => $arUser['id']), $arParams); if ($arResult = $obRes->fetch()) { if ($arResult["UF_USER_ID"]) { $res = $rsUsers->Update($arResult['ID'], $arFields); if (intval($res) > 0) { unset($arUsers[$arUserId]); } else { $this->LAST_ERROR = $rsUsers->LAST_ERROR . " " . serialize($arUser); return false; } } } } } self::ArrayToFile($arUsers, 'arUsers', $this->sDir . 'users.php'); $this->step = $_SESSION['sStep'] = 'addCatStructs'; return true; }
COption::SetOptionString('main', 'CAPTCHA_textAngel_2', '15'); COption::SetOptionString('main', 'CAPTCHA_textDistance_1', '-2'); COption::SetOptionString('main', 'CAPTCHA_textDistance_2', '-2'); COption::SetOptionString('main', 'CAPTCHA_bWaveTransformation', 'Y'); COption::SetOptionString('main', 'CAPTCHA_arBorderColor', '000000'); COption::SetOptionString('main', 'CAPTCHA_arTTFFiles', 'bitrix_captcha.ttf'); COption::SetOptionString('main', 'CAPTCHA_letters', 'ABCDEFGHJKLMNPQRSTWXYZ23456789'); COption::SetOptionString('main', 'CAPTCHA_presets', '2'); } COption::SetOptionString('socialnetwork', 'allow_tooltip', 'Y', false, WIZARD_SITE_ID); COption::SetOptionString('socialnetwork', "tooltip_rating_id", serialize(array(1)), false, WIZARD_SITE_ID); if (WIZARD_INSTALL_DEMO_DATA) { $user = new CUser(); $pwdUser = uniqid('pwd_'); $arFields = array("NAME" => GetMessage("TASK_WIZARD_USER_NAME_1"), "LAST_NAME" => GetMessage("TASK_WIZARD_USER_SURNAME_1"), "EMAIL" => GetMessage("TASK_WIZARD_USER_EMAIL_1"), "LOGIN" => GetMessage("TASK_WIZARD_USER_LOGIN_1"), "LID" => LANGUAGE_ID, "ACTIVE" => "Y", "GROUP_ID" => array(3, 2), "PASSWORD" => $pwdUser, "CONFIRM_PASSWORD" => $pwdUser); $user->Add($arFields); $pwdUser = uniqid('pwd_'); $arFields = array("NAME" => GetMessage("TASK_WIZARD_USER_NAME_2"), "LAST_NAME" => GetMessage("TASK_WIZARD_USER_SURNAME_2"), "EMAIL" => GetMessage("TASK_WIZARD_USER_EMAIL_2"), "LOGIN" => GetMessage("TASK_WIZARD_USER_LOGIN_2"), "LID" => LANGUAGE_ID, "ACTIVE" => "Y", "GROUP_ID" => array(3, 2), "PASSWORD" => $pwdUser, "CONFIRM_PASSWORD" => $pwdUser); $user->Add($arFields); $arIMAGE = CFile::MakeFileArray(WIZARD_ABSOLUTE_PATH . "/site/services/blog/images/user_1.jpg"); $arIMAGE["MODULE_ID"] = "main"; $pwdUser = uniqid('pwd_'); $arFields = array("NAME" => GetMessage("TASK_WIZARD_USER_NAME_3"), "LAST_NAME" => GetMessage("TASK_WIZARD_USER_SURNAME_3"), "EMAIL" => GetMessage("TASK_WIZARD_USER_EMAIL_3"), "LOGIN" => GetMessage("TASK_WIZARD_USER_LOGIN_3"), "LID" => LANGUAGE_ID, "ACTIVE" => "Y", "GROUP_ID" => array(3, 2), "PASSWORD" => $pwdUser, "CONFIRM_PASSWORD" => $pwdUser, "UF_MOYMIR" => "bitrix", "UF_MYYANDEX" => "bitrix", "UF_MOYMIR" => "bitrix", "UF_SKYPE" => "bitrix", "UF_TWITTER" => "bitrix", "PERSONAL_PHOTO" => $arIMAGE); $user->Add($arFields); } $rsGroups = CGroup::GetList($by = "c_sort", $order = "desc", array("ACTIVE" => "Y", "ADMIN" => "N", "ANONYMOUS" => "N")); if (!$rsGroups->Fetch()) { $group = new CGroup(); $arFields = array("ACTIVE" => "Y", "C_SORT" => 100, "NAME" => GetMessage("REGISTERED_USERS"), "DESCRIPTION" => ""); $NEW_GROUP_ID = $group->Add($arFields); $rsTasks = CTask::GetList(array(), array("MODULE_ID" => "main", "SYS" => "Y", "BINDIG" => "module", "LETTER" => "P"));
$GROUP_ID = explode(",", $def_group); $arPolicy = $USER->GetGroupPolicy($GROUP_ID); } else { $arPolicy = $USER->GetGroupPolicy(array()); } $password_min_length = intval($arPolicy["PASSWORD_LENGTH"]); if ($password_min_length <= 0) { $password_min_length = 6; } $password_chars = array("abcdefghijklnmopqrstuvwxyz", "ABCDEFGHIJKLNMOPQRSTUVWXYZ", "0123456789"); if ($arPolicy["PASSWORD_PUNCTUATION"] === "Y") { $password_chars[] = ",.<>/?;:'\"[]{}\\|`~!@#\$%^&*()-_+="; } $NEW_PASSWORD = $NEW_PASSWORD_CONFIRM = randString($password_min_length + 2, $password_chars); $user = new CUser(); $arAuthResult = $user->Add(array("LOGIN" => $NEW_LOGIN, "NAME" => $NEW_NAME, "LAST_NAME" => $NEW_LAST_NAME, "PASSWORD" => $NEW_PASSWORD, "CONFIRM_PASSWORD" => $NEW_PASSWORD_CONFIRM, "EMAIL" => $NEW_EMAIL, "GROUP_ID" => $GROUP_ID, "ACTIVE" => "Y", "LID" => SITE_ID)); if (IntVal($arAuthResult) <= 0) { $arResult["ERROR"][] = GetMessage("STOF_ERROR_REG") . (strlen($user->LAST_ERROR) > 0 ? ": " . $user->LAST_ERROR : ""); } else { $USER->Authorize($arAuthResult); if ($USER->IsAuthorized()) { if ($arParams["SEND_NEW_USER_NOTIFY"] == "Y") { CUser::SendUserInfo($USER->GetID(), SITE_ID, GetMessage("INFO_REQ"), true); } } else { $arResult["ERROR"][] = GetMessage("STOF_ERROR_REG_CONFIRM"); } } } else { $arResult["ERROR"][] = GetMessage("STOF_ERROR_EMAIL"); }
/** * Add new user to b_user table. * Returns its identifier or false on failure. * * @param array $params * * @return integer|false */ public function addUser($params) { if (!$this->isEnabled()) { $this->errorCollection[] = new Error(Loc::getMessage('B24NET_NETWORK_IN_NOT_ENABLED'), self::ERROR_NETWORK_IN_NOT_ENABLED); return false; } $password = md5($params['XML_ID'] . '|' . $params['CLIENT_DOMAIN'] . '|' . rand(1000, 9999) . '|' . time() . '|' . uniqid()); $photo = \CFile::MakeFileArray($params['PERSONAL_PHOTO_ORIGINAL']); $groups = array(); if (Loader::includeModule('extranet')) { $groups[] = \CExtranet::GetExtranetUserGroupID(); } $addParams = array('LOGIN' => $params['NETWORK_USER_ID'] . '@' . $params['CLIENT_DOMAIN'], 'NAME' => $params['NAME'], 'EMAIL' => $params['EMAIL'], 'LAST_NAME' => $params['LAST_NAME'], 'SECOND_NAME' => $params['SECOND_NAME'], 'PERSONAL_GENDER' => $params['PERSONAL_GENDER'], 'PERSONAL_PHOTO' => $photo, 'WORK_POSITION' => $params['CLIENT_DOMAIN'], 'XML_ID' => $params['XML_ID'], 'EXTERNAL_AUTH_ID' => self::EXTERNAL_AUTH_ID, "ACTIVE" => "Y", "PASSWORD" => $password, "CONFIRM_PASSWORD" => $password, "GROUP_ID" => $groups); if (isset($params['EMAIL'])) { $addParams['EMAIL'] = $params['EMAIL']; } $user = new \CUser(); $userId = $user->Add($addParams); if (intval($userId) <= 0) { $this->errorCollection[] = new Error($user->LAST_ERROR, self::ERROR_REGISTER_USER); return false; } $event = new Event("socialservices", "OnAfterRegisterUserByNetwork", array($userId, $params['NETWORK_USER_ID'], $params['CLIENT_DOMAIN'])); $event->send(); return $userId; }
function UpdateUser($arFields = array(), $FORMAT_DATE = false, $FORMAT_DATETIME = false) { global $DB; $arFields["ACTIVE"] = "Y"; $arFields["PASSWORD"] = md5(uniqid(rand(), true)); $oUser = new CUser(); unset($arFields["ID"]); unset($arFields["TIMESTAMP_X"]); unset($arFields["DATE_REGISTER"]); if (isset($arFields["PERSONAL_BIRTHDAY"]) && $arFields["PERSONAL_BIRTHDAY"] != '' && $FORMAT_DATE !== false) { $arFields["PERSONAL_BIRTHDAY"] = $DB->FormatDate($arFields["PERSONAL_BIRTHDAY"], $FORMAT_DATE, FORMAT_DATE); } $dbr_user = CUser::GetList($O, $B, array("LOGIN_EQUAL_EXACT" => $arFields["LOGIN"], "EXTERNAL_AUTH_ID" => "__controller")); if ($ar_user = $dbr_user->Fetch()) { $arFields['EXTERNAL_AUTH_ID'] = "__controller"; $USER_ID = $ar_user["ID"]; if (is_array($arFields["GROUPS_TO_ADD"]) && is_array($arFields["GROUPS_TO_DELETE"])) { $arFields["GROUP_ID"] = CUser::GetUserGroup($USER_ID); foreach ($arFields["GROUPS_TO_DELETE"] as $group_id) { $group_id = CGroup::GetIDByCode($group_id); if ($group_id > 0) { $p = array_search($group_id, $arFields["GROUP_ID"]); if ($p !== false) { unset($arFields["GROUP_ID"][$p]); } } } foreach ($arFields["GROUPS_TO_ADD"] as $group_id) { $group_id = CGroup::GetIDByCode($group_id); if ($group_id > 0) { $arFields["GROUP_ID"][] = $group_id; } } } elseif (is_array($arFields["GROUP_ID"])) { $groups = $arFields["GROUP_ID"]; $arFields["GROUP_ID"] = array(); foreach ($groups as $group_id) { $group_id = CGroup::GetIDByCode($group_id); if ($group_id > 0) { $arFields["GROUP_ID"][] = $group_id; } } } if (!$oUser->Update($USER_ID, $arFields)) { return false; } } else { $arFields['EXTERNAL_AUTH_ID'] = "__controller"; $arFields["LID"] = SITE_ID; if (is_array($arFields["GROUP_ID"])) { $groups = $arFields["GROUP_ID"]; $arFields["GROUP_ID"] = array(); foreach ($groups as $group_id) { $group_id = CGroup::GetIDByCode($group_id); if ($group_id > 0) { $arFields["GROUP_ID"][] = $group_id; } } } $USER_ID = $oUser->Add($arFields); } return $USER_ID; }
$checkLogin = $USER->GetByLogin($Fields["LOGIN"])->Fetch(); if (empty($checkLogin)) { // Устанавливаем родителя if (!empty($val["PARENT_NAME"])) { $arUser = $USER->GetByLogin($val["PARENT_NAME"])->Fetch(); $Fields["UF_USER_PARENT"] = $arUser["ID"]; } elseif ($USER->GetID() > 0) { $Fields["UF_USER_PARENT"] = $USER->GetID(); } // Устанавливаем дату регистрации if (!empty($val["REG_DATE"])) { $Fields["DATE_REGISTER"] = $val["REG_DATE"]; } // Добавляем пользователя $user = new CUser(); $ID = $user->Add($Fields); if (intval($ID) > 0) { // Записываем в лог регистрацию $el_log = new CIBlockElement(); $PROP_log = array('ID' => $ID, 'PERSONAL_BIRTHDAY' => $val["PERSONAL_BIRTHDAY"], 'PARENT_USER' => $Fields["UF_USER_PARENT"], 'UF_IAGREE' => $status[$val["UF_IAGREE"]], 'UF_YOU_HAVE_18' => $status[$val["UF_YOU_HAVE_18"]], 'UF_DO_YOU_SMOKE' => $status[$val["UF_DO_YOU_SMOKE"]], 'TYPE' => "app_user_add"); $arLoadProductArray_log = array("IBLOCK_ID" => 26, "PROPERTY_VALUES" => $PROP_log, "NAME" => $ID); $el_log->Add($arLoadProductArray_log); // Создаем Токен для пользователя $Hash = md5($ID . $USER->GetID() . time()); // Если указана почта отправляем ему письмо с токеном, логином и паролем if (!empty($val["EMAIL"])) { CModule::IncludeModule("main"); $arEventFields = array("USER_ID" => $ID, "LOGIN" => $Fields["LOGIN"], "EMAIL" => $Fields["EMAIL"], "NAME" => $Fields["NAME"], "LAST_NAME" => $Fields["LAST_NAME"], "PASSWORD" => $Fields["PASSWORD"], "TOKEN" => $Hash); $userFields = $USER->GetByID($USER->GetID())->Fetch(); if ($userFields["PERSONAL_CITY"] == "Екатеринбург") { CEvent::SendImmediate("NEW_APP_USER", "s1", $arEventFields);
public static function DoAutoRegisterUser($autoEmail, $payerName, $siteId, &$arErrors, $arOtherFields = null) { $autoEmail = trim($autoEmail); if (empty($autoEmail)) { return null; } if ($siteId == null) { $siteId = SITE_ID; } $autoName = ""; $autoLastName = ""; if (!is_array($payerName) && strlen($payerName) > 0) { $arNames = explode(" ", $payerName); $autoName = $arNames[1]; $autoLastName = $arNames[0]; $autoSecondName = false; } elseif (is_array($payerName)) { $autoName = $payerName["NAME"]; $autoLastName = $payerName["LAST_NAME"]; $autoSecondName = $payerName["SECOND_NAME"]; } $autoLogin = $autoEmail; $pos = strpos($autoLogin, "@"); if ($pos !== false) { $autoLogin = substr($autoLogin, 0, $pos); } if (strlen($autoLogin) > 47) { $autoLogin = substr($autoLogin, 0, 47); } while (strlen($autoLogin) < 3) { $autoLogin .= "_"; } $idx = 0; $loginTmp = $autoLogin; $dbUserLogin = CUser::GetByLogin($autoLogin); while ($arUserLogin = $dbUserLogin->Fetch()) { $idx++; if ($idx == 10) { $autoLogin = $autoEmail; } elseif ($idx > 10) { $autoLogin = "******" . time() . GetRandomCode(2); break; } else { $autoLogin = $loginTmp . $idx; } $dbUserLogin = CUser::GetByLogin($autoLogin); } $defaultGroup = COption::GetOptionString("main", "new_user_registration_def_group", ""); if ($defaultGroup != "") { $arDefaultGroup = explode(",", $defaultGroup); $arPolicy = CUser::GetGroupPolicy($arDefaultGroup); } else { $arPolicy = CUser::GetGroupPolicy(array()); } $passwordMinLength = intval($arPolicy["PASSWORD_LENGTH"]); if ($passwordMinLength <= 0) { $passwordMinLength = 6; } $passwordChars = array("abcdefghijklnmopqrstuvwxyz", "ABCDEFGHIJKLNMOPQRSTUVWXYZ", "0123456789"); if ($arPolicy["PASSWORD_PUNCTUATION"] === "Y") { $passwordChars[] = ",.<>/?;:'\"[]{}\\|`~!@#\$%^&*()-_+="; } $autoPassword = randString($passwordMinLength + 2, $passwordChars); $arFields = array("LOGIN" => $autoLogin, "NAME" => $autoName, "LAST_NAME" => $autoLastName, "SECOND_NAME" => $autoSecondName, "PASSWORD" => $autoPassword, "PASSWORD_CONFIRM" => $autoPassword, "EMAIL" => $autoEmail, "GROUP_ID" => $arDefaultGroup, "LID" => $siteId); $arFields["ACTIVE"] = isset($arOtherFields["ACTIVE"]) && $arOtherFields["ACTIVE"] == "N" ? "N" : "Y"; if (isset($arOtherFields["ACTIVE"])) { unset($arOtherFields["ACTIVE"]); } if (is_array($arOtherFields)) { foreach ($arOtherFields as $key => $value) { if (!array_key_exists($key, $arFields)) { $arFields[$key] = $value; } } } $user = new CUser(); $userId = $user->Add($arFields); if (intval($userId) <= 0) { $arErrors[] = array("TEXT" => Loc::getMessage("STOF_ERROR_REG") . (strlen($user->LAST_ERROR) > 0 ? ": " . $user->LAST_ERROR : "")); return 0; } return $userId; }
} } else { $arIntranetUsersEmails[] = $email["EMAIL"]; continue; } } else { //creating user with specified e-mail $password = randString($password_min_length, $password_chars); $checkword = randString(8); $name = $last_name = ""; if (strlen($email["NAME"]) > 0) { list($name, $last_name) = explode(" ", $email["NAME"]); } $arFields = array("EMAIL" => $email["EMAIL"], "LOGIN" => $email["EMAIL"], "NAME" => $name, "LAST_NAME" => $last_name, "ACTIVE" => "Y", "GROUP_ID" => CExtranet::GetExtranetUserGroupID() > 0 ? array(2, CExtranet::GetExtranetUserGroupID()) : array(2), "PASSWORD" => $password, "CONFIRM_PASSWORD" => $password, "CHECKWORD" => $checkword, "LID" => SITE_ID); $user = new CUser(); $NEW_USER_ID = $user->Add($arFields); if (intval($NEW_USER_ID) > 0) { $arUserIDs[] = $userID = $NEW_USER_ID; } else { $strError = $user->LAST_ERROR; if ($GLOBALS["APPLICATION"]->GetException()) { $err = $GLOBALS["APPLICATION"]->GetException(); $strError .= $err->GetString(); $GLOBALS["APPLICATION"]->ResetException(); } $warningMessage .= str_replace("#EMAIL#", HtmlSpecialCharsEx($email["EMAIL"]), GetMessage("SONET_GCE_CANNOT_USER_ADD") . $strError); } } //sending invitation to new user ($userID) with this e-mail if ($userID > 0 && (empty($arUser) || strlen($arUser["LAST_LOGIN"]) <= 0 && strlen($arUser["LAST_ACTIVITY_DATE"]) <= 0)) { $rel = CSocNetUserToGroup::GetUserRole($userID, $arResult["GROUP_ID"]);
$passwordMinLength = intval($arPolicy["PASSWORD_LENGTH"]); if ($passwordMinLength <= 10) { $passwordMinLength = 10; } $passwordChars = array("abcdefghijklnmopqrstuvwxyz", "ABCDEFGHIJKLNMOPQRSTUVWXYZ", "0123456789"); if ($arPolicy["PASSWORD_PUNCTUATION"] === "Y") { $passwordChars[] = ",.<>/?;:'\"[]{}\\|`~!@#\$%^&*()-_+="; } $salePassword = randString($passwordMinLength + 2, $passwordChars); $saleEMail = $saleLogin . '@' . $_SERVER["SERVER_NAME"]; if (!check_email($saleEMail)) { $saleEMail = $saleLogin . '@temporary.temp'; } $arUserFields = array("LOGIN" => $saleLogin, "NAME" => "CRM", "LAST_NAME" => "IMPORT", "PASSWORD" => $salePassword, "PASSWORD_CONFIRM" => $salePassword, "EMAIL" => $saleEMail, "GROUP_ID" => $arDefaultGroup, "ACTIVE" => "Y", "LID" => SITE_ID); $user = new CUser(); $userId = $user->Add($arUserFields); $userId = intval($userId); if ($userId <= 0) { $errorMessage .= GetMessage("SPTEN_SCRM_ERR_REG") . (strlen($user->LAST_ERROR) > 0 ? ": " . $user->LAST_ERROR : ""); } } if (empty($errorMessage)) { $group = new CGroup(); $arGroupFields = array("ACTIVE" => "Y", "NAME" => "CRM SALE IMPORT", "USER_ID" => array(array("USER_ID" => $userId, "DATE_ACTIVE_FROM" => false, "DATE_ACTIVE_TO" => false))); $groupId = $group->Add($arGroupFields); $groupId = intval($groupId); if ($groupId <= 0) { $errorMessage .= GetMessage("SPTEN_SCRM_ERR_GRP") . (strlen($group->LAST_ERROR) > 0 ? ": " . $group->LAST_ERROR : ""); } } }
$user = new CUser(); $arFields = array('LOGIN' => $_POST['login'], 'ACTIVE' => 'Y', 'GROUP_ID' => array(1, 2), 'PASSWORD' => $_POST['pwd1'], 'CONFIRM_PASSWORD' => $_POST['pwd2']); if (!empty($_POST['email'])) { $arFields['EMAIL'] = $_POST['email']; } $userId = 0; if ($arUser) { $result = $user->Update($arUser['ID'], $arFields); if (intval($result) > 0) { $arMess[] = $msg['userChngScs']; $userId = $arUser['ID']; } else { $arError[] = $user->LAST_ERROR; } } else { $result = $user->Add($arFields); if (intval($result) > 0) { $arMess[] = $msg['userAddScs']; $userId = $result; } else { $arError[] = $user->LAST_ERROR; } } global $USER; if ($userId > 0 && !$USER->IsAuthorized()) { $USER->Authorize($userId); } } elseif (isset($_POST['action']) && $_POST['action'] == 'success' && isset($_POST['success'])) { if ($_POST['success'] == $msg['delScript']) { @unlink(__FILE__); }