* wip * wip * wip * wip * wip * wip * wip * #5 - bump dependencies * #43 - wip * #43 - add composer script * #43 - fix * #43 - fix * #43 - wip * #43 - ecs fix * #43 - cr fix * #43 - cr fix * #43 - fix * #62 - wip * #62 - wip * #62 - wip * #62 - fix * #62 - fix * #62 - fix * #62 - fix * #62 - fix * #62 - ecs fix Co-authored-by: EwelinaLasowy <ewelina.lasowy@blumilk.pl>
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
declare(strict_types=1);
 | 
						|
 | 
						|
namespace Toby\Domain\Policies;
 | 
						|
 | 
						|
use Toby\Domain\Enums\Role;
 | 
						|
use Toby\Eloquent\Models\User;
 | 
						|
use Toby\Eloquent\Models\VacationRequest;
 | 
						|
 | 
						|
class VacationRequestPolicy
 | 
						|
{
 | 
						|
    public function listAll(User $user): bool
 | 
						|
    {
 | 
						|
        return in_array($user->role, [Role::AdministrativeApprover, Role::TechnicalApprover], true);
 | 
						|
    }
 | 
						|
 | 
						|
    public function createOnBehalfOfEmployee(User $user): bool
 | 
						|
    {
 | 
						|
        return $user->role === Role::AdministrativeApprover;
 | 
						|
    }
 | 
						|
 | 
						|
    public function acceptAsAdminApprover(User $user): bool
 | 
						|
    {
 | 
						|
        return $user->role === Role::AdministrativeApprover;
 | 
						|
    }
 | 
						|
 | 
						|
    public function acceptAsTechApprover(User $user): bool
 | 
						|
    {
 | 
						|
        return $user->role === Role::TechnicalApprover;
 | 
						|
    }
 | 
						|
 | 
						|
    public function skipFlow(User $user): bool
 | 
						|
    {
 | 
						|
        return $user->role === Role::AdministrativeApprover;
 | 
						|
    }
 | 
						|
 | 
						|
    public function reject(User $user): bool
 | 
						|
    {
 | 
						|
        return in_array($user->role, [Role::AdministrativeApprover, Role::TechnicalApprover], true);
 | 
						|
    }
 | 
						|
 | 
						|
    public function cancel(User $user): bool
 | 
						|
    {
 | 
						|
        return $user->role === Role::AdministrativeApprover;
 | 
						|
    }
 | 
						|
 | 
						|
    public function show(User $user, VacationRequest $vacationRequest): bool
 | 
						|
    {
 | 
						|
        if ($vacationRequest->user->is($user)) {
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
 | 
						|
        return in_array($user->role, [Role::TechnicalApprover, Role::AdministrativeApprover], true);
 | 
						|
    }
 | 
						|
}
 |