1 import { Component, OnInit } from '@angular/core'
2 import { UserRight } from '../../../../shared'
3 import { AuthService } from '../core/auth/auth.service'
4 import { ListOverflowItem } from '@app/shared/misc/list-overflow.component'
5 import { I18n } from '@ngx-translate/i18n-polyfill'
8 templateUrl: './admin.component.html'
10 export class AdminComponent implements OnInit {
11 items: ListOverflowItem[] = []
14 private auth: AuthService,
19 if (this.hasUsersRight()) this.items.push({ label: this.i18n('Users'), routerLink: '/admin/users' })
20 if (this.hasServerFollowRight()) this.items.push({ label: this.i18n('Follows & redundancies'), routerLink: '/admin/follows' })
21 if (this.hasVideoAbusesRight() || this.hasVideoBlacklistRight()) this.items.push({ label: this.i18n('Moderation'), routerLink: '/admin/moderation' })
22 if (this.hasConfigRight()) this.items.push({ label: this.i18n('Configuration'), routerLink: '/admin/config' })
23 if (this.hasPluginsRight()) this.items.push({ label: this.i18n('Plugins/Themes'), routerLink: '/admin/plugins' })
24 if (this.hasJobsRight() || this.hasLogsRight() || this.hasDebugRight()) this.items.push({ label: this.i18n('System'), routerLink: '/admin/system' })
28 return this.auth.getUser().hasRight(UserRight.MANAGE_USERS)
31 hasServerFollowRight () {
32 return this.auth.getUser().hasRight(UserRight.MANAGE_SERVER_FOLLOW)
35 hasVideoAbusesRight () {
36 return this.auth.getUser().hasRight(UserRight.MANAGE_VIDEO_ABUSES)
39 hasVideoBlacklistRight () {
40 return this.auth.getUser().hasRight(UserRight.MANAGE_VIDEO_BLACKLIST)
44 return this.auth.getUser().hasRight(UserRight.MANAGE_CONFIGURATION)
48 return this.auth.getUser().hasRight(UserRight.MANAGE_PLUGINS)
52 return this.auth.getUser().hasRight(UserRight.MANAGE_LOGS)
56 return this.auth.getUser().hasRight(UserRight.MANAGE_JOBS)
60 return this.auth.getUser().hasRight(UserRight.MANAGE_DEBUG)