Guest User

Untitled

a guest
Nov 22nd, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. import {AuthService} from "./auth.service";
  2. import {UsersService} from "./users.service";
  3. import {User} from "../models/user.model";
  4. @Injectable()
  5. export class AuthGuard implements CanActivate, CanActivateChild {
  6. private user: User;
  7. constructor( private userService: UsersService,
  8. private authService: AuthService,
  9. private router: Router ) {}
  10. canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable<boolean> | Promise<boolean> {
  11. if (window.localStorage.getItem("user") !== null) {
  12. this.user = JSON.parse(window.localStorage.getItem("user"));
  13.  
  14.  
  15.  
  16.  
  17.  
  18. this.userService.getUserByEmail(this.user.email)
  19. .subscribe((user: User) => {
  20.  
  21. if (user) {
  22. if (user.password === this.user.password) {
  23. return true;
  24. }
  25. else {
  26. this.router.navigate(['/login'], {
  27. queryParams: {
  28. accessDenied: true
  29. }
  30. });
  31. return false;
  32. }
  33. }
  34. else {
  35. this.router.navigate(['/login'], {
  36. queryParams: {
  37. accessDenied: true
  38. }
  39. });
  40. return false;
  41. }
  42. });
  43.  
  44. }
  45. else {
  46. this.router.navigate(['/login'], { queryParams: {
  47. accessDenied: true
  48. }
  49. });
  50. console.log("false 3");
  51. return false;
  52. }
  53. }
  54. canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable<boolean> | Promise<boolean> {
  55. return this.canActivate(childRoute, state);
  56. }
  57. }
  58.  
  59. import {Http} from '@angular/http';
  60. import {Injectable} from '@angular/core';
  61. import {Observable} from 'rxjs/Observable';
  62.  
  63. import {User} from '../models/user.model';
  64. import {BaseApi} from '../core/base-api';
  65.  
  66. @Injectable()
  67. export class UsersService extends BaseApi {
  68.  
  69. constructor(public http: Http) {
  70. super(http);
  71. }
  72.  
  73.  
  74. getUserByEmail(email: string): Observable<User> {
  75. return this.get('users?email=' + email)
  76. .map((user: User[]) => user[0] ? user [0] : undefined);
  77. }
  78. createNewUser(user: User): Observable<User> {
  79. return this.post('users', user);
  80. }
  81. }
Add Comment
Please, Sign In to add comment