• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/security/attributesprovider.php
  • Класс: Bitrix\Crm\Security\AttributesProvider
  • Вызов: AttributesProvider::getUserAccessCodes
protected function getUserAccessCodes(): array
{
	$userId = $this->getUserId();

	$cache = \Bitrix\Main\Application::getInstance()->getCache();

	$cacheId = 'crm_user_access_codes_' . $userId . '_' . md5(serialize($this->getUserAttributesCodes()));

	if ($cache->initCache(self::CACHE_TIME, $cacheId, '/crm/user_access_codes/'))
	{
		$result = $cache->getVars();
	}
	else
	{
		$cache->startDataCache();
		$result = [];
		$userAccessCodes = \CAccess::GetUserCodes($this->getUserId());
		while ($accessCode = $userAccessCodes->Fetch())
		{
			// imchat generates too much useless codes. Skip them:
			if ($accessCode['PROVIDER_ID'] !== 'imchat')
			{
				$result[] = $accessCode;
			}
		}
		$cache->endDataCache($result);
	}

	return $result;
}