authActivator.service.ts 697 B

1234567891011121314151617181920
  1. import { Injectable } from "@angular/core";
  2. import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from "@angular/router";
  3. import { Observable } from "rxjs";
  4. import { Store } from "./store.service";
  5. @Injectable()
  6. export class AuthActivator implements CanActivate{
  7. constructor(private store: Store, private router: Router) {
  8. }
  9. canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable<boolean | UrlTree> | Promise<boolean | UrlTree> {
  10. if (this.store.loginRequired) {
  11. this.router.navigate(["login"]);
  12. return false;
  13. } else {
  14. return true;
  15. }
  16. }
  17. }