import {Injectable} from '@angular/core' import StorageService from "@common/services/storage"; import {CanActivate, CanActivateChild, Router} from "@angular/router"; import config from "@common/config"; @Injectable() export default class AuthGuardService implements CanActivate, CanActivateChild { constructor(private storageService: StorageService, private router: Router) { } check() { const roleList = this.storageService.get('roleNameList', true); const user = this.storageService.get('user', true); const permissionList = this.storageService.get('permissionList', true); if (user && user.length > 0) { return true; } else if (permissionList && permissionList.length > 0) { return true; } else if (roleList && roleList.length > 0) { return true; } return false; } canActivateChild(): boolean { return this.canActivate(); } canActivate() { if (this.check()) { return true; } else { window.location.href = config.loginUrl; return false; } } }