import * as Episode from './Episode';
import Round from './Round';
+export const hasGlobalRole = (user, role) =>
+ user && role && user.global_roles && user.global_roles.includes(role);
+
export const isAdmin = user => user && user.role === 'admin';
export const isSameUser = (user, subject) => user && subject && user.id === subject.id;
user && channel && user.channel_crews &&
user.channel_crews.find(c => c.role === 'admin' && c.channel_id === channel.id);
+export const isAnyChannelAdmin = user =>
+ user && user.channel_crews && user.channel_crews.find(c => c.role === 'admin');
+
+// Content
+
+export const mayEditContent = user =>
+ user && hasGlobalRole(user, 'content');
+
// Episodes
export const isCommentator = (user, episode) => {
export const episodeHasChannel = (episode, channel) =>
episode && channel && episode.channels && episode.channels.find(c => c.id === channel.id);
-export const mayRestreamEpisodes = user =>
- user && user.channel_crews && user.channel_crews.find(c => c.role === 'admin');
+export const mayRestreamEpisodes = user => isAnyChannelAdmin(user);
export const mayEditRestream = (user, episode, channel) =>
episodeHasChannel(episode, channel) && isChannelAdmin(user, channel);
isTournamentMonitor(user, tournament) ||
Round.isComplete(tournament, round);
+// Twitch
+
+export const mayManageTwitchBot = user => isAnyChannelAdmin(user);
+
// Users
export const mayEditNickname = (user, subject) =>