Example #1
1
 /**
  * Return array with events list and users
  *
  * @param int $iblockId Info-block ID
  * @param int $elementId Info-block element ID
  * @param int $limit Limit returned rows
  * @return array (EVENTS => array(), USERS => array())
  */
 public static function getEventsLog($iblockId, $elementId, $limit = 0)
 {
     $arEvents = array();
     $arUsersId = array();
     $arUsers = array();
     $limit = intval($limit);
     if ($limit > 0) {
         $rsEventsNav = array('nTopCount' => $limit);
     } else {
         $rsEventsNav = false;
     }
     $rsEvents = \CEventLog::GetList(array('ID' => 'DESC'), array('MODULE_ID' => 'iblock', 'ITEM_ID' => $iblockId), $rsEventsNav);
     while ($arEvent = $rsEvents->Fetch()) {
         $arEventDesc = unserialize($arEvent['DESCRIPTION']);
         if ($arEventDesc['ID'] === $elementId) {
             $arEvents[] = array_merge($arEvent, array('DESCRIPTION' => $arEventDesc));
             $arUsersId[] = $arEventDesc['USER_ID'];
         }
     }
     if (!empty($arUsersId)) {
         $rsUsers = \CUser::GetList($by = 'id', $order = 'asc', array('ID' => $arUsersId), array('FIELDS' => array('ID', 'LOGIN', 'NAME', 'LAST_NAME')));
         while ($arUser = $rsUsers->Fetch()) {
             $arUsers[$arUser['ID']] = $arUser;
         }
     }
     return array('EVENTS' => $arEvents, 'USERS' => $arUsers);
 }
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 getUserByProviderAndId($providerName, $userProfile)
 {
     CModule::IncludeModule("iblock");
     $userID = false;
     //Проверим привязан ли к какому нибудь пользователю
     $arrFilter = array("IBLOCK_ID" => USER_SOCIAL_IB, "ACTIVE" => "Y", "PROPERTY_SOCIAL_PROVIDER" => $providerName, "PROPERTY_SOCIAL_ID" => $userProfile["identifier"]);
     $arSelect = array("PROPERTY_USER_ID");
     $rsRes = \CIBlockElement::GetList($arOrder, $arrFilter, false, false, $arSelect);
     if ($arItem = $rsRes->GetNext()) {
         $userID = intval($arItem["PROPERTY_USER_ID_VALUE"]);
     }
     $email = "";
     if (!empty($userProfile["email"])) {
         $email = $userProfile["email"];
     } else {
         if (!empty($userProfile["emailVerified"])) {
             $email = $userProfile["emailVerified"];
         }
     }
     //Проверяем есть ли пользователь с таким мэйлом
     if (!$userID && !empty($email)) {
         $dbUsers = CUser::GetList($by = "EMAIL", $order = "desc", array("=EMAIL" => $email));
         while ($arUser = $dbUsers->Fetch()) {
             $userID = $arUser["ID"];
             self::connectToUser($userID, $providerName, $userProfile);
             self::updateUser($userID, $userProfile);
         }
     }
     return $userID;
 }
Example #4
0
 static function GetJIdByUserId($arUserID, $domain = "")
 {
     if (is_array($arUserID) && count($arUserID) > 0) {
         foreach ($arUserID as $key => $ID) {
             $ID = intval($ID);
             if ($ID > 0) {
                 $arUserID[$key] = $ID;
             } else {
                 unset($arUserID[$key]);
             }
         }
     } else {
         return false;
     }
     $userID = implode(' | ', $arUserID);
     if (strlen($userID) == 0) {
         return false;
     }
     $arUserJID = array();
     $dbUsers = CUser::GetList($by = "ID", $order = "desc", array("ID" => $userID, "!UF_DEPARTMENT" => false), array('FIELDS' => array('ID', 'LOGIN')));
     while ($arUser = $dbUsers->Fetch()) {
         $arUserJID[$arUser['ID']] = CXMPPUtility::GetJId($arUser, $domain);
     }
     if (count($arUserJID) == 0) {
         return false;
     }
     return $arUserJID;
 }
Example #5
0
 /**
  * Если включили бесплатный канал, активируем для всех пользователей подписку.
  * 
  * @return object 
  */
 public static function OnBeforeUpdate(Entity\Event $event)
 {
     $result = new Entity\EventResult();
     $primary = $event->getParameter("id");
     $data = $event->getParameter("fields");
     $res = self::getById($primary);
     $arChannel = $res->fetch();
     $price = floatval($arChannel["UF_PRICE_H24"]);
     if ($data["UF_ACTIVE"] && !$arChannel["UF_ACTIVE"] && $price == 0) {
         //Найдем пользователей, для кого эта подписка была включена
         $userIds = array();
         $result = SubscribeTable::getList(array('filter' => array("=UF_CHANNEL_ID" => $data["ID"]), 'select' => array("ID", "UF_USER_ID")));
         while ($arSub = $result->fetch()) {
             $userIds[$arSub["UF_USER_ID"]] = $arSub["ID"];
         }
         $CSubscribe = new CSubscribe("CHANNEL");
         $dbUsers = \CUser::GetList($by = "EMAIL", $order = "desc", array("ACTIVE" => "Y"));
         while ($arUser = $dbUsers->Fetch()) {
             if (!array_key_exists($arUser["ID"], $userIds)) {
                 $CSubscribe->setUserSubscribe($data["ID"], $arUser["ID"]);
             } else {
                 $sub_id = $userIds[$arUser["ID"]];
                 $CSubscribe->updateUserSubscribe($sub_id, array("UF_ACTIVE" => 1));
             }
         }
     }
     return $result;
 }
Example #6
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 #7
0
    function MULChangeOnlineStatus($USER_ID = false, $HTML_ID = false)
    {
        static $arUserList, $arUserListID, $arUserListHTML_ID;
        static $bNotFirstCall;
        if (!$bNotFirstCall) {
            $GLOBALS["APPLICATION"]->AddBufferContent("MULChangeOnlineStatus");
            $bNotFirstCall = true;
        }
        if (intval($USER_ID) > 0) {
            if (!$HTML_ID) {
                $HTML_ID = "main_" . $USER_ID;
            }
            $arUserListID[] = $USER_ID;
            $arUserListHTML_ID[] = "'" . $HTML_ID . "'";
            $arUserList[] = array("USER_ID" => $USER_ID, "HTML_ID" => $HTML_ID);
        } else {
            $arUserListIDUnique = array_unique($arUserListID);
            $strUserListID = implode("|", $arUserListIDUnique);
            $rsUser = CUser::GetList($by = "id", $order = "desc", array("ID" => $strUserListID));
            $arUserListOnlineHTML_ID = array();
            while ($arUser = $rsUser->Fetch()) {
                if (time() - intval(MakeTimeStamp($arUser["LAST_ACTIVITY_DATE"], "YYYY-MM-DD HH-MI-SS")) < 120) {
                    foreach ($arUserList as $arTmp) {
                        if ($arUser["ID"] == $arTmp["USER_ID"]) {
                            $arUserListOnlineHTML_ID[] = "'" . $arTmp["HTML_ID"] . "'";
                        }
                    }
                }
            }
            return '<script type="text/javascript">

			BX.ready(function() {
				var arMULUserList = [' . implode(",", $arUserListHTML_ID) . '];
				var arMULUserListOnline = [' . implode(",", $arUserListOnlineHTML_ID) . '];

				for(var i=0; i<arMULUserList.length; i++)
				{
					var elOnline = document.getElementById(arMULUserList[i]);
					if(elOnline)
					{
						if (BX.util.in_array(arMULUserList[i], arMULUserListOnline))
						{
							elOnline.className = "bx-user-info-online";
							elOnline.title = "' . GetMessageJS("MAIN_UL_ONLINE") . '";
						}
						else
						{
							elOnline.className = "bx-user-info-offline";
							elOnline.title = "";
						}

					}

				}
			});
			</script>';
        }
    }
Example #8
0
 protected function getStartedByPhoto($userId)
 {
     $iterator = \CUser::GetList($by = 'id', $order = 'asc', array('ID' => $userId), array('FIELDS' => array('PERSONAL_PHOTO')));
     $startedUser = $iterator->fetch();
     if ($startedUser) {
         return \CFile::ResizeImageGet($startedUser['PERSONAL_PHOTO'], array('width' => 58, 'height' => 58), \BX_RESIZE_IMAGE_EXACT, false);
     }
     return null;
 }
Example #9
0
 public static function getUsersId()
 {
     $cUser = new CUser();
     $sort_by = "ID";
     $sort_ord = "ASC";
     $arFilter = array("ACTIVE" => 'Y');
     $dbUsers = $cUser->GetList($sort_by, $sort_ord, $arFilter);
     $dbUsers->NavStart(8);
     return $dbUsers;
 }
Example #10
0
 private static function FindUserIDByEmail($email)
 {
     $email = trim(strval($email));
     if ($email === '') {
         return 0;
     }
     $dbUsers = CUser::GetList($by = 'ID', $order = 'ASC', array('=EMAIL' => $email), array('FIELDS' => array('ID'), 'NAV_PARAMS' => array('nTopCount' => 1)));
     $arUser = $dbUsers ? $dbUsers->Fetch() : null;
     return $arUser ? intval($arUser['ID']) : 0;
 }
Example #11
0
 protected function getFieldHtml($arProperty)
 {
     $rsElement = CIBlockElement::GetByID(intval($_REQUEST['ID']));
     $arResult['ELEMENT'] = $rsElement->Fetch();
     $rsUsers = \CUser::GetList($by = 'id', $order = 'asc', array('ID' => $arResult['ELEMENT']['MODIFIED_BY'] . ' | ' . $arResult['ELEMENT']['CREATED_BY']), array('FIELDS' => array('ID', 'LOGIN', 'NAME', 'LAST_NAME')));
     while ($arUser = $rsUsers->Fetch()) {
         $arResult['USERS'][$arUser['ID']] = $arUser;
     }
     include_once __DIR__ . '/templates/' . basename(__FILE__);
 }
Example #12
0
 protected function getStartedBy($workflowState)
 {
     if ($workflowState['STARTED_BY']) {
         $iterator = CUser::GetList($by = "id", $order = "asc", array('ID' => $workflowState['STARTED_BY']), array('FIELDS' => array('ID', 'PERSONAL_PHOTO', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'LOGIN', 'TITLE')));
         $startedUser = $iterator->fetch();
         if ($startedUser) {
             return $startedUser;
         }
     }
     return false;
 }
Example #13
0
 /**
  * @param string $pLogin
  * @return int
  */
 protected static function getUserIdForLogin($pLogin)
 {
     $selectedFields = array("ID");
     $filter = array("LOGIN_EQUAL_EXACT" => $pLogin, "EXTERNAL_AUTH_ID" => "");
     $dbUser = CUser::GetList($by = 'ID', $order = 'ASC', $filter, array("FIELDS" => $selectedFields));
     $userId = 0;
     if ($dbUser) {
         $userInfo = $dbUser->Fetch();
         $userId = $userInfo["ID"];
     }
     return $userId;
 }
Example #14
0
 function OnBeforeUserLogin($arFields)
 {
     $phone = preg_replace("/[^0-9]/", '', $arFields["LOGIN"]);
     if (\CDev::check_phone($phone)) {
         $filter = array("PERSONAL_PHONE" => $phone);
     } else {
         $filter = array("=EMAIL" => $arFields["LOGIN"]);
     }
     $rsUsers = \CUser::GetList($by = "LAST_NAME", $order = "asc", $filter);
     if ($user = $rsUsers->GetNext()) {
         $arFields["LOGIN"] = $user["LOGIN"];
     }
 }
Example #15
0
 /**
  * Billing by all users at 3-30
  */
 public static function dailyAllUsers()
 {
     global $DB;
     $table = \Hawkart\Megatv\SubscribeTable::getTableName();
     $time_update = "03:30:00";
     $datetime = new \Bitrix\Main\Type\Datetime(date("Y-m-d " . $time_update), 'Y-m-d H:i:s');
     $datetime_next_date = new \Bitrix\Main\Type\Datetime(date('Y-m-d' . $time_update, strtotime('+1 day')), 'Y-m-d H:i:s');
     $datetime_from_db = date("d.m.Y " . $time_update);
     $datetime_to_db = date("d.m.Y " . $time_update, strtotime('+1 day'));
     /**
      * Get all users
      */
     $arUsers = array();
     $arFilter = array("ACTIVE" => "Y");
     $rsUsers = \CUser::GetList($by = "LAST_NAME", $order = "asc", $arFilter);
     while ($arUser = $rsUsers->GetNext()) {
         $arUsers[$arUser["ID"]] = $arUser;
     }
     /**
      * Get all priced subscribe for all users
      */
     $arSubscribeUsers = array();
     $result = \Hawkart\Megatv\SubscribeTable::getList(array('filter' => array("UF_ACTIVE" => 1, ">UF_CHANNEL_ID" => 0, ">UF_CHANNEL.UF_PRICE_H24" => 0, "<=UF_DATETIME_TO" => $datetime), 'select' => array("ID", "PRICE" => "UF_CHANNEL.UF_PRICE_H24", "UF_USER_ID")));
     while ($arSub = $result->fetch()) {
         $arSubscribeUsers[$arSub["UF_USER_ID"]][] = array("ID" => $arSub["ID"], "PRICE" => $arSub["PRICE"]);
     }
     $result = \Hawkart\Megatv\SubscribeTable::getList(array('filter' => array("UF_ACTIVE" => 1, ">UF_SERVICE_ID" => 0, ">UF_SERVICE.UF_PRICE" => 0), 'select' => array("ID", "PRICE" => "UF_SERVICE.UF_PRICE", "UF_USER_ID")));
     while ($arSub = $result->fetch()) {
         $arSubscribeUsers[$arSub["UF_USER_ID"]][] = array("ID" => $arSub["ID"], "PRICE" => $arSub["PRICE"]);
     }
     /**
      * Make transaction for 1 day for all users
      */
     foreach ($arSubscribeUsers as $user_id => $arSubscribes) {
         $daily_price = 0;
         foreach ($arSubscribes as $arSubscribe) {
             $daily_price += $arSubscribe["PRICE"];
         }
         $balance = \CUserEx::getBudget($user_id);
         if ($balance > 0 && $daily_price > 0) {
             \CSaleAccountEx::transaction(-1 * $daily_price, $user_id, "Оплата услуг за " . date('d.m.Y'));
             $strSql = "UPDATE " . $table . " SET UF_DATETIME_TO=curdate() + INTERVAL 1 DAY + INTERVAL 3 HOUR + INTERVAL 30 MINUTE WHERE UF_USER_ID=" . $user_id;
             $res = $DB->Query($strSql, false, $err_mess . __LINE__);
             //Send email to user to add money to budget for 3 days
             if ($balance < $daily_price * 2) {
                 \CEvent::SendImmediate("NOTIFICATION_PAY_AFTER_DAYS", SITE_ID, array("EMAIL_TO" => $arUsers[$user_id]["EMAIL"], "PRICE" => $daily_price * 5));
             }
         }
     }
 }
Example #16
0
 public function getUserName()
 {
     if ($this->userName !== null) {
         return $this->userName;
     }
     if ($this->userID <= 0) {
         return $this->userName = '';
     }
     $dbResult = \CUser::GetList($by = 'id', $order = 'asc', array('ID' => $this->userID), array('FIELDS' => array('ID', 'LOGIN', 'EMAIL', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'TITLE')));
     $fields = is_object($dbResult) ? $dbResult->Fetch() : null;
     if (!is_array($fields)) {
         return $this->userName = '';
     }
     return $this->userName = \CUser::FormatName(Crm\Format\PersonNameFormatter::getFormat(), $fields, false, false);
 }
Example #17
0
 public function Add($email = '', $name = '')
 {
     global $USER;
     if ($USER->isAuthorized()) {
         return $USER->getID();
     } else {
         try {
             $validator = \Ns\Bitrix\Helper::Create('iblock')->useVariant('validator');
         } catch (\Exception $e) {
             prentExpection($e->getMessage());
         }
         $this->user["email"] = $validator->email($email);
         $this->user["name"] = $validator->xss($name);
         if (!$this->user["email"]) {
             $e["ERROR"]["EMAIL"] = "Y";
         }
         if (!$this->user["name"]) {
             $e["ERROR"]["NAME"] = "Y";
         }
         if (is_array($e)) {
             return $e;
         } else {
             $user = \CUser::GetList($by = "ID", $order = "desc", array("EMAIL" => $this->user["email"]));
             if ($user->SelectedRowsCount() > 0) {
                 $this->user = $user->Fetch();
                 \ChromePhp::log($this->user);
                 try {
                     global $APPLICATION;
                     $this->sendEmailToLogin();
                 } catch (\Exception $e) {
                     prentExpection($e->getMessage());
                 }
                 return True;
             } else {
                 $arFields = array("EMAIL" => $this->user["email"], "NAME" => $this->user["name"]);
                 try {
                     return \Ns\Bitrix\Helper::Create('user')->useVariant('crud')->withFields($arFields)->withGroupId(self::NEW_USER_SUBSCRIBE_GROUP)->Add();
                 } catch (CRUDException $e) {
                     prentExpection($e->getMessage());
                 } catch (\Exception $e1) {
                     prentExpection($e1->getMessage());
                 }
             }
         }
     }
 }
Example #18
0
 function OnBeforeUserLogin($arParams)
 {
     /**
      * @global CMain $APPLICATION
      * @global CDataBase $DB
      */
     global $DB, $APPLICATION;
     $rsUser = CUser::GetList($by, $order, array("LOGIN_EQUAL_EXACT" => $arParams["LOGIN"]));
     while ($arUser = $rsUser->Fetch()) {
         if (!$arUser["EXTERNAL_AUTH_ID"]) {
             break;
         }
     }
     if ($arUser) {
         $USER_ID = intval($arUser["ID"]);
         $rsKey = $DB->Query("SELECT * from b_sec_user WHERE ACTIVE='Y' AND USER_ID = " . $USER_ID);
         $arKey = $rsKey->Fetch();
         if ($arKey) {
             $bSuccess = false;
             if (preg_match("/(\\d{6})\$/", $arParams["PASSWORD"], $arMatch)) {
                 $bin_secret = pack('H*', $arKey["SECRET"]);
                 $sync = $arMatch[1];
                 $cnt = intval($arKey["COUNTER"]) + 1;
                 $window = COption::GetOptionInt("security", "hotp_user_window");
                 $i = 0;
                 while ($i < $window) {
                     if (CSecurityUser::HOTP($bin_secret, $cnt) == $sync) {
                         $bSuccess = true;
                         $arParams["PASSWORD"] = substr($arParams["PASSWORD"], 0, -6);
                         $DB->Query("UPDATE b_sec_user SET COUNTER = " . $cnt . " WHERE USER_ID = " . $USER_ID);
                         break;
                     }
                     $cnt++;
                     $i++;
                 }
             }
             if (!$bSuccess) {
                 $APPLICATION->ThrowException(GetMessage("WRONG_LOGIN"));
                 return false;
             }
         }
     }
     return true;
 }
Example #19
0
 public function up()
 {
     global $APPLICATION;
     $arHlData = $this->arHlData;
     \Bitrix\Main\Loader::includeModule("highloadblock");
     $arHlblock = \Bitrix\Highloadblock\HighloadBlockTable::getList(array('filter' => array('TABLE_NAME' => \Hawkart\Megatv\PeopleTable::getTableName())))->fetch();
     if ($arHlblock) {
         $oUserTypeEntity = new \CUserTypeEntity();
         $sort = 500;
         foreach ($arHlData['FIELDS'] as $fieldName => $fieldValue) {
             $aUserField = array('ENTITY_ID' => 'HLBLOCK_' . $arHlblock["ID"], 'FIELD_NAME' => $fieldName, 'USER_TYPE_ID' => $fieldValue[1], 'SORT' => $sort, 'MULTIPLE' => 'N', 'MANDATORY' => $fieldValue[0], 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'N', 'SETTINGS' => array());
             if (isset($fieldValue[2]) && is_array($fieldValue[2])) {
                 $aUserField = array_merge($aUserField, $fieldValue[2]);
             }
             $resProperty = \CUserTypeEntity::GetList(array(), array('ENTITY_ID' => $aUserField['ENTITY_ID'], 'FIELD_NAME' => $aUserField['FIELD_NAME']));
             if ($aUserHasField = $resProperty->Fetch()) {
                 $idUserTypeProp = $aUserHasField['ID'];
                 if ($oUserTypeEntity->Update($idUserTypeProp, $aUserField)) {
                     $this->out('Обновлено свойство - ' . $fieldValue[2]['EDIT_FORM_LABEL']['ru']);
                 } else {
                     if ($ex = $APPLICATION->GetException()) {
                         $this->outError('Ошибка - ' . $ex->GetString());
                     }
                 }
             } else {
                 if ($idUserTypeProp = $oUserTypeEntity->Add($aUserField)) {
                     $this->out('Добавлено новое свойство - ' . $fieldValue[2]['EDIT_FORM_LABEL']['ru']);
                 } else {
                     if ($ex = $APPLICATION->GetException()) {
                         $this->outError('Ошибка - ' . $ex->GetString());
                     }
                 }
             }
             $sort += 100;
         }
         $dbUsers = \CUser::GetList($by = "EMAIL", $order = "desc", array("UF_SOTAL_LOGIN" => false));
         while ($arUser = $dbUsers->Fetch()) {
             \CUserEx::generateDataSotal($arUser["ID"]);
         }
         $this->outSuccess('Все готово на %d%%', 100);
     }
 }
Example #20
0
 public static function getUsersArrByIds($usersIds)
 {
     if (!$usersIds) {
         $usersIds = array(CUser::GetID());
     }
     if (!is_array($usersIds)) {
         $usersIds = array($usersIds);
     }
     if (!count($usersIds)) {
         return;
     }
     $usersIds = array_unique($usersIds);
     $otherUsersIds = array();
     foreach ($usersIds as $id) {
         $id = intval($id);
         if (!$id) {
             continue;
         }
         if (isset(self::$usersCache[$id])) {
             $users[$id] = self::$usersCache[$id];
         } else {
             $otherUsersIds[] = $id;
         }
     }
     if (count($otherUsersIds)) {
         $rsUsers = CUser::GetList($by = "NAME", $order = "ASCS", array('ACTIVE' => 'Y', 'ID' => implode(' | ', $otherUsersIds)), array('FIELDS' => array('ID', 'NAME', 'LOGIN', 'LAST_NAME', 'PERSONAL_PHOTO', 'EMAIL', 'IS_ONLINE')));
         while ($arUser = $rsUsers->Fetch()) {
             if ($arUser['PERSONAL_PHOTO']) {
                 $arimg = CFile::ResizeImageGet($arUser['PERSONAL_PHOTO'], array('width' => 100, 'height' => 100), BX_RESIZE_IMAGE_EXACT, true);
                 $src = $arimg['src'];
             } else {
                 $src = self::$defaultUserPicture;
             }
             $arUser['PERSONAL_PHOTO'] = $src;
             $arUser['FULL_NAME'] = $arUser['NAME'] . ' ' . $arUser['LAST_NAME'];
             self::$usersCache[$arUser['ID']] = $arUser;
             $users[$arUser['ID']] = $arUser;
         }
     }
     return $users;
 }
Example #21
0
 protected static function prepareUserNames(array $userIDs)
 {
     if (empty($userIDs)) {
         return array();
     }
     $results = array();
     foreach ($userIDs as $k => $v) {
         if (isset(self::$userNames[$v])) {
             $results[$v] = self::$userNames[$v];
             unset($userIDs[$v]);
         }
     }
     if (!empty($userIDs)) {
         $dbResult = \CUser::GetList($by = 'ID', $order = 'ASC', array('ID' => implode('||', $userIDs)), array('FIELDS' => array('ID', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'LOGIN', 'TITLE')));
         $format = \CSite::GetNameFormat(false);
         while ($user = $dbResult->Fetch()) {
             $userID = (int) $user['ID'];
             $results[$userID] = \CUser::FormatName($format, $user, true, false);
         }
     }
     return $results;
 }
Example #22
0
 protected function processActionGetListAdmin()
 {
     $this->checkRequiredPostParams(array('iblockId'));
     if ($this->errorCollection->hasErrors()) {
         $this->sendJsonErrorResponse();
     }
     $this->iblockId = intval($this->request->getPost('iblockId'));
     $this->iblockTypeId = COption::GetOptionString("lists", "livefeed_iblock_type_id");
     $this->checkPermissionElement();
     if ($this->errorCollection->hasErrors()) {
         $this->sendJsonErrorResponse();
     }
     $rightObject = new CIBlockRights($this->iblockId);
     $rights = $rightObject->getRights();
     $rightsList = $rightObject->getRightsList(false);
     $idRight = array_search('iblock_full', $rightsList);
     $listUser = array();
     $nameTemplate = CSite::GetNameFormat(false);
     foreach ($rights as $right) {
         $res = strpos($right['GROUP_CODE'], 'U');
         if ($right['TASK_ID'] == $idRight && $res === 0) {
             $userId = substr($right['GROUP_CODE'], 1);
             $users = CUser::GetList($by = "id", $order = "asc", array('ID' => $userId), array('FIELDS' => array('ID', 'PERSONAL_PHOTO', 'NAME', 'LAST_NAME')));
             $user = $users->fetch();
             $file['src'] = '';
             if ($user) {
                 $file = \CFile::ResizeImageGet($user['PERSONAL_PHOTO'], array('width' => 58, 'height' => 58), \BX_RESIZE_IMAGE_EXACT, false);
             }
             $listUser[$userId]['id'] = $userId;
             $listUser[$userId]['img'] = $file['src'];
             $listUser[$userId]['name'] = CUser::FormatName($nameTemplate, $user, false);
         }
     }
     $users = CUser::getList($b = 'ID', $o = 'ASC', array('GROUPS_ID' => 1, 'ACTIVE' => 'Y'), array('FIELDS' => array('ID', 'PERSONAL_PHOTO', 'NAME', 'LAST_NAME')));
     while ($user = $users->fetch()) {
         $file = \CFile::ResizeImageGet($user['PERSONAL_PHOTO'], array('width' => 58, 'height' => 58), \BX_RESIZE_IMAGE_EXACT, false);
         $listUser[$user['ID']]['id'] = $user['ID'];
         $listUser[$user['ID']]['img'] = $file['src'];
         $listUser[$user['ID']]['name'] = CUser::FormatName($nameTemplate, $user, false);
     }
     $listUser = array_values($listUser);
     $this->sendJsonSuccessResponse(array('listAdmin' => $listUser));
 }
Example #23
0
		);
}

if(!$USER->CanDoOperation('view_all_users'))
{
	$arUserSubordinateGroups = array();
	$arUserGroups = CUser::GetUserGroup($USER->GetID());
	foreach($arUserGroups as $grp)
		$arUserSubordinateGroups = array_merge($arUserSubordinateGroups, CGroup::GetSubordinateGroups($grp));

	$arFilter["CHECK_SUBORDINATE"] = array_unique($arUserSubordinateGroups);
}


$rsData = CUser::GetList($by, $order, $arFilter, array(
	"NAV_PARAMS"=> array("nPageSize"=>CAdminResult::GetNavSize($sTableID)),
));
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();


$lAdmin->NavText($rsData->GetNavPrint(GetMessage("PAGES")));


$lAdmin->AddHeaders(array(
	array("id"=>"ID",				"content"=>"ID", 	"sort"=>"id", "default"=>true),
	array("id"=>"TIMESTAMP_X",		"content"=>GetMessage('TIMESTAMP'), "sort"=>"timestamp_x", "default"=>true),
	array("id"=>"ACTIVE", 			"content"=>GetMessage('ACTIVE'),	"sort"=>"active", "default"=>true),
	array("id"=>"LOGIN", 			"content"=>GetMessage("LOGIN"),  "sort"=>"login", "default"=>true),
	array("id"=>"NAME",				"content"=>GetMessage("NAME"), "sort"=>"name",	"default"=>true),
	array("id"=>"LAST_NAME", 		"content"=>GetMessage("LAST_NAME"),  "sort"=>"last_name", "default"=>true),
Example #24
0
        $groups[$group["ID"]] = $group["NAME"];
    }
}
$arFilter = array("DATE_REGISTER_1" => $date_from, "DATE_REGISTER_2" => $date_to);
$usersObj = CUser::GetList($sort = "id", $direct = "asc", $arFilter, array("SELECT" => array("UF_*"), "FIELDS" => array("*")));
$counter = array();
while ($user = $usersObj->Fetch()) {
    if ($user["UF_USER_PARENT"]) {
        $counter[$user["UF_USER_PARENT"]][] = $user;
    }
}
$table = array();
foreach ($counter as $uid => $joined) {
    $ampUsers = array();
    $arFilter = array("DATE_REGISTER_1" => $date_from, "DATE_REGISTER_2" => $date_to, "UF_USER_PARENT" => $uid);
    $ampUsersObj = CUser::GetList($sort = "id", $direct = "asc", $arFilter, array("SELECT" => array("UF_*")));
    while ($ampUser = $ampUsersObj->Fetch()) {
        $ampUsers[$ampUser["UF_USER_PARENT"]] = $ampUser;
    }
    if (!empty($ampUsers[$uid])) {
        $amp = CUser::GetByID($uid)->Fetch();
        $arName = array($amp["NAME"], $amp["LAST_NAME"]);
        $ampGroupsObj = CUser::GetUserGroupList($amp["ID"]);
        $ampGroups = array();
        while ($ampGroup = $ampGroupsObj->Fetch()) {
            if (array_key_exists($ampGroup["GROUP_ID"], $groups)) {
                $ampGroups[] = $groups[$ampGroup["GROUP_ID"]];
            }
        }
        $arr = array("profile" => "/club/user/{$amp["ID"]}/", "group" => implode("<br />", $ampGroups), "id" => $amp["ID"], "login" => $amp["LOGIN"], "name" => implode(" ", $arName), "list" => $joined, "city" => $amp["PERSONAL_CITY"]);
        $table[] = $arr;
Example #25
0
 if ($structure_iblock_id > 0) {
     $arIBlock = CIBlock::GetArrayByID($structure_iblock_id);
     if ($arIBlock) {
         $arResult["STRUCTURE_PAGE"] = CIBlock::ReplaceDetailURL($arIBlock["LIST_PAGE_URL"], $arIBlock, true);
     }
 }
 $arResult["STRUCTURE_FILTER"] = trim($arParams["STRUCTURE_FILTER"]);
 if (strlen($arResult["STRUCTURE_FILTER"]) <= 0) {
     $arResult["STRUCTURE_FILTER"] = "structure";
 }
 $bSoNet = CModule::IncludeModule('socialnetwork');
 $arDepCache = array();
 $arDepCacheValue = array();
 foreach ($arResult["SEARCH"] as $i => $arItem) {
     if ($arItem["MODULE_ID"] === "intranet" && substr($arItem["ITEM_ID"], 0, 1) === "U") {
         $rsUser = CUser::GetList($by = '', $ord = '', array("ID_EQUAL_EXACT" => substr($arItem["ITEM_ID"], 1)), array('SELECT' => array('UF_*')));
         $arUser = $rsUser->Fetch();
         if ($arUser) {
             if ($arUser['PERSONAL_PHOTO']) {
                 $arImage = CIntranetUtils::InitImage($arUser['PERSONAL_PHOTO'], 100);
                 $arUser['PERSONAL_PHOTO'] = $arImage['IMG'];
             }
             $arDep = array();
             if (is_array($arUser['UF_DEPARTMENT']) && count($arUser['UF_DEPARTMENT']) > 0) {
                 $arNewDep = array_diff($arUser['UF_DEPARTMENT'], $arDepCache);
                 if (count($arNewDep) > 0) {
                     $dbRes = CIBlockSection::GetList(array('SORT' => 'ASC'), array('ID' => $arNewDep));
                     while ($arSect = $dbRes->Fetch()) {
                         $arDepCache[] = $arSect['ID'];
                         $arDepCacheValue[$arSect['ID']] = $arSect['NAME'];
                     }
Example #26
0
		if (isset($userListID[0]))
			unset($userListID[0]);
		if (!empty($userListID))
		{
			$strClearQuantityDate = Option::get('catalog', 'clear_quantity_date');
			$strClearQuantityReservedDate = Option::get('catalog', 'clear_reserved_quantity_date');
			$strClearStoreDate = Option::get('catalog', 'clear_store_date');

			$arUserList = array();
			$strNameFormat = CSite::GetNameFormat(true);

			$byUser = '******';
			$orderUser = '******';
			$rsUsers = CUser::GetList(
				$byUser,
				$orderUser,
				array('ID' => implode(' || ', array_keys($userListID))),
				array('FIELDS' => array('ID', 'LOGIN', 'NAME', 'LAST_NAME', 'SECOND_NAME'))
			);
			while ($arOneUser = $rsUsers->Fetch())
			{
				$arOneUser['ID'] = (int)$arOneUser['ID'];
				$arUserList[$arOneUser['ID']] = '<a href="/bitrix/admin/user_edit.php?lang='.LANGUAGE_ID.'&ID='.$arOneUser['ID'].'">'.CUser::FormatName($strNameFormat, $arOneUser).'</a>';
			}
			if (isset($arUserList[$clearQuantityUser]))
				$strQuantityUser = $arUserList[$clearQuantityUser];
			if (isset($arUserList[$clearQuantityReservedUser]))
				$strQuantityReservedUser = $arUserList[$clearQuantityReservedUser];
			if (isset($arUserList[$clearStoreUser]))
				$strStoreUser = $arUserList[$clearStoreUser];
		}
		$boolStoreExists = false;
Example #27
0
 /**
  * duplicate CIMMail::IsExternalMailAvailable()
  * for performance reasons
  */
 public static function IsExternalMailAvailable()
 {
     global $USER;
     if (!is_object($USER) || !$USER->IsAuthorized()) {
         return false;
     }
     if (!IsModuleInstalled('mail')) {
         return false;
     }
     if (COption::GetOptionString('intranet', 'allow_external_mail', 'Y') != 'Y') {
         return false;
     }
     if (COption::GetOptionString('extranet', 'extranet_site', '') == SITE_ID) {
         return false;
     }
     if (isset($_SESSION['aExtranetUser_' . $USER->GetID()][SITE_ID])) {
         if (!$_SESSION['aExtranetUser_' . $USER->GetID()][SITE_ID]) {
             return false;
         }
     } else {
         if (CModule::IncludeModule('extranet') && !CExtranet::IsIntranetUser()) {
             return false;
         }
     }
     if (!IsModuleInstalled('dav')) {
         return true;
     }
     if (COption::GetOptionString('dav', 'exchange_server', '') == '') {
         return true;
     }
     if (COption::GetOptionString('dav', 'agent_mail', 'N') != 'Y') {
         return true;
     }
     if (COption::GetOptionString('dav', 'exchange_use_login', 'Y') == 'Y') {
         return false;
     }
     if (!CUserOptions::GetOption('global', 'davex_mailbox')) {
         $arUser = CUser::GetList($by = 'ID', $order = 'ASC', array('ID_EQUAL_EXACT' => $USER->GetID()), array('SELECT' => array('UF_BXDAVEX_MAILBOX'), 'FIELDS' => array('ID')))->Fetch();
         CUserOptions::SetOption('global', 'davex_mailbox', empty($arUser['UF_BXDAVEX_MAILBOX']) ? 'N' : 'Y');
     }
     if (CUserOptions::GetOption('global', 'davex_mailbox') == 'Y') {
         return false;
     }
     return true;
 }
Example #28
0
        }
    }
    return $errors;
}
$userInfo = null;
$eventSent = $forgetError = false;
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){
Example #29
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
CUtil::InitJSCore(array('taskQuickPopups'));
$loggedInUserId = (int) $GLOBALS['USER']->GetID();
$loggedInUserFormattedName = '';
$rsUser = CUser::GetList($by = 'ID', $order = 'ASC', array('ID' => $loggedInUserId), array('FIELDS' => array('NAME', 'LAST_NAME', 'SECOND_NAME', 'LOGIN')));
if ($arUser = $rsUser->Fetch()) {
    $loggedInUserFormattedName = CUser::FormatName(CSite::GetNameFormat(false), array('NAME' => $arUser['NAME'], 'LAST_NAME' => $arUser['LAST_NAME'], 'SECOND_NAME' => $arUser['SECOND_NAME'], 'LOGIN' => $arUser['LOGIN']), $bUseLogin = true, $bHtmlSpecialChars = false);
}
ob_start();
?>
	<div class="task-filter-popup" id="task-filter-popup" style="display: block;">
		<div class="task-filter-popup-header">
			<div class="task-filter-popup-name"><?php 
echo GetMessage('TASKS_FILTERV2_CONSTRUCTOR_FILTER_TITLE');
?>
</div>
			<div class="task-filter-popup-inp-wrap">
				<input type="text" value="" id="tasks-filter-name" class="task-filter-popup-inp"
					onkeyup="BX.Tasks.filterV2.engine.setFilterName({},this.value,{renderer : {skipRender: true}});"
					onchange="BX.Tasks.filterV2.engine.setFilterName({},this.value,{renderer : {skipRender: true}});">
			</div>
		</div>
		<div id="task-filter-popup-root-level" class="task-filter-popup-items-wrap task-filter-and"></div>
	</div>
<?php 
$html = ob_get_clean();
$href = '';
Example #30
0
 if (0 < $arDiscount['CREATED_BY']) {
     if (!array_key_exists($arDiscount['CREATED_BY'], $arUserList)) {
         $rsUsers = CUser::GetList($by2 = 'ID', $order2 = 'ASC', array('ID_EQUAL_EXACT' => $arDiscount['CREATED_BY']), array('FIELDS' => array('ID', 'LOGIN', 'NAME', 'LAST_NAME')));
         if ($arOneUser = $rsUsers->Fetch()) {
             $arOneUser['ID'] = intval($arOneUser['ID']);
             $arUserList[$arOneUser['ID']] = CUser::FormatName($strNameFormat, $arOneUser);
         }
     }
     if (isset($arUserList[$arDiscount['CREATED_BY']])) {
         $strCreatedBy = '<a href="/bitrix/admin/user_edit.php?lang=' . LANGUAGE_ID . '&ID=' . $arDiscount['CREATED_BY'] . '">' . $arUserList[$arDiscount['CREATED_BY']] . '</a>';
     }
 }
 $arDiscount['MODIFIED_BY'] = intval($arDiscount['MODIFIED_BY']);
 if (0 < $arDiscount['MODIFIED_BY']) {
     if (!array_key_exists($arDiscount['MODIFIED_BY'], $arUserList)) {
         $rsUsers = CUser::GetList($by2 = 'ID', $order2 = 'ASC', array('ID_EQUAL_EXACT' => $arDiscount['MODIFIED_BY']), array('FIELDS' => array('ID', 'LOGIN', 'NAME', 'LAST_NAME')));
         if ($arOneUser = $rsUsers->Fetch()) {
             $arOneUser['ID'] = intval($arOneUser['ID']);
             $arUserList[$arOneUser['ID']] = CUser::FormatName($strNameFormat, $arOneUser);
         }
     }
     if (isset($arUserList[$arDiscount['MODIFIED_BY']])) {
         $strModifiedBy = '<a href="/bitrix/admin/user_edit.php?lang=' . LANGUAGE_ID . '&ID=' . $arDiscount['MODIFIED_BY'] . '">' . $arUserList[$arDiscount['MODIFIED_BY']] . '</a>';
     }
 }
 $row->AddViewField("CREATED_BY", $strCreatedBy);
 $row->AddViewField("DATE_CREATE", $arDiscount['DATE_CREATE']);
 $row->AddViewField("MODIFIED_BY", $strModifiedBy);
 $row->AddViewField("TIMESTAMP_X", $arDiscount['TIMESTAMP_X']);
 if ($bReadOnly) {
     $row->AddCheckField("ACTIVE", false);