• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/socialnetworkhandlers.php
  • Класс: BitrixDiskSocialnetworkHandlers
  • Вызов: SocialnetworkHandlers::onSocNetUserToGroupAdd
static function onSocNetUserToGroupAdd($id, $fields)
{
	if(
		isset($fields['ROLE']) && isset($fields['USER_ID']) &&
		(
			$fields['ROLE'] == SONET_ROLES_USER ||
			$fields['ROLE'] == SONET_ROLES_MODERATOR ||
			$fields['ROLE'] == SONET_ROLES_OWNER
		)

	)
	{
		if(!(isset($fields['GROUP_ID'])))
		{
			$query = CSocNetUserToGroup::getList(array(), array('ID' => $id), false, false, array('GROUP_ID', 'INITIATED_BY_USER_ID'));
			if($query)
			{
				$row = $query->fetch();
				if($row)
				{
					$groupId = $row['GROUP_ID'];
				}
			}
		}
		else
		{
			$groupId = $fields['GROUP_ID'];
		}


		if(!empty($groupId) && CSocNetFeatures::isActiveFeature(SONET_ENTITY_GROUP, $groupId, 'files'))
		{
			$storage = Driver::getInstance()->getStorageByGroupId($groupId);
			if(!$storage)
			{
				return;
			}

			$rootObject = $storage->getRootObject();
			if(!$rootObject->canRead($storage->getSecurityContext($fields['USER_ID'])))
			{
				return;
			}

			$errorCollection = new ErrorCollection();
			$createdBy = empty($fields['INITIATED_BY_USER_ID']) ?
				$fields['USER_ID'] : $fields['INITIATED_BY_USER_ID'];

			Sharing::connectStorageToUserStorage($createdBy, $fields['USER_ID'], $storage, $errorCollection);
		}
	}
}