role->equals(Role::admin()) or $user->projects->contains($ticket->project_id); } /** * Determine whether the user can delete the model. * * @param \App\Models\User $user * @param \App\Models\Ticket $ticket * @return mixed */ //phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed public function delete(User $user, Ticket $ticket) { return false; } /** * Determine whether the user can restore the model. * * @param \App\Models\User $user * @param \App\Models\Ticket $ticket * @return mixed */ public function restore(User $user, Ticket $ticket) { return Auth::user()->role->equals(Role::admin()) or $user->projects->contains($ticket->project_id); } /** * Determine whether the user can permanently delete the model. * * @param \App\Models\User $user * @param \App\Models\Ticket $ticket * @return mixed */ // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed public function forceDelete(User $user, Ticket $ticket) { return false; } public function changeStatus(User $user) { return $user->role->equals(Role::admin()); } // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed public function suscribeToTicket(User $user, Ticket $ticket) { return !$ticket->status->equals(TicketStatus::archived()); } // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed public function createMessage(User $user, Ticket $ticket) { //can create if //role == 1 // OR project_id IN user->projects if ( !( $user->role->equals(Role::admin()) or $user->projects->contains($ticket->project_id) ) ) { return Response::deny(trans('Vous ne pouvez modifier un ticket qui ne vous appartient pas.')); } return $ticket->status->equals(TicketStatus::archived()) ? Response::deny(trans('Vous ne pouvez ajouter un message à un ticket qui est archivé')) : Response::allow(); } }