diff --git a/src/app/self-service/users/user.service.ts b/src/app/self-service/users/user.service.ts index 80cac1001..d9567d1b1 100644 --- a/src/app/self-service/users/user.service.ts +++ b/src/app/self-service/users/user.service.ts @@ -54,4 +54,17 @@ export class UserService { return this.http.disableApiPrefix().get('/assets/mock/user.mock.json'); } + /** + * Change User Password. + * @param userId User Id of users + * @param password New Password of the user + * @returns {Observable} + * + * TODO: update endpoint once API available + */ + changePassword(userId: string, passwordObj: any) { + + return this.http.put(`/self/user/${userId}`, passwordObj); + } + } diff --git a/src/app/self-service/users/users.component.html b/src/app/self-service/users/users.component.html index 321753e93..565655f80 100644 --- a/src/app/self-service/users/users.component.html +++ b/src/app/self-service/users/users.component.html @@ -77,7 +77,7 @@ - + diff --git a/src/app/self-service/users/view-user/view-user.component.html b/src/app/self-service/users/view-user/view-user.component.html index 31761cc95..3682d638d 100644 --- a/src/app/self-service/users/view-user/view-user.component.html +++ b/src/app/self-service/users/view-user/view-user.component.html @@ -4,7 +4,7 @@    Edit - diff --git a/src/app/self-service/users/view-user/view-user.component.ts b/src/app/self-service/users/view-user/view-user.component.ts index 892200b2b..ce0e89e6c 100644 --- a/src/app/self-service/users/view-user/view-user.component.ts +++ b/src/app/self-service/users/view-user/view-user.component.ts @@ -1,6 +1,11 @@ /** Angular Imports */ import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; +import { ChangePasswordDialogComponent } from 'app/shared/change-password-dialog/change-password-dialog.component'; +import { MatDialog } from '@angular/material'; + +/** Custom Services. */ +import { UserService } from '../user.service'; /** * View self service user component. @@ -20,8 +25,15 @@ export class ViewUserComponent implements OnInit { /** * Retrieves the user data from `resolve`. * @param {ActivatedRoute} route Activated Route. + * @param {UserService} userService Users Service. + * @param {ActivatedRoute} route Activated Route. + * @param {Router} router Router for navigation. + * @param {MatDialog} dialog Dialog reference. */ - constructor(private route: ActivatedRoute) { + constructor(private route: ActivatedRoute, + private userService: UserService, + private router: Router, + private dialog: MatDialog) { this.route.data.subscribe((data: { user: any }) => { this.user = data.user; }); @@ -30,8 +42,24 @@ export class ViewUserComponent implements OnInit { ngOnInit() { } - openDialog() { - // TODO: Open change password dialog. + /** + * Open Dialog to Change Password + */ + changeUserPassword() { + const changeUserPasswordDialogRef = this.dialog.open(ChangePasswordDialogComponent, { + width: '400px', + height: '300px' + }); + changeUserPasswordDialogRef.afterClosed().subscribe((response: any) => { + if (response.password && response.repeatPassword) { + const password = response.password; + const repeatPassword = response.repeatPassword; + const data = {password: password, repeatPassword: repeatPassword }; + this.userService.changePassword(this.user.id, data).subscribe(() => { + this.router.navigate(['/..']); + }); + } + }); } } diff --git a/src/app/shared/change-password-dialog/change-password-dialog.component.html b/src/app/shared/change-password-dialog/change-password-dialog.component.html index 2f72b23b2..00d666113 100644 --- a/src/app/shared/change-password-dialog/change-password-dialog.component.html +++ b/src/app/shared/change-password-dialog/change-password-dialog.component.html @@ -18,15 +18,11 @@ Password should not be more than 50 characters long - + Password should include a numeral and at least one uppercase ,lowercase and special character - - -
- Repeat Password