+ isAdmin(user) || (!tournament.locked &&
+ (isRunner(user, tournament) || isTournamentAdmin(user, tournament)));
+
+export const mayLockRound = (user, tournament) =>
+ isAdmin(user) || (!tournament.locked && isTournamentAdmin(user, tournament));
+
+export const maySetSeed = (user, tournament, round) =>
+ isAdmin(user) || (!round.locked &&
+ (isRunner(user, tournament) || isTournamentAdmin(user, tournament)));
+
+export const mayViewProtocol = (user, tournament) =>
+ isAdmin(user) || isTournamentCrew(user, tournament);
+
+export const maySeeResults = (user, tournament, round) =>
+ isAdmin(user) || hasFinished(user, round) ||
+ isTournamentMonitor(user, tournament) || Round.isComplete(tournament, round);
+
+// Users
+
+export const mayEditNickname = (user, subject) =>
+ isAdmin(user) || isSameUser(user, subject);
+
+export const mayEditStreamLink = (user, subject) =>
+ isAdmin(user) || isSameUser(user, subject);