From 3f3f634d7e19bb63f4daf06a7131be11a4340f6f Mon Sep 17 00:00:00 2001 From: Brandon Sakai Date: Tue, 21 Apr 2020 21:04:45 +0000 Subject: [PATCH 1/2] Added reset password dialog --- src/app/login.service.ts | 13 +++++++++++++ src/app/navbar/navbar.component.html | 20 ++++++++++++++++++++ src/app/navbar/navbar.component.ts | 4 ++++ 3 files changed, 37 insertions(+) diff --git a/src/app/login.service.ts b/src/app/login.service.ts index ac1000c..88d0e1a 100644 --- a/src/app/login.service.ts +++ b/src/app/login.service.ts @@ -99,6 +99,19 @@ export class LoginService implements CanActivate { ); } + resetPassword(RCSid):void { + const headers = new HttpHeaders().set('Content-Type', 'application/json'); + let body = JSON.stringify({rcsid:RCSid}); + this.http.post(apiServer + "/api/forgot_password", body, {headers: headers}).subscribe( + data => { + this.reload(); + }, + err => { + console.error("Server Error: ", err); + } + ); + } + reload():void { window.location.reload(); } diff --git a/src/app/navbar/navbar.component.html b/src/app/navbar/navbar.component.html index d6d9794..d294937 100644 --- a/src/app/navbar/navbar.component.html +++ b/src/app/navbar/navbar.component.html @@ -30,6 +30,8 @@ + @@ -54,6 +56,7 @@

Login

Incorrect username or password!
+ Forgot Password? Click here to reset @@ -97,3 +100,20 @@

Change Password

+ + + diff --git a/src/app/navbar/navbar.component.ts b/src/app/navbar/navbar.component.ts index a8f31c3..a0f0ff9 100644 --- a/src/app/navbar/navbar.component.ts +++ b/src/app/navbar/navbar.component.ts @@ -44,6 +44,10 @@ export class NavbarComponent implements OnInit { this.loginService.changePassword(username, oldPass, newPass); } + resetPassword(username):void { + this.loginService.resetPassword(username); + } + showFailedLogin():void { document.getElementById('badLogin').style.visibility = 'visible'; } From dadd4d354bc545d15ff7e62e6e23a3db038428e1 Mon Sep 17 00:00:00 2001 From: Brandon Sakai Date: Tue, 21 Apr 2020 21:09:45 +0000 Subject: [PATCH 2/2] Added reset_password tests --- src/app/login.service.spec.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/app/login.service.spec.ts b/src/app/login.service.spec.ts index e65cbe8..5c8074e 100644 --- a/src/app/login.service.spec.ts +++ b/src/app/login.service.spec.ts @@ -207,4 +207,14 @@ describe('LoginService', () => { expect(NavbarMock.checkLoggedIn).toHaveBeenCalled(); httpMock.verify(); }); + + it('should call /api/forgot_password correctly', () => { + let httpMock = TestBed.get(HttpTestingController); + service.resetPassword('testRCS'); + let req = httpMock.expectOne(apiServer + '/api/forgot_password'); + req.flush(""); + expect(req.request.method).toBe('POST'); + expect(req.request.body).toBe('{"rcsid":"testRCS"}'); + httpMock.verify(); + }); });