diff --git a/src/app/_guards/auth.guard.ts b/src/app/_guards/auth.guard.ts index 01d891f..a73f94e 100644 --- a/src/app/_guards/auth.guard.ts +++ b/src/app/_guards/auth.guard.ts @@ -15,7 +15,7 @@ export class AuthGuard implements CanActivate { // not logged in so redirect to login page with the return url console.log('no session key found') - this.router.navigate(['/login'], { queryParams: { returnUrl: state.url }}); + this.router.navigate(['/pages/login'], { queryParams: { returnUrl: state.url }}); return false; } } \ No newline at end of file diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 0918901..cda731b 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -15,7 +15,7 @@ import { BreadcrumbsComponent } from './shared/breadcrumb.component'; // Routing & Guard Module import { AppRoutingModule } from './app.routing'; -import { AuthGuard } from './_guards/index'; +import { AuthGuard } from './_guards/auth.guard'; // Layouts import { FullLayoutComponent } from './layouts/full-layout.component'; diff --git a/src/app/app.routing.ts b/src/app/app.routing.ts index 3a74dd8..dc9e2cd 100644 --- a/src/app/app.routing.ts +++ b/src/app/app.routing.ts @@ -1,6 +1,6 @@ import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; -import { AuthGuard } from './_guards/index'; +import { AuthGuard } from './_guards/auth.guard'; // Layouts import { FullLayoutComponent } from './layouts/full-layout.component'; @@ -15,7 +15,7 @@ export const routes: Routes = [ { path: '', component: FullLayoutComponent, - // canActivate: [AuthGuard], + canActivate: [AuthGuard], data: { title: 'Home' }, diff --git a/src/app/layouts/full-layout.component.ts b/src/app/layouts/full-layout.component.ts index 2a5c56d..f5791e7 100644 --- a/src/app/layouts/full-layout.component.ts +++ b/src/app/layouts/full-layout.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { ApiService } from '../providers/api-service'; -import {Router } from '@angular/router'; +import { Router } from '@angular/router'; @Component({ selector: 'app-dashboard', @@ -26,6 +26,7 @@ export class FullLayoutComponent implements OnInit { } ngOnInit(): void {} + userlogout() { console.log('logout clicked'); this.api @@ -33,6 +34,7 @@ export class FullLayoutComponent implements OnInit { .subscribe( result => { console.log('Logged out!'); + window.location.reload(); } ); } diff --git a/src/app/pages/login.component.ts b/src/app/pages/login.component.ts index 2fde798..4375b14 100644 --- a/src/app/pages/login.component.ts +++ b/src/app/pages/login.component.ts @@ -1,18 +1,20 @@ -import { Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { Validators, FormBuilder, FormGroup } from '@angular/forms'; import { Http, Response } from '@angular/http'; import { ApiService } from '../providers/api-service'; -import {Router } from '@angular/router'; +import { Router, ActivatedRoute } from '@angular/router'; import 'rxjs/add/operator/map'; @Component({ templateUrl: 'login.component.html', providers: [ApiService] }) -export class LoginComponent { +export class LoginComponent implements OnInit { signin: FormGroup; + returnUrl: string; constructor( + private route: ActivatedRoute, private http: Http, private formBuilder: FormBuilder, private router: Router, @@ -24,6 +26,20 @@ export class LoginComponent { }); } + ngOnInit() { + // reset login status + this.api + .logout() + .subscribe( + result => { + console.log('Logged out!'); + } + ); + + // get return url from route parameters or default to '/' + this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/'; + } + onSubmit() { console.log(this.signin.value); @@ -32,7 +48,7 @@ export class LoginComponent { .subscribe( result => { console.log('logged in!'); - this.router.navigate(['/dashboard']) + this.router.navigate([this.returnUrl]); }, error => { console.log( error._body );