blocked === 1) { return false; } return true; } /**2 * Determine whether the user can view the model. */ public function view(User $user, Game $game): bool { if ($user->type === "A") { return true; } if ($user->blocked === 1) { return false; } if ( $game->player1_user_id === $user->id || $game->player2_user_id === $user->id ) { return true; } 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; } 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 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; } }