2017-10-27 09:55:03 -05:00
|
|
|
import { UserRight } from './user-right.enum'
|
|
|
|
|
|
|
|
// Keep the order
|
|
|
|
export enum UserRole {
|
|
|
|
ADMINISTRATOR = 0,
|
|
|
|
MODERATOR = 1,
|
|
|
|
USER = 2
|
|
|
|
}
|
|
|
|
|
2020-01-30 04:53:38 -06:00
|
|
|
export const USER_ROLE_LABELS: { [ id in UserRole ]: string } = {
|
2017-10-27 09:55:03 -05:00
|
|
|
[UserRole.USER]: 'User',
|
|
|
|
[UserRole.MODERATOR]: 'Moderator',
|
|
|
|
[UserRole.ADMINISTRATOR]: 'Administrator'
|
|
|
|
}
|
|
|
|
|
2020-01-30 04:53:38 -06:00
|
|
|
const userRoleRights: { [ id in UserRole ]: UserRight[] } = {
|
2017-10-27 09:55:03 -05:00
|
|
|
[UserRole.ADMINISTRATOR]: [
|
|
|
|
UserRight.ALL
|
|
|
|
],
|
|
|
|
|
|
|
|
[UserRole.MODERATOR]: [
|
|
|
|
UserRight.MANAGE_VIDEO_BLACKLIST,
|
2020-07-01 09:05:30 -05:00
|
|
|
UserRight.MANAGE_ABUSES,
|
2017-10-27 09:55:03 -05:00
|
|
|
UserRight.REMOVE_ANY_VIDEO,
|
2018-01-04 04:19:16 -06:00
|
|
|
UserRight.REMOVE_ANY_VIDEO_CHANNEL,
|
2019-02-26 03:55:40 -06:00
|
|
|
UserRight.REMOVE_ANY_VIDEO_PLAYLIST,
|
2018-02-22 02:03:45 -06:00
|
|
|
UserRight.REMOVE_ANY_VIDEO_COMMENT,
|
2018-10-10 04:46:50 -05:00
|
|
|
UserRight.UPDATE_ANY_VIDEO,
|
2018-10-15 06:03:04 -05:00
|
|
|
UserRight.SEE_ALL_VIDEOS,
|
|
|
|
UserRight.MANAGE_ACCOUNTS_BLOCKLIST,
|
2019-01-04 01:56:20 -06:00
|
|
|
UserRight.MANAGE_SERVERS_BLOCKLIST,
|
|
|
|
UserRight.MANAGE_USERS
|
2017-10-27 09:55:03 -05:00
|
|
|
],
|
|
|
|
|
|
|
|
[UserRole.USER]: []
|
|
|
|
}
|
|
|
|
|
|
|
|
export function hasUserRight (userRole: UserRole, userRight: UserRight) {
|
|
|
|
const userRights = userRoleRights[userRole]
|
|
|
|
|
2020-02-28 09:03:39 -06:00
|
|
|
return userRights.includes(UserRight.ALL) || userRights.includes(userRight)
|
2017-10-27 09:55:03 -05:00
|
|
|
}
|