Advertisement
Guest User

Untitled

a guest
Sep 15th, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
  2.  
  3. if (state.url !== '/login' && !this.authService.isLoggedIn()) {
  4. this.router.navigate(['/login']);
  5. return false;
  6. }
  7.  
  8. return true;
  9. }
  10.  
  11. import { Injectable } from '@angular/core';
  12. import { Http, Response, Headers } from '@angular/http';
  13. import { Router } from '@angular/router'
  14. import { Observable } from 'rxjs/Rx';
  15. import { IMenu } from '../interfaces/menu';
  16. import { AppSettings } from '../AppSettings';
  17.  
  18. @Injectable()
  19. export class LoginService{
  20. private _baseUrl:string = AppSettings.API_ENDPOINT;
  21. private _loggedIn = false;
  22.  
  23. constructor(private _http : Http, private _router : Router){
  24. this._loggedIn = !!localStorage.getItem('auth_token')
  25. && !!localStorage.getItem('role')
  26. && !!localStorage.getItem('menu')
  27. }
  28.  
  29.  
  30. //Post function to send username and password to authorize in the server
  31. login(Username:string, Password:string) : Observable<IMenu[]>{
  32. let headers = new Headers();
  33. headers.append("Authorization", "Basic " + btoa(Username + ":" + Password));
  34. headers.append("Content-Type", "application/x-www-form-urlencoded");
  35. return this._http.post(this._baseUrl+"auth/login", " " , {headers: headers} ).delay(2000).
  36. map((response: Response) => {
  37. <IMenu[]>response.json();
  38. localStorage.setItem("menu",JSON.stringify(<IMenu[]>response.json()));
  39. localStorage.setItem("auth_token", response.headers.get("Token"));
  40. localStorage.setItem("role", response.headers.get("Role"));
  41. }).catch(this.handleError);
  42. }
  43.  
  44. logout() {
  45. localStorage.removeItem("auth_token");
  46. localStorage.removeItem("menu");
  47. localStorage.removeItem("role");
  48. this._router.navigate(['/login']);
  49. return false;
  50. }
  51.  
  52. isLoggedIn() {
  53. return this._loggedIn;
  54. }
  55.  
  56. private handleError(error: Response){
  57. return Observable.throw(error.json().error || 'Server Error!');
  58. }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement