Lazy load all routes
[oweals/peertube.git] / client / src / app / +admin / admin.component.ts
1 import { Component, OnInit } from '@angular/core'
2 import { AuthService } from '@app/core'
3 import { ListOverflowItem } from '@app/shared/shared-main'
4 import { I18n } from '@ngx-translate/i18n-polyfill'
5 import { UserRight } from '@shared/models'
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.hasVideoBlocklistRight()) 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   hasVideoBlocklistRight () {
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 }