• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/access.php
  • Класс: CAccess
  • Вызов: CAccess::GetUserCodesArray
static function GetUserCodesArray($USER_ID, $arFilter = [])
{
	global $CACHE_MANAGER;

	$USER_ID = intval($USER_ID);

	$access = new CAccess();
	$access->UpdateCodes(['USER_ID' => $USER_ID]);

	if (empty($arFilter) && isset(static::$userCodes[$USER_ID]))
	{
		return static::$userCodes[$USER_ID];
	}

	$useCache = (empty($arFilter) && CACHED_b_user_access_check !== false);
	$cacheId = static::GetCodesCacheId($USER_ID);

	if ($useCache && $CACHE_MANAGER->Read(CACHED_b_user_access_check, $cacheId, static::CACHE_DIR))
	{
		$arCodes = $CACHE_MANAGER->Get($cacheId);
	}
	else
	{
		$arCodes = [];
		$res = CAccess::GetUserCodes($USER_ID, $arFilter, false);
		while ($arRes = $res->Fetch())
		{
			$arCodes[] = $arRes["ACCESS_CODE"];
		}

		if ($useCache)
		{
			$CACHE_MANAGER->Set($cacheId, $arCodes);
		}
	}

	if (empty($arFilter))
	{
		static::$userCodes[$USER_ID] = $arCodes;
	}

	return $arCodes;
}