]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/src/app/+admin/admin.component.ts
Add ListOverflow component to prevent sub-menu overflow
[github/Chocobozzz/PeerTube.git] / client / src / app / +admin / admin.component.ts
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'
6
7 @Component({
8 templateUrl: './admin.component.html'
9 })
10 export class AdminComponent implements OnInit {
11 items: ListOverflowItem[] = []
12
13 constructor (
14 private auth: AuthService,
15 private i18n: I18n
16 ) {}
17
18 ngOnInit () {
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' })
25 }
26
27 hasUsersRight () {
28 return this.auth.getUser().hasRight(UserRight.MANAGE_USERS)
29 }
30
31 hasServerFollowRight () {
32 return this.auth.getUser().hasRight(UserRight.MANAGE_SERVER_FOLLOW)
33 }
34
35 hasVideoAbusesRight () {
36 return this.auth.getUser().hasRight(UserRight.MANAGE_VIDEO_ABUSES)
37 }
38
39 hasVideoBlacklistRight () {
40 return this.auth.getUser().hasRight(UserRight.MANAGE_VIDEO_BLACKLIST)
41 }
42
43 hasConfigRight () {
44 return this.auth.getUser().hasRight(UserRight.MANAGE_CONFIGURATION)
45 }
46
47 hasPluginsRight () {
48 return this.auth.getUser().hasRight(UserRight.MANAGE_PLUGINS)
49 }
50
51 hasLogsRight () {
52 return this.auth.getUser().hasRight(UserRight.MANAGE_LOGS)
53 }
54
55 hasJobsRight () {
56 return this.auth.getUser().hasRight(UserRight.MANAGE_JOBS)
57 }
58
59 hasDebugRight () {
60 return this.auth.getUser().hasRight(UserRight.MANAGE_DEBUG)
61 }
62 }