1 import { Injectable } from '@angular/core'
2 import { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router, RouterStateSnapshot } from '@angular/router'
3 import { AuthService } from '../auth/auth.service'
6 export class UserRightGuard implements CanActivate, CanActivateChild {
9 private router: Router,
10 private auth: AuthService
13 canActivate (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
14 const user = this.auth.getUser()
16 const neededUserRight = route.data.userRight
18 if (user.hasRight(neededUserRight)) return true
21 this.router.navigate([ '/login' ])
25 canActivateChild (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
26 return this.canActivate(route, state)