From 11af9c5d0daed142cf034b9ce5019bb9fce6670a Mon Sep 17 00:00:00 2001 From: Daniel Lukats Date: Tue, 21 Jul 2020 08:45:40 +0200 Subject: [PATCH] added basic AccountService --- src/app/account/account.service.spec.ts | 16 ++++++++++++++++ src/app/account/account.service.ts | 17 +++++++++++++++++ src/app/account/auth.guard.spec.ts | 7 +++++++ src/app/account/auth.guard.ts | 21 +++++++++++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 src/app/account/account.service.spec.ts create mode 100644 src/app/account/account.service.ts create mode 100644 src/app/account/auth.guard.spec.ts create mode 100644 src/app/account/auth.guard.ts diff --git a/src/app/account/account.service.spec.ts b/src/app/account/account.service.spec.ts new file mode 100644 index 0000000..2ffad6f --- /dev/null +++ b/src/app/account/account.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AccountService } from './account.service'; + +describe('AccountService', () => { + let service: AccountService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AccountService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/account/account.service.ts b/src/app/account/account.service.ts new file mode 100644 index 0000000..44fede5 --- /dev/null +++ b/src/app/account/account.service.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; + +@Injectable({ + providedIn: 'root' +}) +export class AccountService { + + userName: string = null; + + constructor(private httpClient: HttpClient) { } + + login(username, password) { + return this.httpClient.post + } + +} diff --git a/src/app/account/auth.guard.spec.ts b/src/app/account/auth.guard.spec.ts new file mode 100644 index 0000000..03e2328 --- /dev/null +++ b/src/app/account/auth.guard.spec.ts @@ -0,0 +1,7 @@ +import { Auth.Guard } from './auth.guard'; + +describe('Auth.Guard', () => { + it('should create an instance', () => { + expect(new Auth.Guard()).toBeTruthy(); + }); +}); diff --git a/src/app/account/auth.guard.ts b/src/app/account/auth.guard.ts new file mode 100644 index 0000000..e36575f --- /dev/null +++ b/src/app/account/auth.guard.ts @@ -0,0 +1,21 @@ +import { Injectable } from '@angular/core'; +import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; +import { AccountService } from './account.service'; + +@Injectable({providedIn: 'root'}) +export class AuthGuard implements CanActivate { + constructor(private router: Router, + private accountService: AccountService) { } + + canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { + const user = this.accountService.userName; + + if (user) { + return true; + } + + this.router.navigate(['/login'], {queryParams: {returnURL: state.url}}); + return false; + } +} +