• Модуль: clouds
  • Путь к файлу: ~/bitrix/modules/clouds/classes/general/security_service_hotbox.php
  • Класс: CCloudSecurityService_HotBox
  • Вызов: CCloudSecurityService_HotBox::ListPrefixKeys
function ListPrefixKeys($namePrefix = '')
{
	$result = array();
	$marker = '';
	while(true)
	{
		$response = $this->service->SendRequest(
			$this->arBucket["SETTINGS"],
			'GET',
			$this->arBucket["BUCKET"],
			'/',
			'?pak=&max-keys=50&marker='.urlencode($marker).'&name-prefix='.urlencode($namePrefix)
		);
		if (
			$this->service->GetLastRequestStatus() == 200
			&& is_array($response)
			&& isset($response["ListPrefixKeysResult"])
			&& is_array($response["ListPrefixKeysResult"])
			&& isset($response["ListPrefixKeysResult"]["#"])
			&& is_array($response["ListPrefixKeysResult"]["#"])
		)
		{
			$lastKey = null;
			if(
				isset($response["ListPrefixKeysResult"]["#"]["Contents"])
				&& is_array($response["ListPrefixKeysResult"]["#"]["Contents"])
			)
			{
				foreach($response["ListPrefixKeysResult"]["#"]["Contents"] as $a)
				{
					$last_key = $user_name = $a["#"]["UserName"][0]["#"];
					$result[$user_name] = $a["#"]["Prefix"][0]["#"];
				}
			}

			if(
				isset($response["ListPrefixKeysResult"]["#"]["IsTruncated"])
				&& is_array($response["ListPrefixKeysResult"]["#"]["IsTruncated"])
				&& $response["ListPrefixKeysResult"]["#"]["IsTruncated"][0]["#"] === "true"
			)
			{
				if (isset($last_key))
				{
					$marker = $last_key;
					continue;
				}
			}
		}
		break;
	}
	return $result;
}