Skip to content
Snippets Groups Projects
app-routing-guards.ts 905 B
Newer Older
import {Injectable} from "@angular/core";
mechtelm's avatar
mechtelm committed
import {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot} from "@angular/router";
import {MainDataService} from "./maindata.service";
import {Observable} from "rxjs";

@Injectable()
mechtelm's avatar
mechtelm committed
export class RouteDispatcherActivateGuard implements CanActivate {
  constructor(
    private mds: MainDataService,
mechtelm's avatar
mechtelm committed
    private router: Router
  ) {
  }

  canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {

mechtelm's avatar
mechtelm committed
    if (this.mds.adminToken.length > 0) {
      this.router.navigate(['/r/admin-starter']);
    } else if (this.mds.personToken.length > 0) {
      this.router.navigate(['/r/test-starter']);
    } else if (this.mds.loginToken.length > 0) {
      this.router.navigate(['/r/code-input']);
    } else {
      this.router.navigate(['/r/login', '']);
    }
    return false;
mechtelm's avatar
mechtelm committed