import { Injectable } from '@angular/core'; import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router'; import { UserService } from '../_services/user.service'; import { Observable } from 'rxjs'; import Web3 from 'web3'; @Injectable() export class AuthGuard implements CanActivate { public networkId; constructor(private _router: Router, private _userService: UserService) {} canActivate( route: ActivatedRouteSnapshot, state: RouterStateSnapshot ): Observable | boolean { if (window['web3'] != undefined) { var web3 = new Web3(window['web3'].currentProvider); console.log(web3); web3.eth.defaultAccount = web3.eth.coinbase; this.networkId = web3.version.network; let currentUser = JSON.parse(localStorage.getItem('currentUser')); var GBMasterAddressJson = { 4: '0xca27deb069d83629db00579ab0f0d80cd119a79b', 42: '0xfd49ec86aaff8a312273cbebc3f48cc4c067c04a', 31: '0x26847806987d45cdb482987f2027b05eef14d061', 96: '0xd62d9f828928661808a4700ea747e8474b236961' }; if (currentUser == null) { var body = { masterAddress: '', userName: 'GOVBLOCKS', GBMasterAddress: GBMasterAddressJson[this.networkId], // email: "govblocks@govblocks.io", email: '', companyName: '', authorized: true, token: 'token', allAbis: [] }; localStorage.setItem('currentUser', JSON.stringify(body)); } else { var email; if (currentUser.email == '') { email = 'govblocks@govblocks.io'; } else email = currentUser.email; var body1 = { masterAddress: '', userName: 'GOVBLOCKS', GBMasterAddress: GBMasterAddressJson[this.networkId], // email: email, email: '', companyName: '', authorized: true, token: 'token', allAbis: currentUser.allAbis }; localStorage.setItem('currentUser', JSON.stringify(body1)); } return true; } else { return true; } // return this._userService.verify().map( // data => { // if (data !== null) { // // logged in so return true // return true; // } // // error when verify so redirect to login page with the return url // this._router.navigate(['/login'], { queryParams: { returnUrl: state.url } }); // // this._router.navigate(['/']); // return false; // }, // error => { // // error when verify so redirect to login page with the return url // this._router.navigate(['/login'], { queryParams: { returnUrl: state.url } }); // // this._router.navigate(['/']); // return false; // }); } }