- isAdmin(user) || (!tournament.locked &&
- (isRunner(user, tournament) || isTournamentAdmin(user, tournament)));
+ !tournament.locked &&
+ (isRunner(user, tournament) || isTournamentAdmin(user, tournament));
+
+export const mayApply = (user, tournament) =>
+ user && tournament && tournament.accept_applications &&
+ !isRunner(user, tournament) && !isApplicant(user, tournament);
+
+export const mayHandleApplications = (user, tournament) =>
+ tournament && tournament.accept_applications && isTournamentAdmin(user, tournament);
+
+export const mayReportResult = (user, tournament) => {
+ if (!user || !tournament) return false;
+ if (tournament.type === 'open-async') return true;
+ return isRunner(user, tournament);
+};
+
+export const mayEditRound = (user, tournament) =>
+ !tournament.locked && isTournamentAdmin(user, tournament);