33 lines
945 B
TypeScript
33 lines
945 B
TypeScript
import { Injectable } from '@angular/core';
|
|
import { Router } from '@angular/router';
|
|
import * as moment from 'moment';
|
|
|
|
import { AuthenticationService } from '../services/auth.service';
|
|
import { NotificationService } from '../services/notification.service';
|
|
|
|
@Injectable()
|
|
export class AuthGuard {
|
|
|
|
constructor(private router: Router,
|
|
private notificationService: NotificationService,
|
|
private authService: AuthenticationService) { }
|
|
|
|
canActivate() {
|
|
const user = this.authService.getCurrentUser();
|
|
|
|
if (user && user.expiration) {
|
|
|
|
if (moment() < moment(user.expiration)) {
|
|
return true;
|
|
} else {
|
|
this.notificationService.openSnackBar('Your session has expired');
|
|
this.router.navigate(['auth/login']);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
this.router.navigate(['auth/login']);
|
|
return false;
|
|
}
|
|
}
|