• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/socialnetworkhandlers.php
  • Класс: BitrixDiskSocialnetworkHandlers
  • Вызов: SocialnetworkHandlers::onSocNetFeaturesUpdate
static function onSocNetFeaturesUpdate($id, $fields)
{
	static $updateGroupFilesFeatures = false;

	if(!$updateGroupFilesFeatures && isset($fields['ACTIVE']) && $fields['ACTIVE'] == 'N')
	{

		$features = CSocNetFeatures::getById($id);
		if($features
			&& isset($features['FEATURE'])
			&& $features['FEATURE'] == 'files'
			&& $features['ENTITY_TYPE'] == 'G'
			&& $features['ENTITY_ID']
		)
		{
			$updateGroupFilesFeatures = true;
			$groupId = $features['ENTITY_ID'];

			if(empty($groupId))
			{
				return;
			}

			$storage = Driver::getInstance()->getStorageByGroupId($groupId);
			if(!$storage)
			{
				return;
			}

			$userId = self::getActivityUserId();
			foreach(Sharing::getModelList(array('filter' => array(
					'REAL_OBJECT_ID' => (int)$storage->getRootObjectId(),
					'REAL_STORAGE_ID' => (int)$storage->getId(),
			))) as $sharing)
			{
				$sharing->delete($userId);
			}
			unset($sharing);
		}
	}
	elseif(isset($fields['ACTIVE']) && $fields['ACTIVE'] == 'Y')
	{

		$features = CSocNetFeatures::getById($id);
		if($features
			&& isset($features['FEATURE'])
			&& $features['FEATURE'] == 'files'
			&& $features['ENTITY_TYPE'] == 'G'
			&& $features['ENTITY_ID']
		)
		{
			$groupId = $features['ENTITY_ID'];
			if(!empty($groupId))
			{
				Driver::getInstance()->addGroupStorage($groupId);
			}
		}
	}
}