Skip to content

Commit

Permalink
FIx can't delete tournaments as normal user
Browse files Browse the repository at this point in the history
  • Loading branch information
Sendouc committed Oct 22, 2024
1 parent 6bd6507 commit 93f0638
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 9 deletions.
26 changes: 18 additions & 8 deletions app/features/calendar/routes/calendar.$id.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,10 @@ import { requireUserId } from "~/features/auth/core/user.server";
import * as CalendarRepository from "~/features/calendar/CalendarRepository.server";
import * as ShowcaseTournaments from "~/features/front-page/core/ShowcaseTournaments.server";
import { MapPool } from "~/features/map-list-generator/core/map-pool";
import { clearTournamentDataCache } from "~/features/tournament-bracket/core/Tournament.server";
import {
clearTournamentDataCache,
tournamentManagerData,
} from "~/features/tournament-bracket/core/Tournament.server";
import { useIsMounted } from "~/hooks/useIsMounted";
import { i18next } from "~/modules/i18n/i18next.server";
import {
Expand Down Expand Up @@ -66,13 +69,20 @@ export const action: ActionFunction = async ({ params, request }) => {
await CalendarRepository.findById({ id: parsedParams.id }),
);

validate(
canDeleteCalendarEvent({
user,
event,
startTime: databaseTimestampToDate(event.startTimes[0]),
}),
);
if (event.tournamentId) {
validate(
tournamentManagerData(event.tournamentId).stage.length === 0,
"Tournament has already started",
);
} else {
validate(
canDeleteCalendarEvent({
user,
event,
startTime: databaseTimestampToDate(event.startTimes[0]),
}),
);
}

await CalendarRepository.deleteById({
eventId: event.eventId,
Expand Down
5 changes: 4 additions & 1 deletion app/features/tournament-bracket/core/Tournament.server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,11 @@ import { getServerTournamentManager } from "./brackets-manager/manager.server";

const manager = getServerTournamentManager();

export const tournamentManagerData = (tournamentId: number) =>
manager.get.tournamentData(tournamentId);

const combinedTournamentData = async (tournamentId: number) => ({
data: manager.get.tournamentData(tournamentId),
data: tournamentManagerData(tournamentId),
ctx: notFoundIfFalsy(await TournamentRepository.findById(tournamentId)),
});

Expand Down

0 comments on commit 93f0638

Please sign in to comment.