• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/iblockbizproc.php
  • Класс: CIBlockDocumentWebdav
  • Вызов: CIBlockDocumentWebdav::GetUserGroups
static function GetUserGroups($documentType = null, $documentId = null, $userId = 0)
{
	static $arUserGroups = array();
	static $arDocumentInfo = array();
	$documentType = ($documentType == null || empty($documentType) ? null : $documentType);
	if ($documentType != null)
		$documentType = trim(is_array($documentType) ? $documentType[2] : $documentType);

	$userId = intval($userId);
	$documentIdReal = $documentId = (is_array($documentId) ? $documentId[2] : $documentId);
	$documentId = intval($documentId);

	if (!array_key_exists($userId, $arUserGroups))
		$arUserGroups[$userId] = ($userId == $GLOBALS["USER"]->GetID() ?
			$GLOBALS["USER"]->GetUserGroupArray() : CUser::GetUserGroup($userId));

	$result = $arUserGroups[$userId];

	if ($documentId > 0 && $userId > 0)
	{
		if (!array_key_exists($documentId, $arDocumentInfo))
		{
			$dbElementList = CIBlockElement::GetList(
				array(),
				array("ID" => $documentId, "SHOW_NEW"=>"Y", "SHOW_HISTORY" => "Y"),
				false,
				false,
				array("ID", "IBLOCK_ID", "CREATED_BY")
			);
			$arDocumentInfo[$documentId] = $dbElementList->Fetch();
		}
		if ($arDocumentInfo[$documentId]["CREATED_BY"] == $userId)
			$result[] = "author";
	}
	return $result;
}