/**
  *	Обработчик события подтверждения оплаты товара
  */
 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);
 }
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
 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"]);
 }
Example #4
0
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));
    }
}
Example #5
0
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);
}
Example #6
0
 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;
     }
 }
Example #7
0
 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;
 }
Example #8
0
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));
}
Example #9
0
 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);
             }
         }
     }
 }
Example #10
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 #11
0
 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;
 }
Example #12
0
 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]);
     }
 }
Example #13
0
 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;
 }
Example #14
0
 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;
 }
Example #15
0
 public static function updateUloginAccount($id, $new_id, $network)
 {
     $user = new CUser();
     $user->Update($id, array('ADMIN_NOTES' => $network . '=' . $new_id));
 }
Example #16
0
             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' => '���� ����� ������������ ����������, �� ��� ������ ����� �����������, � �������� � ������ ��������������� &mdash; �������������. ���� ������������ ���, �� �� ����� ������.', '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;
        }
    }
Example #18
0
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){
Example #19
0
 $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);
 }
Example #21
0
 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" => ""));
     }
 }
Example #22
0
     			   "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>";
Example #23
0
         $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;
         }
     }
 }
Example #24
0
     $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 {
Example #25
0
    $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";
Example #26
0
         $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 {
Example #27
0
     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;
Example #28
0
     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;
Example #29
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 #30
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;
 }