Files
HexaHost-Panel/app/Policies/VmPolicy.php
2026-05-17 13:26:14 +02:00

40 lines
913 B
PHP

<?php
namespace App\Policies;
use App\Models\Customer;
use App\Models\User;
class VmPolicy
{
public function viewAny(User $user): bool
{
return $user->is_active;
}
public function view(User $user, Customer $vm): bool
{
return $user->is_active && ($user->isAdmin() || $vm->user_id === $user->id);
}
public function create(User $user): bool
{
return $user->is_active;
}
public function update(User $user, Customer $vm): bool
{
return $user->is_active && ($user->isAdmin() || $vm->user_id === $user->id);
}
public function delete(User $user, Customer $vm): bool
{
return $user->is_active && ($user->isAdmin() || $vm->user_id === $user->id);
}
public function manage(User $user, Customer $vm): bool
{
return $this->update($user, $vm) && $vm->status === 'active' && $vm->vmid !== null;
}
}