/** * Обработчик события подтверждения оплаты товара */ function OnSalePayOrderHandler($id, $val) { $currentUserId = $GLOBALS['USER']->GetID(); //Идентификатор текущего пользователя, по идее администратор $idRatingGroup = 5; //группа акции $curTo = "UAH"; //тип гривневой цены $arOrder = CSaleOrder::GetByID($id); //информация о заказе $price = CCurrencyRates::ConvertCurrency(floatval($arOrder["SUM_PAID"]), $arOrder["CURRENCY"], $curTo); $price = intval(ceil($price)); //стоимость заказа $userId = intval($arOrder["USER_ID"]); //пользователь, который оплатил заказ $arUserData = CUser::GetByID($userId)->Fetch(); //Информация о пользователе $userGroups = CUser::GetUserGroup($userId); //ИД групп, к которым принадлежит пользователь //Если пользователя нет в акционной группе, и он совершил заказ более чем на 900 грн, то добавить его в группу if (!in_array($idRatingGroup, $userGroups)) { if ($price >= 900 && $price <= 4000 && $val === 'Y') { $userGroups[] = $idRatingGroup; CUser::SetUserGroup($userId, $userGroups); } } $points = $price * 5; $payedUser = new CUser(); //Если оплата подтверждается, то добавить баллы if ($val === 'Y' && in_array($idRatingGroup, $userGroups)) { $points = intval($arUserData['UF_ACTION_POINTS']) + $points; $payedUser->Update($userId, array("UF_ACTION_POINTS" => $points, "UF_DATE_LAST_BUY" => $arOrder["DATE_UPDATE_FORMAT"])); } else { if ($val === 'N') { $price = CCurrencyRates::ConvertCurrency(floatval($arOrder["PRICE"]), $arOrder["CURRENCY"], $curTo); $price = intval(ceil($price)); //вычитаем полную стоимость $points = $price * 5; if ($arUserData['UF_ACTION_POINTS'] >= $points) { $points = intval($arUserData['UF_ACTION_POINTS']) - $points; $payedUser->Update($userId, array("UF_ACTION_POINTS" => $points)); //Если очков стало меньше 4500, то исключаем пользователя из группы участников if (in_array($idRatingGroup, $userGroups) && $points < 4500) { $indexGroup = array_search($idRatingGroup, $userGroups); if (isset($userGroups[$indexGroup])) { unset($userGroups[$indexGroup]); CUser::SetUserGroup($userId, $userGroups); } } } } } unset($payedUser); }
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; }
private static function executeEditPhones(&$error) { global $USER_FIELD_MANAGER; $userId = intval($_REQUEST['USER_ID']); $obUser = new CUser(); $arFields = array("UF_VI_BACKPHONE" => $_REQUEST["UF_VI_BACKPHONE"], "UF_PHONE_INNER" => $_REQUEST["UF_PHONE_INNER"]); $viUser = new CVoximplantUser(); if (isset($_REQUEST["UF_VI_PHONE"])) { if ($_REQUEST["UF_VI_PHONE"] == 'N') { $viUser->UpdateUserPassword($_REQUEST['USER_ID'], CVoxImplantUser::MODE_PHONE); unset($_REQUEST["UF_VI_PHONE_PASSWORD"]); } $viUser->SetPhoneActive($_REQUEST['USER_ID'], $_REQUEST["UF_VI_PHONE"] == "Y" ? true : false); } if (isset($_REQUEST["UF_VI_PHONE_PASSWORD"]) && trim($_REQUEST["UF_VI_PHONE_PASSWORD"])) { $pass = $viUser->UpdateUserPassword($_REQUEST['USER_ID'], CVoxImplantUser::MODE_PHONE, $_REQUEST["UF_VI_PHONE_PASSWORD"]); if (!$pass) { $error = $viUser->GetError()->msg; } } $USER_FIELD_MANAGER->EditFormAddFields("USER", $arFields); if (!$obUser->Update($userId, $arFields, true)) { $error = $obUser->LAST_ERROR; } $arUser = CUser::GetList($by = "ID", $order = "ASC", array('ID' => $userId), array('FIELDS' => array('ID', 'LOGIN', 'NAME', 'SECOND_NAME', 'LAST_NAME', "UF_PHONE_INNER", "UF_VI_BACKPHONE", "UF_VI_PHONE", "UF_VI_PHONE_PASSWORD"), 'SELECT' => array("UF_PHONE_INNER", "UF_VI_BACKPHONE", "UF_VI_PHONE", "UF_VI_PHONE_PASSWORD")))->fetch(); return array('UF_VI_BACKPHONE' => $arUser['UF_VI_BACKPHONE'], 'UF_PHONE_INNER' => $arUser["UF_PHONE_INNER"], 'UF_VI_PHONE' => $arUser["UF_VI_PHONE"], 'UF_VI_PHONE_PASSWORD' => $arUser["UF_VI_PHONE_PASSWORD"]); }
function OnAfterUserRegisterHandler($arFields) { global $APPLICATION; if ($arFields["USER_ID"] > 0) { $token = sha1($arFields["USER_ID"] . "" . date("d.m.Y H:i:s")); $APPLICATION->set_cookie("MQ_AUTH_TOKEN", $token, time() + 60 * 60 * 24 * 30 * 12 * 4, "/"); $user = new CUser(); $user->Update($arFields["USER_ID"], array('UF_AUTH_TOKEN' => $token, 'UF_TOKEN' => $token)); } }
function OnAfterUserAuthorizeHandler(&$arFields) { $f = fopen($_SERVER['DOCUMENT_ROOT'] . '/bitrix/php_interface/md/log.txt', 'a+'); global $USER; $rsUser = CUser::GetByID($USER->GetId()); $arUser = $rsUser->Fetch(); fwrite($f, "---start\n"); if ($arUser['ID'] > 0 && $arUser['EXTERNAL_AUTH_ID'] == 'Facebook' && $arUser['UF_RULES'] != '1') { $facebook = new Facebook_Facebook(array('appId' => '447579571927341', 'secret' => '2f2cf9cd60f9e98d6cf3309e6b7bde5d')); $id = $arUser["XML_ID"]; $user_info = $facebook->api('/' . $id . '?fields=id,name,first_name,middle_name,last_name,gender,birthday,email,picture'); $props = array(); if (!$arUser['PERSONAL_GENDER']) { if (isset($user_info['gender']) && $user_info['gender']) { $props['PERSONAL_GENDER'] = $user_info['gender'] == 'male' ? 'M' : 'F'; } } if (!empty($props)) { $user = new CUser(); $user->Update($arUser["ID"], $props); } CModule::IncludeModule("blog"); $blogUser = CBlogUser::GetByID($USER->GetId(), BLOG_BY_USER_ID); $props = array(); if (!$blogUser['AVATAR']) { if (isset($user_info['picture']) && $user_info['picture']) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://graph.facebook.com/{$id}/picture?type=large"); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_MAXREDIRS, 3); $output = curl_exec($ch); if ($output) { $fileName = md5($user_info['picture']); $fullPath = $_SERVER['DOCUMENT_ROOT'] . "/bitrix/cache/social_pictures/{$fileName}.jpg"; if (file_put_contents($fullPath, $output) !== false) { $picture = CFile::MakeFileArray($fullPath); $props['AVATAR'] = $picture; $user = new CBlogUser(); $user->Update($blogUser["ID"], $props); unlink($fullPath); } } } } } fwrite($f, "---finish\n"); fclose($f); }
public function UpdateProperties() { if (!$this->getUser()) { throw new CRUDException("Unexpected user ID"); } if (!$this->getProperties()) { throw new CRUDException("Unexpected update information"); } $objUser = new \CUser(); $objUser->Update($this->getUser(), $this->getProperties()); if ($objUser->LAST_ERROR) { throw new CRUDException($objUser->LAST_ERROR); } else { return True; } }
protected function handle_file_upload($uploaded_file, $name, $size, $type, $error, $index = null, $content_range = null) { $file = parent::handle_file_upload($uploaded_file, $name, $size, $type, $error, $index, $content_range); if (empty($file->error)) { global $USER; $uid = $USER->GetID(); $rsUser = CUser::GetByID($uid); $arUser = $rsUser->Fetch(); $arFile = CFile::MakeFileArray($_SERVER['DOCUMENT_ROOT'] . "/upload/avatar/thumbnail/" . $file->name); $arFile['del'] = "Y"; $arFile['old_file'] = $arUser['PERSONAL_PHOTO']; $arFile["MODULE_ID"] = "main"; $fields['PERSONAL_PHOTO'] = $arFile; $cuser = new CUser(); $cuser->Update($uid, $fields); } return $file; }
function changeUserStatus($ID, $PARENT, $CURRENT, $NEW, $text) { CModule::IncludeModule("iblock"); CModule::IncludeModule("highloadblock"); global $APPLICATION; $fields = getValuesList('UF_STATUS', 'USER', 'ID'); $flipFields = array_flip($fields); $types = array(getValuesList('UF_TYPE', 'HLBLOCK_2', 'ID'), getValuesList('UF_TYPE_2', 'HLBLOCK_2', 'ID')); $raw = new CUser(); $raw->Update($ID, array('UF_INVITE_STATUS' => 1, 'UF_STATUS' => $fields[$NEW])); $hbKPI = HL\HighloadBlockTable::getById(2)->fetch(); $entityKPI = HL\HighloadBlockTable::compileEntity($hbKPI); $logKPI = $entityKPI->getDataClass(); $logKPI::add(array('UF_USER' => intval($ID), 'UF_AMPLIFIER' => intval($PARENT), 'UF_EVENT' => 0, 'UF_DATE_TIME' => date("Y-m-d H:i:s"), 'UF_ACTION_CODE' => 103, 'UF_ACTION_TEXT' => "change_status", 'UF_TYPE' => $CURRENT ? $types[0][$flipFields[$CURRENT]] : 1, 'UF_TYPE_2' => $types[1][$NEW])); $hbLOG = HL\HighloadBlockTable::getById(4)->fetch(); $entityLOG = HL\HighloadBlockTable::compileEntity($hbLOG); $logLOG = $entityLOG->getDataClass(); $res = $logLOG::add(array('UF_USER' => intval($ID), 'UF_AMPLIFIER' => intval($PARENT), 'UF_EVENT' => 0, 'UF_DATE_TIME' => date("d.m.Y H:i:s", time()), "UF_ACTION_CODE" => 104, "UF_ACTION_TEXT" => $text, "UF_TYPE" => $CURRENT ? $flipFields[$CURRENT] : 1, "UF_TYPE_2" => $NEW)); }
public function OnAfterUserAuthorizeHandler(&$arFields) { global $USER; $rsUser = CUser::GetByID($USER->GetId()); $arUser = $rsUser->Fetch(); $social = MH_Social_SocialFabric::getSocial($arUser['EXTERNAL_AUTH_ID'], $arUser["XML_ID"]); if ($arUser['ID'] > 0 && $arUser['UF_RULES'] != '1') { $props = array(); if (!$arUser['PERSONAL_GENDER']) { $props['PERSONAL_GENDER'] = $social->getGender(); } if (!$arUser['PERSONAL_BIRTHDAY']) { $props['PERSONAL_BIRTHDAY'] = $social->getBirthday(); } if (!empty($props)) { $user = new CUser(); $user->Update($arUser["ID"], $props); } CModule::IncludeModule("blog"); $blogUser = CBlogUser::GetByID($arUser['ID'], BLOG_BY_USER_ID); if (!$blogUser || !$blogUser['AVATAR']) { $props = array('USER_ID' => $arUser['ID']); if ($path = $social->getPicture()) { $picture = CFile::MakeFileArray($path); $props['AVATAR'] = $picture; $user = new CBlogUser(); if ($blogUser) { $user->Update($blogUser["ID"], $props); } else { $user->Add($props); } unlink($path); } } } }
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; }
public static function Sync($ldap_server_id) { global $DB, $USER, $APPLICATION; if (!is_object($USER)) { $USER = new CUser(); $bUSERGen = true; } $dbLdapServers = CLdapServer::GetById($ldap_server_id); if (!($oLdapServer = $dbLdapServers->GetNextServer())) { return false; } if (!$oLdapServer->Connect()) { return false; } if (!$oLdapServer->BindAdmin()) { $oLdapServer->Disconnect(); return false; } $APPLICATION->ResetException(); $db_events = GetModuleEvents("ldap", "OnLdapBeforeSync"); while ($arEvent = $db_events->Fetch()) { $arParams['oLdapServer'] = $oLdapServer; if (ExecuteModuleEventEx($arEvent, array(&$arParams)) === false) { if (!($err = $APPLICATION->GetException())) { $APPLICATION->ThrowException("Unknown error"); } return false; } } // select all users from LDAP $arLdapUsers = array(); $ldapLoginAttr = strtolower($oLdapServer->arFields["~USER_ID_ATTR"]); $APPLICATION->ResetException(); $dbLdapUsers = $oLdapServer->GetUserList(); $ldpEx = $APPLICATION->GetException(); while ($arLdapUser = $dbLdapUsers->Fetch()) { $arLdapUsers[strtolower($arLdapUser[$ldapLoginAttr])] = $arLdapUser; } unset($dbLdapUsers); // select all Bitrix CMS users for this LDAP $arUsers = array(); CTimeZone::Disable(); $dbUsers = CUser::GetList($o, $b, array("EXTERNAL_AUTH_ID" => "LDAP#" . $ldap_server_id)); CTimeZone::Enable(); while ($arUser = $dbUsers->Fetch()) { $arUsers[strtolower($arUser["LOGIN"])] = $arUser; } unset($dbUsers); if (!$ldpEx || $ldpEx->msg != 'LDAP_SEARCH_ERROR') { $arDelLdapUsers = array_diff(array_keys($arUsers), array_keys($arLdapUsers)); } if (strlen($oLdapServer->arFields["SYNC_LAST"]) > 0) { $syncTime = MakeTimeStamp($oLdapServer->arFields["SYNC_LAST"]); } else { $syncTime = 0; } $arCache = array(); // selecting a list of groups, from which users will not be imported $noImportGroups = array(); $dbGroups = CLdapServer::GetGroupBan($ldap_server_id); while ($arGroup = $dbGroups->Fetch()) { $noImportGroups[md5($arGroup['LDAP_GROUP_ID'])] = $arGroup['LDAP_GROUP_ID']; } $cnt = 0; // have to update $oLdapServer->arFields["FIELD_MAP"] for user fields // for each one of them looking for similar in user list foreach ($arLdapUsers as $userLogin => $arLdapUserFields) { if (!is_array($arUsers[$userLogin])) { if ($oLdapServer->arFields["SYNC_USER_ADD"] != "Y") { continue; } // if user is not found among already existing ones, then import him // в $arLdapUserFields - user fields from ldap $userActive = $oLdapServer->getLdapValueByBitrixFieldName("ACTIVE", $arLdapUserFields); if ($userActive != "Y") { continue; } $arUserFields = $oLdapServer->GetUserFields($arLdapUserFields, $departmentCache); // $arUserFields here contains LDAP user fields for a LDAP user // make a check, whether this user belongs to those groups only, from which import will not be made... $allUserGroups = $arUserFields['LDAP_GROUPS']; $userImportIsBanned = true; foreach ($allUserGroups as $groupId) { $groupId = trim($groupId); if (!empty($groupId) && !array_key_exists(md5($groupId), $noImportGroups)) { $userImportIsBanned = false; break; } } // ...if he does not, then import him if (!$userImportIsBanned || empty($allUserGroups)) { $oLdapServer->SetUser($arUserFields); } } else { // if date of update is set, then compare it $ldapTime = time(); if ($syncTime > 0 && strlen($oLdapServer->arFields["SYNC_ATTR"]) > 0 && preg_match("'([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})\\.0Z'", $arLdapUserFields[strtolower($oLdapServer->arFields["SYNC_ATTR"])], $arTimeMatch)) { $ldapTime = gmmktime($arTimeMatch[4], $arTimeMatch[5], $arTimeMatch[6], $arTimeMatch[2], $arTimeMatch[3], $arTimeMatch[1]); $userTime = MakeTimeStamp($arUsers[$userLogin]["TIMESTAMP_X"]); } if ($syncTime < $ldapTime || $syncTime < $userTime) { // make an update $arUserFields = $oLdapServer->GetUserFields($arLdapUserFields, $arCache); $arUserFields["ID"] = $arUsers[$userLogin]["ID"]; //echo $arUserFields["LOGIN"]." - updated<br>"; $oLdapServer->SetUser($arUserFields); $cnt++; } } } foreach ($arDelLdapUsers as $userLogin) { $USER = new CUser(); if (isset($arUsers[$userLogin]) && $arUsers[$userLogin]['ACTIVE'] == 'Y') { $ID = intval($arUsers[$userLogin]["ID"]); $USER->Update($ID, array('ACTIVE' => 'N')); } } $oLdapServer->Disconnect(); CLdapServer::Update($ldap_server_id, array("~SYNC_LAST" => $DB->CurrentTimeFunction())); if ($bUSERGen) { unset($USER); } return $cnt; }
function OnBeforeUserUpdateHandler(&$arFields) { if(strlen($arFields["UF_IMG"]) > 0) { $user = new CUser; $arNewFile = CFile::MakeFileArray($arFields["UF_IMG"]); $fields = Array("PERSONAL_PHOTO" => $arNewFile); $user->Update($arFields['ID'], $fields); $link_del = explode('.ru',$arFields["UF_IMG"]); unlink($_SERVER['DOCUMENT_ROOT'].$link_del[1]); } }
protected function _SyncGetUser($user_str) { $USER_XML_ID = 0; $USER_ID = 0; list($USER_XML_ID, $FIELDS) = explode(';', $user_str); if ($USER_XML_ID > 0) { if (!($USER_ID = self::$arUsersCache[$USER_XML_ID])) { if ($uf_name = self::_CheckUF()) { $dbRes = CUser::GetList($by = 'ID', $order = 'ASC', array($uf_name => $USER_XML_ID)); if ($arRes = $dbRes->Fetch()) { $USER_ID = $arRes['ID']; self::$arUsersCache[$USER_XML_ID] = $USER_ID; } } } } if ($USER_ID <= 0) { $arUserFields = explode(',', substr($FIELDS, 1)); $arKeywords = preg_split('/[^\\w@.]+/', $arUserFields[1]); $arFilters = array(array('LOGIN' => $arUserFields[0]), array('EMAIL' => $arUserFields[0]), array('NAME' => $arUserFields[0])); if (is_array($arKeywords) && count($arKeywords) > 0) { $v = implode('|', $arKeywords); if (strlen($v) > 0) { $arFilters[] = array('EMAIL' => $v); $arFilters[] = array('NAME' => $v); } } //echo '<pre>'; print_r($arFilters); echo '</pre>'; foreach ($arFilters as $arFilter) { $dbRes = CUser::GetList($by = 'id', $order = 'asc', $arFilter); if ($arUser = $dbRes->Fetch()) { $USER_ID = $arUser['ID']; break; } } if ($USER_ID && $USER_XML_ID) { $u = new CUser(); $u->Update($USER_ID, array('UF_SP_ID' => $USER_XML_ID)); self::$arUsersCache[$USER_XML_ID] = $USER_ID; } } return $USER_ID; }
function ChangePassword($LOGIN, $CHECKWORD, $PASSWORD, $CONFIRM_PASSWORD, $SITE_ID = false) { global $DB, $APPLICATION, $USER; $result_message = array("MESSAGE" => GetMessage('PASSWORD_CHANGE_OK') . "<br>", "TYPE" => "OK"); $arParams = array("LOGIN" => &$LOGIN, "CHECKWORD" => &$CHECKWORD, "PASSWORD" => &$PASSWORD, "CONFIRM_PASSWORD" => &$CONFIRM_PASSWORD, "SITE_ID" => &$SITE_ID); $APPLICATION->ResetException(); $bOk = true; $db_events = GetModuleEvents("main", "OnBeforeUserChangePassword"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array(&$arParams)) === false) { if ($err = $APPLICATION->GetException()) { $result_message = array("MESSAGE" => $err->GetString() . "<br>", "TYPE" => "ERROR"); } $bOk = false; break; } } if ($bOk) { $strAuthError = ""; if (strlen($arParams["LOGIN"]) < 3) { $strAuthError .= GetMessage('MIN_LOGIN') . "<br>"; } if (strlen($arParams["PASSWORD"]) < 6) { $strAuthError .= GetMessage('MIN_PASSWORD1') . "<br>"; } if ($arParams["PASSWORD"] != $arParams["CONFIRM_PASSWORD"]) { $strAuthError .= GetMessage('WRONG_CONFIRMATION') . "<br>"; } if (strlen($strAuthError) > 0) { return array("MESSAGE" => $strAuthError, "TYPE" => "ERROR"); } CTimeZone::Disable(); $db_check = $DB->Query("SELECT ID, LID, CHECKWORD, " . $DB->DateToCharFunction("CHECKWORD_TIME", "FULL") . " as CHECKWORD_TIME " . "FROM b_user " . "WHERE LOGIN='******' AND (EXTERNAL_AUTH_ID IS NULL OR EXTERNAL_AUTH_ID='')"); CTimeZone::Enable(); if (!($res = $db_check->Fetch())) { return array("MESSAGE" => preg_replace("/#LOGIN#/i", htmlspecialcharsbx($arParams["LOGIN"]), GetMessage('LOGIN_NOT_FOUND')), "TYPE" => "ERROR", "FIELD" => "LOGIN"); } $salt = substr($res["CHECKWORD"], 0, 8); if (strlen($res["CHECKWORD"]) <= 0 || $res["CHECKWORD"] != $salt . md5($salt . $arParams["CHECKWORD"])) { return array("MESSAGE" => preg_replace("/#LOGIN#/i", htmlspecialcharsbx($arParams["LOGIN"]), GetMessage("CHECKWORD_INCORRECT")) . "<br>", "TYPE" => "ERROR", "FIELD" => "CHECKWORD"); } $arPolicy = CUser::GetGroupPolicy($res["ID"]); $site_format = CSite::GetDateFormat(); if (mktime() - $arPolicy["CHECKWORD_TIMEOUT"] * 60 > MakeTimeStamp($res["CHECKWORD_TIME"], $site_format)) { return array("MESSAGE" => preg_replace("/#LOGIN#/i", htmlspecialcharsbx($arParams["LOGIN"]), GetMessage("CHECKWORD_EXPIRE")) . "<br>", "TYPE" => "ERROR", "FIELD" => "CHECKWORD_EXPIRE"); } if ($arParams["SITE_ID"] === false) { if (defined("ADMIN_SECTION") && ADMIN_SECTION === true) { $arParams["SITE_ID"] = CSite::GetDefSite($res["LID"]); } else { $arParams["SITE_ID"] = SITE_ID; } } // меняем пароль $ID = $res["ID"]; $obUser = new CUser(); $res = $obUser->Update($ID, array("PASSWORD" => $arParams["PASSWORD"])); if (!$res && strlen($obUser->LAST_ERROR) > 0) { return array("MESSAGE" => $obUser->LAST_ERROR . "<br>", "TYPE" => "ERROR"); } CUser::SendUserInfo($ID, $arParams["SITE_ID"], GetMessage('CHANGE_PASS_SUCC'), true, 'USER_PASS_CHANGED'); } return $result_message; }
public static function updateUloginAccount($id, $new_id, $network) { $user = new CUser(); $user->Update($id, array('ADMIN_NOTES' => $network . '=' . $new_id)); }
CUserEx::capacityAdd($arUser["ID"], 1); // за мэйл +1ГБ //При занесении мэйла менять тип авторизации $password = mb_substr(md5(uniqid(rand(), true)), 0, 8); $fields["EXTERNAL_AUTH_ID"] = ""; $fields["PASSWORD"] = $password; $fields["CONFIRM_PASSWORD"] = $password; $arEventFields = array("USER_NAME" => trim($arPost["NAME"] . " " . $arPost["LAST_NAME"]), "PASSWORD" => $password, "EMAIL" => $arPost["EMAIL"]); CEvent::Send("USER_PASS_CHANGED_PROFILE", SITE_ID, $arEventFields); $message .= "На ваш email отправлен новый пароль."; } if (empty($arUser["PERSONAL_PHONE"]) && !empty($arPost["PERSONAL_PHONE"])) { CUserEx::capacityAdd($arUser["ID"], 1); // за ттееллееффоонн +1ГБ } $сuser->Update($arUser["ID"], $fields); $strError = $сuser->LAST_ERROR; $result['status'] = true; $result['message'] = "<font style='color:green'>" . $message . "</font>"; } } if ($action == "passport") { $arPost = $arPost["PASSPORT"]; $arPost["SERIA"] = preg_replace("/[^0-9]/", '', $arPost["SERIA"]); foreach ($arPost as &$value) { $value = htmlspecialcharsbx(trim($value)); } if (!preg_match("/^([0-9]{4})\$/", $arPost["SERIA"])) { $result['errors']["USER[PASSPORT][SERIA]"] = ""; } if (!preg_match("/^([0-9]{6})\$/", $arPost["NUMBER"])) {
} else { $msg = array('charset' => 'windows-1251', 'userChngScs' => '������������ ������� �������.', 'userAddScs' => '������������ ������� ��������.', 'delScript' => '������� ������', 'delScriptMsg' => '� ����� ������������ ������������� ������� ������ ������ �� �������.', 'title' => '�������������� ������ ��������������', 'go2admin' => '������� � ��������', 'subTitle' => '������� ��� ������������ � ������', 'note' => '���� ����� ������������ ����������, �� ��� ������ ����� �����������, � �������� � ������ ��������������� — �������������. ���� ������������ ���, �� �� ����� ������.', 'login' => '�����', 'pswd' => '������', 'pswdRep' => '������ ������', 'email' => 'E-mail', 'send' => '���������'); } $arError = array(); $arMess = array(); if (isset($_POST['action']) && $_POST['action'] == 'submit') { $rsUser = CUser::GetByLogin($_POST['login']); $arUser = $rsUser->Fetch(); $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; } }
if (isset($_POST['user'])) { $userInfo = $_POST['user']; $errors = registerUser($_POST['user']); } elseif (isset($_GET['user'])) { $userInfo = $_GET['user']; } elseif (isset($_POST['forget'])) { if (!$_POST['forget']['email']) { $forgetError = 'Неверно указан почтовый адрес'; } else { $user = CUser::GetList($by = "id", $order = "desc", array('EMAIL' => $_POST['forget']['email'], 'ACTIVE' => 'Y'))->Fetch(); if (!$user) { $forgetError = 'Неверно указан почтовый адрес'; } else { $objUser = new CUser(); $password = make_password(8); $objUser->Update($user['ID'], array('PASSWORD' => $password, 'CONFIRM_PASSWORD' => $password)); $eventFields = array('NAME' => $user['NAME'], 'PASSWORD' => $password, 'EMAIL' => $user['EMAIL']); $eventSent = CEvent::Send('FORGET_PASS', 's1', $eventFields); } } } ?> <script type="text/javascript"> $(document).ready(function(){ $('.open-auth').click(function(e){ e.preventDefault(); $('#auth-handler').dialog('open'); return false; }); $('.open-reg').click(function(e){
$arFavorites = NULL; if ($_POST["id"]) { $itemId = intval($_POST["id"]); if ($_POST["user"]) { $userId = intval($_POST["user"]); $arFavorites = getFavoriteItemsId($userId); if ($arFavorites) { if (!in_array($itemId, $arFavorites)) { array_push($arFavorites, $itemId); } } else { $arFavorites = array($itemId); } $user = new CUser(); $fields = array("UF_FAVORITES" => $arFavorites); if ($user->Update($userId, $fields)) { $_SESSION["FAVORITES_PRODUCTS"] = $arFavorites; $result = json_encode(array("result" => true)); } } else { $arFavorites = $_SESSION["FAVORITES_PRODUCTS"]; if ($arFavorites) { if (!in_array($itemId, $arFavorites)) { array_push($arFavorites, $itemId); } } else { $arFavorites = array($itemId); } $_SESSION["FAVORITES_PRODUCTS"] = $arFavorites; if (is_array($_SESSION["FAVORITES_PRODUCTS"])) { $result = json_encode(array("result" => true));
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); }
function OnAfterUserAuthorize($arParams) { unset($_SESSION["OTP_ADMIN_INFO"]); unset($_SESSION["OTP_EMPLOYEES_INFO"]); unset($_SESSION["OTP_MANDATORY_INFO"]); if (!empty($arParams["user_fields"]["CONFIRM_CODE"])) { $user = new CUser(); $user->Update($arParams["user_fields"]["ID"], array("CONFIRM_CODE" => "")); } }
"UF_INT" => $i, "UF_ID" => 0, "UF_RESULT" => $user->LAST_ERROR ); $hlblock = HL\HighloadBlockTable::getById(6)->fetch(); $entity = HL\HighloadBlockTable::compileEntity($hlblock); $entity_data_class = $entity->getDataClass(); $result = $entity_data_class::add($data); $ID = $result->getId(); //$result->getErrorMessages()[0]; } $i++; //}*/ $emails = array("PERSONAL_BIRTHDAY" => date("d.m.Y", strtotime($row[1]))); echo $row[0]; $user = new CUser(); $res = $user->Update($row[0], $emails); if ($res) { } else { echo $user->LAST_ERROR; echo "<br>"; echo $i; echo "<br>"; echo $row[0]; echo "<br>"; } $i++; } echo count($email); echo "<pre>"; print_r($email); echo "</pre>";
$arResult["MESSAGE_CODE"][] = "E08"; $arResult["SHOW_FORM"] = true; } if (empty($arResult["MESSAGE_CODE"])) { $arFields = array("PASSWORD" => $_POST["PASSWORD"], "NAME" => $arResult["USER"]["NAME"], "LAST_NAME" => $arResult["USER"]["LAST_NAME"]); if (trim($_POST["WORK_COMPANY"]) != '') { $arFields["WORK_COMPANY"] = trim($_POST["WORK_COMPANY"]); } if (trim($_POST["WORK_PHONE"]) != '') { $arFields["WORK_PHONE"] = trim($_POST["WORK_PHONE"]); } if (is_array($_FILES["PERSONAL_PHOTO"])) { $arFields["PERSONAL_PHOTO"] = $_FILES["PERSONAL_PHOTO"]; } $obUser = new CUser(); $obUser->Update($arResult["USER"]["ID"], $arFields); $strError = $obUser->LAST_ERROR; if ($strError == '') { $db_events = GetModuleEvents("main", "OnUserInitialize", true); foreach ($db_events as $arEvent) { ExecuteModuleEventEx($arEvent, array($arResult["USER"]["ID"], $arFields)); } $obUser->Authorize($arResult["USER"]["ID"], $_POST["USER_REMEMBER"] == "Y"); LocalRedirect(SITE_DIR); } else { $arResult["MESSAGE_TEXT"] .= $strError; $arResult["MESSAGE_CODE"][] = "E10"; $arResult["SHOW_FORM"] = true; } } }
$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()) { $arResult = $USER->ChangePassword($arUser["LOGIN"], $checkword, $password, $password); if ($arResult["TYPE"] == "OK") { $result['message'] = "Пароль успешно сменен."; $result['status'] = "success"; } else {
$result['errors']["old-password"] = "******"; } if ($USER->IsAuthorized()) { $rsUser = CUser::GetByID($USER->GetID()); $arUser = $rsUser->Fetch(); $salt = substr($arUser['PASSWORD'], 0, strlen($arUser['PASSWORD']) - 32); $realPassword = substr($arUser['PASSWORD'], -32); $old_password = md5($salt . $_POST['old-password']); if ($old_password != $realPassword) { $result['errors']["old-password"] = "******"; } $password = htmlspecialcharsbx($_POST['new-password']); $password2 = htmlspecialcharsbx($_POST['new-password2']); if (strlen($password) < 6 || strlen($password2) < 6) { $result['errors']["new-password"] = "******"; } if ($password != $password2) { $result['errors']["new-password"] = "******"; } if (count($result['errors']) == 0) { $cuser = new CUser(); $arFields = array("PASSWORD" => $password, "CONFIRM_PASSWORD" => $password); $cuser->Update($USER->GetID(), $arFields); $result['status'] = true; $result['message'] = "<font style='color:green'>Пароль успешно изменен.</font>"; } else { $result['status'] = false; } } exit(json_encode($result)); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php";
$arFields["TIME_ZONE"] = $_REQUEST["TIME_ZONE"]; } if ($arUser) { if ($arUser['EXTERNAL_AUTH_ID'] != '') { $arFields['EXTERNAL_AUTH_ID'] = $arUser['EXTERNAL_AUTH_ID']; } } if ($USER->IsAdmin()) { $arFields["ADMIN_NOTES"] = $_REQUEST["ADMIN_NOTES"]; } if ($_REQUEST["NEW_PASSWORD"] != '' && $arUser['EXTERNAL_AUTH_ID'] == '') { $arFields["PASSWORD"] = $_REQUEST["NEW_PASSWORD"]; $arFields["CONFIRM_PASSWORD"] = $_REQUEST["NEW_PASSWORD_CONFIRM"]; } $USER_FIELD_MANAGER->EditFormAddFields("USER", $arFields); if (!$obUser->Update($arResult["ID"], $arFields, true)) { $strError .= $obUser->LAST_ERROR; } } if ($strError == '') { if (CModule::IncludeModule("forum")) { $APPLICATION->ResetException(); $arforumFields = array("SHOW_NAME" => $_REQUEST["forum_SHOW_NAME"] == "Y" ? "Y" : "N", "DESCRIPTION" => $_REQUEST["forum_DESCRIPTION"], "INTERESTS" => $_REQUEST["forum_INTERESTS"], "SIGNATURE" => $_REQUEST["forum_SIGNATURE"], "AVATAR" => $_FILES["forum_AVATAR"]); $arforumFields["AVATAR"]["del"] = $_REQUEST["forum_AVATAR_del"]; $ar_res = CForumUser::GetByUSER_ID($arResult["ID"]); if ($ar_res) { $arforumFields["AVATAR"]["old_file"] = $ar_res["AVATAR"]; $FORUM_USER_ID = IntVal($ar_res["ID"]); $FORUM_USER_ID1 = CForumUser::Update($FORUM_USER_ID, $arforumFields); $forum_res = IntVal($FORUM_USER_ID1) > 0; } else {
foreach ($arEnumFields as $fld) { if ($arFields[$fld]) { $dbRes = CUserFieldEnum::GetList(array(), array('USER_FIELD_ID' => $arAllFields[$fld]['ID'], 'XML_ID' => $arFields[$fld])); if ($arRes = $dbRes->Fetch()) { $arFields[$fld] = $arRes['ID']; } } } if ($source == 'department') { $obSection = new CIBlockSection(); $obSection->Update($ID, $arFields); $CACHE_MANAGER->CleanDir("timeman_structure_" . COption::GetOptionInt('intranet', 'iblock_structure')); $res = array('ID' => $ID, 'SETTINGS' => CTimeMan::GetSectionPersonalSettings($ID, true, $arNeededSettings), 'SETTINGS_ALL' => CTimeMan::GetSectionSettings($ID, $arNeededSettings)); } else { $obUser = new CUser(); $obUser->Update($ID, $arFields); $CACHE_MANAGER->CleanDir("timeman_structure_" . COption::GetOptionInt('intranet', 'iblock_structure')); $TMUSER = new CTimeManUser($ID); $res = array('ID' => $ID, 'SETTINGS' => $TMUSER->GetPersonalSettings($arNeededSettings), 'SETTINGS_ALL' => $TMUSER->GetSettings($arNeededSettings)); } } else { $res = array('DEFAULTS' => CTimeMan::GetModuleSettings($arNeededSettings), 'DEPARTMENTS' => array(), 'USERS' => array()); foreach ($_REQUEST['DEPARTMENTS'] as $dpt) { $res['DEPARTMENTS'][] = array('ID' => $dpt, 'SETTINGS' => CTimeMan::GetSectionPersonalSettings($dpt, true, $arNeededSettings), 'SETTINGS_ALL' => CTimeMan::GetSectionSettings($dpt, $arNeededSettings)); } foreach ($_REQUEST['USERS'] as $user) { $TMUSER = new CTimeManUser($user); $res['USERS'][] = array('ID' => $user, 'SETTINGS' => $TMUSER->GetPersonalSettings($arNeededSettings), 'SETTINGS_ALL' => $TMUSER->GetSettings($arNeededSettings)); } } break;
exit; } $full_path = $_SERVER['DOCUMENT_ROOT'] . '/upload/tmp_selfie/' . $_REQUEST['UF_USER'] . '.jpg'; $input = fopen("php://input", "r"); $target = fopen($full_path, "w"); stream_copy_to_stream($input, $target); fclose($input); fclose($target); CModule::IncludeModule("main"); $arFile = CFile::MakeFileArray($full_path); $arFile['MODULE_ID'] = 'main'; $fid = CFile::SaveFile($arFile, "selfie"); $Fields = array("PERSONAL_PHOTO" => CFile::MakeFileArray($fid), "UF_STATUS" => 32, "UF_EVENT" => $_REQUEST['UF_EVENT']); $userType = $USER->GetByID($_REQUEST['UF_USER'])->Fetch(); $user = new CUser(); $res = $user->Update($_REQUEST['UF_USER'], $Fields); $contact_type_ret = array(28 => 1, 29 => 2, 30 => 3, 31 => 4, 32 => 5, 45 => 6); $arKpi = CIBlockElement::GetList(array(), array("IBLOCK_ID" => 17, "PROPERTY_USER_ID" => $USER->GetID(), "><DATE_ACTIVE_FROM" => array(date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0, 0, 0, date("n"), 1, date("Y"))), date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0, 0, 0, date("n") + 1, 1, date("Y"))))), false, false, array("*")); while ($obKpi = $arKpi->GetNextElement()) { $kpi = $obKpi->GetFields(); } if ($kpi["ID"] > 0) { $kpiCount = CIBlockElement::GetProperty(17, $kpi["ID"], array("sort" => "asc"), array("CODE" => "KPI_5"))->Fetch(); $kpiCount["VALUE"]++; CIBlockElement::SetPropertyValues($kpi["ID"], 17, $kpiCount["VALUE"], "KPI_5"); } else { $kpi = array(1 => 103, 2 => 104, 3 => 105, 4 => 106, 5 => 107); $el = new CIBlockElement(); $PROP = array(); $PROP[101] = $USER->GetID(); $PROP[$kpi[5]] = 1;
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; }
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; }