AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 18.218.17.14
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/bitrix/www/bitrix/components/bitrix/calendar.livefeed.edit/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/components/bitrix/calendar.livefeed.edit/ajax_action.php
<?
define("PUBLIC_AJAX_MODE", true);
define("NO_KEEP_STATISTIC", "Y");
define("NO_AGENT_STATISTIC","Y");
define("NO_AGENT_CHECK", true);
define("DisableEventsCheck", true);

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
header('Content-Type: application/x-javascript; charset='.LANG_CHARSET);

if (check_bitrix_sessid() && CModule::IncludeModule("calendar"))
{
	if (isset($_REQUEST['bx_event_calendar_check_meeting_room']) && $_REQUEST['bx_event_calendar_check_meeting_room'] === 'Y')
	{
		$check = false;
		$settings = CCalendar::GetSettings();
		$from = CCalendar::Date(CCalendar::Timestamp($_REQUEST['from']));
		$to = CCalendar::Date(CCalendar::Timestamp($_REQUEST['to']));
		$loc_new = \Bitrix\Calendar\Rooms\Util::parseLocation(trim($_REQUEST['location']));

		$params = [
			'dateFrom' => $from,
			'dateTo' => $to,
			'regularity' => 'NONE',
			'members' => false,
		];

		$params['RMiblockId'] = $settings['rm_iblock_id'];
		$params['mrid'] = $loc_new['mrid'];
		$params['mrevid_old'] = 0;

		$check = \Bitrix\Calendar\Rooms\IBlockMeetingRoom::checkMeetingRoom($params);

		?><script>top.BXCRES_Check = <?= CUtil::PhpToJSObject($check)?>;</script><?
	}
	elseif (isset($_REQUEST['bx_event_calendar_update_planner']) && $_REQUEST['bx_event_calendar_update_planner'] === 'Y')
	{
		$curUserId = CCalendar::GetCurUserId();
		$result = [
			'entries' => [],
			'accessibility' => []
		];
		$userIds = [];

		if (isset($_REQUEST['codes']) && is_array($_REQUEST['codes']))
		{
			$codes = [];
			foreach($_REQUEST['codes'] as $permCode)
			{
				if($permCode)
					$codes[] = $permCode;
			}

			if(count($codes) > 0)
				$codes[] = 'U'.$curUserId;
			$users = CCalendar::GetDestinationUsers($codes, true);

			foreach($users as $user)
			{
				$userSettings = \Bitrix\Calendar\UserSettings::Get($user['USER_ID']);
				$userIds[] = $user['USER_ID'];
				$result['entries'][] = [
					'type' => 'user',
					'id' => $user['USER_ID'],
					'name' => CCalendar::GetUserName($user),
					'status' => $user['USER_ID'] == $curUserId ? 'h' : '',
					'url' => CCalendar::GetUserUrl($user['USER_ID']),
					'avatar' => CCalendar::GetUserAvatarSrc($user),
					'strictStatus' => $userSettings['denyBusyInvitation']
				];
			}
		}
		elseif(isset($_REQUEST['entries']) && is_array($_REQUEST['entries']))
		{
			foreach($_REQUEST['entries'] as $userId)
			{
				$userIds[] = intval($userId);
			}
		}

		$from = CCalendar::Date(CCalendar::Timestamp($_REQUEST['from']), false);
		$to = CCalendar::Date(CCalendar::Timestamp($_REQUEST['to']), false);

		$accessibility = CCalendar::GetAccessibilityForUsers([
			'users' => $userIds,
			'from' => $from, // date or datetime in UTC
			'to' => $to, // date or datetime in UTC
			'getFromHR' => true
		]);

		$result['accessibility'] = [];
		$deltaOffset = isset($_REQUEST['timezone']) ? (CCalendar::GetTimezoneOffset($_REQUEST['timezone']) - CCalendar::GetCurrentOffsetUTC($curUserId)) : 0;

		foreach($accessibility as $userId => $entries)
		{
			$result['accessibility'][$userId] = [];

			foreach($entries as $entry)
			{
				if (isset($entry['DT_FROM']) && !isset($entry['DATE_FROM']))
				{
					if ($deltaOffset != 0)
					{
						$entry['DT_FROM'] = CCalendar::Date(CCalendar::Timestamp($entry['DT_FROM']) + $deltaOffset);
						$entry['DT_TO'] = CCalendar::Date(CCalendar::Timestamp($entry['DT_TO']) + $deltaOffset);
					}

					$result['accessibility'][$userId][] = [
						'id' => $entry['ID'],
						'dateFrom' => $entry['DT_FROM'],
						'dateTo' => $entry['DT_TO'],
						'type' => $entry['FROM_HR'] ? 'hr' : 'event'
					];
				}
				else
				{
					$fromTs = CCalendar::Timestamp($entry['DATE_FROM']);
					$toTs = CCalendar::Timestamp($entry['DATE_TO']);
					if ($entry['DT_SKIP_TIME'] !== "Y")
					{
						$fromTs -= $entry['~USER_OFFSET_FROM'];
						$toTs -= $entry['~USER_OFFSET_TO'];
						$fromTs += $deltaOffset;
						$toTs += $deltaOffset;
					}
					$result['accessibility'][$userId][] = [
						'id' => $entry['ID'],
						'dateFrom' => CCalendar::Date($fromTs, $entry['DT_SKIP_TIME'] != 'Y'),
						'dateTo' => CCalendar::Date($toTs, $entry['DT_SKIP_TIME'] != 'Y'),
						'type' => $entry['FROM_HR'] ? 'hr' : 'event'
					];
				}
			}
		}

		// Meeting room selection
		$location = \Bitrix\Calendar\Rooms\Util::parseLocation(trim($_REQUEST['location']));
		if($location['mrid'])
		{
			$mrid = 'MR_'.$location['mrid'];
			$entry = array(
					'type' => 'room',
					'id' => $mrid,
					'name' => 'meeting room'
			);

			$roomList = \Bitrix\Calendar\Rooms\IBlockMeetingRoom::getMeetingRoomList();
			foreach($roomList as $room)
			{
				if ($room['ID'] == $location['mrid'])
				{
					$entry['name'] = $room['NAME'];
					$entry['url'] = $room['URL'];
					break;
				}
			}

			$result['entries'][] = $entry;
			$result['accessibility'][$mrid] = [];

			$meetingRoomRes = \Bitrix\Calendar\Rooms\IBlockMeetingRoom::getAccessibilityForMeetingRoom([
					'allowReserveMeeting' => true,
					'id' => $location['mrid'],
					'from' => $from,
					'to' => $to,
					'curEventId' => false
			]);

			foreach($meetingRoomRes as $entry)
			{
				$result['accessibility'][$mrid][] = [
						'id' => $entry['ID'],
						'dateFrom' => $entry['DT_FROM'],
						'dateTo' => $entry['DT_TO']
				];
			}
		}

		?><script>top.BXCRES_Planner = <?= CUtil::PhpToJSObject($result)?>;</script><?
	}
}
else
{
	echo CUtil::PhpToJsObject(Array('ERROR' => 'SESSION_ERROR'));
}
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>

Anon7 - 2022
AnonSec Team