Example #1
1
 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"]));
             }
         }
     }
 }
Example #2
0
 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;
 }
Example #3
0
    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);
            }
        }

    }
Example #4
0
 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;
     }
 }
Example #5
0
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;
}
Example #6
0
 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);
 }
Example #7
0
 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;
 }
Example #8
0
 /**
  * Сохраняет пользователя
  * @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;
 }
Example #9
0
		{
			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;
Example #10
0
 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;
 }
Example #11
0
            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);
 }
Example #13
0
 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);
 }
Example #14
0
 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;
 }
Example #15
0
    /**
     * функция перед добавлениемредактированием элемента в инфоблок
     * @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="Ваш логин и пароль были высланы ранее при регистрации данного аккаунта";
                }
            }

        }
    }
Example #16
0
 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');
         }
     }
 }
Example #17
0
 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;
 }
Example #18
0
            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/>";
        }
    }
}
Example #19
0
 //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;
Example #20
0
 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;
 }
Example #21
0
 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;
 }
Example #22
0
    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"));
Example #23
0
         $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");
 }
Example #24
0
 /**
  * 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;
 }
Example #25
0
 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;
 }
Example #26
0
 $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);
Example #27
0
 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;
 }
Example #28
0
         }
     } 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"]);
Example #29
0
         $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__);
    }