Files
exchange-2.0/app/Classes/Modules/Bookings/Standards/Rules/CanCreateBooking.php
T
2020-12-08 16:21:53 +08:00

56 lines
1.2 KiB
PHP

<?php
namespace App\Classes\Modules\Bookings\Standards\Rules;
use App\Classes\General\Abstracts\AbstractRule;
use App\Classes\Modules\Bookings\DataTransferObjects\SegmentObject;
use App\Classes\Modules\Bookings\Standards\Validators\BookingValidation;
class CanCreateBooking extends AbstractRule
{
/** @var BookingValidation */
private $bookingValidation;
/**
* CanCreateBooking constructor.
* @param BookingValidation $bookingValidation
*/
public function __construct(BookingValidation $bookingValidation)
{
$this->bookingValidation = $bookingValidation;
}
/**
* @return bool
*/
protected function authorized(): bool
{
// TODO Set Authorization rules
if (!\Auth::user()->can('add booking')) {
return false;
}
return true;
}
/**
* @param SegmentObject $object
* @return bool
* @throws \App\Classes\Exceptions\RequestValidationException
*/
protected function validators($object): bool
{
return $this->bookingValidation->validate($object);
}
/**
* @param SegmentObject $object
* @return bool
*/
protected function criteria($object): bool
{
return true;
}
}