Voucherify phase 2

This commit is contained in:
Dillon
2023-07-17 21:29:19 +08:00
parent 46ae50b569
commit c7927847c4
162 changed files with 6063 additions and 298 deletions
@@ -0,0 +1,54 @@
<?php
namespace App\Classes\Modules\Milestones\Standards\Rules;
use App\Classes\General\Abstracts\AbstractRule;
use App\Classes\Modules\Milestones\Standards\Validators\MilestoneValidation;
use App\Classes\Modules\Milestones\DataTransferObjects\MilestoneObject;
use Illuminate\Support\Facades\Auth;
class CanCreateMilestone extends AbstractRule
{
/** @var MilestoneValidation */
private $milestoneValidation;
/**
* CanCreateMilestone constructor.
* @param MilestoneValidation $milestoneValidation
*/
public function __construct(MilestoneValidation $milestoneValidation)
{
$this->milestoneValidation = $milestoneValidation;
}
/**
* @return bool
*/
protected function authorized(): bool
{
if (!Auth::user()->can('add milestone')) {
return false;
}
return true;
}
/**
* @param MilestoneObject $object
* @return bool
* @throws \App\Classes\Exceptions\RequestValidationException
*/
protected function validators($object): bool
{
return $this->milestoneValidation->validate($object, 'POST');
}
/**
* @param MilestoneObject $object
* @return bool
*/
protected function criteria($object): bool
{
return true;
}
}