- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/componenthelper.php
- Класс: BitrixSocialnetworkComponentHelper
- Вызов: ComponentHelper::getExtranetUserIdList
static function getExtranetUserIdList()
{
static $result = false;
global $CACHE_MANAGER;
if ($result === false)
{
$result = array();
if (!ModuleManager::isModuleInstalled('extranet'))
{
return $result;
}
$ttl = (defined("BX_COMP_MANAGED_CACHE") ? 2592000 : 600);
$cacheId = 'sonet_ex_userid';
$cache = new CPHPCache;
$cacheDir = '/bitrix/sonet/user_ex';
if($cache->initCache($ttl, $cacheId, $cacheDir))
{
$tmpVal = $cache->getVars();
$result = $tmpVal['EX_USER_ID'];
unset($tmpVal);
}
else
{
if (defined("BX_COMP_MANAGED_CACHE"))
{
$CACHE_MANAGER->startTagCache($cacheDir);
}
$filter = array(
'UF_DEPARTMENT_SINGLE' => false
);
$externalAuthIdList = self::checkPredefinedAuthIdList(array('bot', 'email', 'controller', 'sale', 'imconnector'));
if (!empty($externalAuthIdList))
{
$filter['!=EXTERNAL_AUTH_ID'] = $externalAuthIdList;
}
$res = BitrixMainUserTable::getList(array(
'order' => [],
'filter' => $filter,
'select' => array('ID')
));
while($user = $res->fetch())
{
$result[] = $user["ID"];
}
$adminList = [];
$res = BitrixMainUserGroupTable::getList(array(
'order' => [],
'filter' => [
'=GROUP_ID' => 1
],
'select' => [ 'USER_ID' ]
));
while($relationFields = $res->fetch())
{
$adminList[] = $relationFields["USER_ID"];
}
$result = array_diff($result, $adminList);
if (defined("BX_COMP_MANAGED_CACHE"))
{
$CACHE_MANAGER->registerTag('sonet_user2group');
$CACHE_MANAGER->registerTag('sonet_extranet_user_list');
$CACHE_MANAGER->endTagCache();
}
if($cache->startDataCache())
{
$cache->endDataCache(array(
'EX_USER_ID' => $result
));
}
}
}
return $result;
}