new helpdesk module

This commit is contained in:
Mark Gregory
2026-06-12 09:41:57 +01:00
parent 67c9bb22d9
commit da35c7eb95
50 changed files with 1874 additions and 270 deletions
@@ -0,0 +1,49 @@
<?php
declare(strict_types=1);
namespace Modules\Helpdesk\Policies;
use App\Models\User;
use Modules\Helpdesk\Models\Ticket;
final class TicketPolicy
{
/** @return bool */
public function viewAny(User $user): bool
{
return true;
}
/** @return bool */
public function view(User $user, Ticket $ticket): bool
{
return (bool) ($user->helpdesk_admin ?? false)
|| (bool) ($user->helpdesk_agent ?? false) && ((int) $ticket->agent_id === (int) $user->id || (int) $ticket->user_id === (int) $user->id)
|| (int) $ticket->user_id === (int) $user->id;
}
/** @return bool */
public function create(User $user): bool
{
return true;
}
/** @return bool */
public function update(User $user, Ticket $ticket): bool
{
return (bool) ($user->helpdesk_admin ?? false) || (int) $ticket->agent_id === (int) $user->id;
}
/** @return bool */
public function comment(User $user, Ticket $ticket): bool
{
return $this->view($user, $ticket);
}
/** @return bool */
public function delete(User $user, Ticket $ticket): bool
{
return (bool) ($user->helpdesk_admin ?? false);
}
}