• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/iblocksocnet.php
  • Класс: CIBlockWebdavSocnet
  • Вызов: CIBlockWebdavSocnet::GetUserMaxPermission
static function GetUserMaxPermission($ownerType, $ownerId, $userId, $iblockId)
{
	$arParameters = array(
		"PERMISSION" => "D",
		"CHECK_CREATOR" => "N");
	$ownerId = intval($ownerId);
	$userId = intval($userId);
	$iblockId = intval($iblockId);

	if (!in_array($ownerType, array("user", "group")) || $ownerId <= 0 || $iblockId <= 0):
		return $arParameters;
	elseif ($GLOBALS["USER"]->IsAuthorized() && $GLOBALS["USER"]->GetID() == $userId && CSocNetUser::IsCurrentUserModuleAdmin()):
		$arParameters["PERMISSION"] = "X";
		return $arParameters;
	endif;

	$bBizproc = false;
	if (CModule::IncludeModule("bizproc") && CIBlock::GetArrayByID($iblockId, "BIZPROC") != "N"):
		$bBizproc = true;
	endif;

	$arParameters["PERMISSION"] = "X";
	/*
	if ($ownerType == "user"):
		if ($userId == $ownerId):
			$arParameters["PERMISSION"] = "X";
		elseif (CSocNetFeaturesPerms::CanPerformOperation(
			$userId,
			SONET_ENTITY_USER,
			$ownerId,
			"files",
			"write",
			CSocNetUser::IsCurrentUserModuleAdmin())):
			$arParameters["PERMISSION"]	= "W";
		elseif ($bBizproc && CSocNetFeaturesPerms::CanPerformOperation(
			$userId,
			SONET_ENTITY_USER,
			$ownerId,
			"files",
			"bizproc",
			CSocNetUser::IsCurrentUserModuleAdmin())):
			$arParameters["PERMISSION"]	= "U";
		elseif (CSocNetFeaturesPerms::CanPerformOperation(
			$userId,
			SONET_ENTITY_USER,
			$ownerId,
			"files",
			"write_limited",
			CSocNetUser::IsCurrentUserModuleAdmin())):
			$arParameters["PERMISSION"]	= "W";
			$arParameters["CHECK_CREATOR"] = "Y";
		elseif (CSocNetFeaturesPerms::CanPerformOperation(
			$userId,
			SONET_ENTITY_USER,
			$ownerId,
			"files",
			"view",
			CSocNetUser::IsCurrentUserModuleAdmin())):
			$arParameters["PERMISSION"]	= "R";
		endif;
	elseif ($ownerType == "group"):
		if (CSocNetUserToGroup::GetUserRole($userId, $ownerId) == SONET_ROLES_OWNER):
			$arParameters["PERMISSION"]	= "X";
		elseif (CSocNetFeaturesPerms::CanPerformOperation(
			$userId,
			SONET_ENTITY_GROUP,
			$ownerId,
			"files",
			"write",
			CSocNetUser::IsCurrentUserModuleAdmin())):
			$arParameters["PERMISSION"]	= "W";
		elseif ($bBizproc && CSocNetFeaturesPerms::CanPerformOperation(
			$userId,
			SONET_ENTITY_GROUP,
			$ownerId,
			"files",
			"bizproc",
			CSocNetUser::IsCurrentUserModuleAdmin())):
			$arParameters["PERMISSION"]	= "U";
		elseif (CSocNetFeaturesPerms::CanPerformOperation(
			$userId,
			SONET_ENTITY_GROUP,
			$ownerId,
			"files",
			"write_limited",
			CSocNetUser::IsCurrentUserModuleAdmin())):
			$arParameters["PERMISSION"]	= "W";
			$arParameters["CHECK_CREATOR"] = "Y";
		elseif (CSocNetFeaturesPerms::CanPerformOperation(
			$userId,
			SONET_ENTITY_GROUP,
			$ownerId,
			"files",
			"view",
			CSocNetUser::IsCurrentUserModuleAdmin())):
			$arParameters["PERMISSION"]	= "R";
		endif;
	endif;
	 */
	return $arParameters;
}