type === 'A' || $user->blocked === 1 ) { return true; } return false; } /** * Determine whether the user can view the model. */ public function view(User $user, Game $game): bool { return false; } /** * Determine whether the user can create models. */ public function create(User $user): bool { if ($user->type === 'A' || $user->blocked === 1) { return false; } return true; } public function join(User $user, Game $game): bool { if ($user->type === 'A' || $user->blocked === 1) { return false; } if ($game->status !== 'waiting' || $game->player1_user_id === $user->id) { return false; } return true; } public function resign(User $user, Game $game): bool { if ($user->type === 'A' || $user->blocked === 1) { return false; } if ( $game->status !== 'ongoing' || ($game->player1_user_id !== $user->id && $game->player2_user_id !== $user->id) ) { return false; } return true; } /** * Determine whether the user can update the model. */ public function update(User $user, Game $game): bool { if ($user->type === 'A' || $user->blocked === 1) { return false; } } /** * Determine whether the user can delete the model. */ public function delete(User $user, Game $game): bool { return false; } /** * Determine whether the user can restore the model. */ public function restore(User $user, Game $game): bool { return false; } /** * Determine whether the user can permanently delete the model. */ public function forceDelete(User $user, Game $game): bool { return false; } }