diff options
Diffstat (limited to 'client/src/app/+admin/admin-guard.service.ts')
-rw-r--r-- | client/src/app/+admin/admin-guard.service.ts | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/client/src/app/+admin/admin-guard.service.ts b/client/src/app/+admin/admin-guard.service.ts new file mode 100644 index 000000000..a0ad48175 --- /dev/null +++ b/client/src/app/+admin/admin-guard.service.ts | |||
@@ -0,0 +1,23 @@ | |||
1 | import { Injectable } from '@angular/core' | ||
2 | import { | ||
3 | ActivatedRouteSnapshot, | ||
4 | CanActivateChild, | ||
5 | RouterStateSnapshot, | ||
6 | CanActivate | ||
7 | } from '@angular/router' | ||
8 | |||
9 | import { AuthService } from '../core' | ||
10 | |||
11 | @Injectable() | ||
12 | export class AdminGuard implements CanActivate, CanActivateChild { | ||
13 | |||
14 | constructor (private auth: AuthService) {} | ||
15 | |||
16 | canActivate (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { | ||
17 | return this.auth.isAdmin() | ||
18 | } | ||
19 | |||
20 | canActivateChild (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { | ||
21 | return this.canActivate(route, state) | ||
22 | } | ||
23 | } | ||