X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Fapp%2Fusers%2Fadd-user%2FAddEditUserComponent.ts;h=2931d7917665598bd3833c7767834913c720bb20;hb=5b35bcd21392dc71d3a847ba3a20e9fcd38534f6;hp=d9885489f434ec56716db3d7747776e112af29f5;hpb=16070582faea47ad9771fdace526136aff3038c0;p=osm%2FNG-UI.git diff --git a/src/app/users/add-user/AddEditUserComponent.ts b/src/app/users/add-user/AddEditUserComponent.ts index d988548..2931d79 100644 --- a/src/app/users/add-user/AddEditUserComponent.ts +++ b/src/app/users/add-user/AddEditUserComponent.ts @@ -18,6 +18,7 @@ /** * @file Add Edit Component. */ +import { isNullOrUndefined } from 'util'; import { HttpHeaders } from '@angular/common/http'; import { Component, Injector, Input, OnInit } from '@angular/core'; import { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms'; @@ -29,13 +30,13 @@ import { APIURLHEADER, ERRORDATA, LOGINPARAMS, MODALCLOSERESPONSEDATA, TYPESECTI import { environment } from 'environment'; import { RestService } from 'RestService'; import { SharedService } from 'SharedService'; -import { isNullOrUndefined } from 'util'; /** * Creating component * @Component takes AddEditUserComponent.html as template url */ @Component({ + selector: 'app-add-edit-user', templateUrl: './AddEditUserComponent.html', styleUrls: ['./AddEditUserComponent.scss'] }) @@ -74,6 +75,12 @@ export class AddEditUserComponent implements OnInit { /** Holds list of domains @public */ public domains: TYPESECTION[] = []; + /** Variable contains type is changepassword or not @public */ + public isPassword: boolean; + + /** Variable holds value for first login user @public */ + public isFirstLogin: boolean = Boolean(sessionStorage.getItem('firstLogin') === 'true'); + /** Instance of the rest service @private */ private restService: RestService; @@ -113,6 +120,7 @@ export class AddEditUserComponent implements OnInit { userName: ['', Validators.required], password: [null, [Validators.required, Validators.pattern(this.sharedService.REGX_PASSWORD_PATTERN)]], password2: [null, Validators.required], + old_password: [null, Validators.required], domain_name: [null] }); } @@ -131,6 +139,8 @@ export class AddEditUserComponent implements OnInit { this.getDomainList(); } else if (this.userType === 'editUserName') { this.userForm.patchValue({ userName: this.userName }); + } else if (this.isFirstLogin) { + this.isPassword = true; } } @@ -139,11 +149,21 @@ export class AddEditUserComponent implements OnInit { if (userType === 'editPassword') { this.getFormControl('userName').setValidators([]); this.getFormControl('userName').updateValueAndValidity(); + this.getFormControl('old_password').setValidators([]); + this.getFormControl('old_password').updateValueAndValidity(); } else if (userType === 'editUserName') { this.getFormControl('password').setValidators([]); this.getFormControl('password').updateValueAndValidity(); this.getFormControl('password2').setValidators([]); this.getFormControl('password2').updateValueAndValidity(); + this.getFormControl('old_password').setValidators([]); + this.getFormControl('old_password').updateValueAndValidity(); + } else if (userType === 'changePassword') { + this.getFormControl('userName').setValidators([]); + this.getFormControl('userName').updateValueAndValidity(); + } else if (userType === 'add') { + this.getFormControl('old_password').setValidators([]); + this.getFormControl('old_password').updateValueAndValidity(); } this.submitted = true; this.modalData = { @@ -157,7 +177,7 @@ export class AddEditUserComponent implements OnInit { } if (userType === 'add') { this.addUser(); - } else if (userType === 'editUserName' || userType === 'editPassword') { + } else { this.editUser(); } } @@ -191,6 +211,9 @@ export class AddEditUserComponent implements OnInit { const payLoad: LOGINPARAMS = {}; if (this.userType === 'editPassword') { payLoad.password = (this.userForm.value.password); + } else if (this.userType === 'changePassword') { + payLoad.password = (this.userForm.value.password); + payLoad.old_password = (this.userForm.value.old_password); } else { payLoad.username = this.userForm.value.userName.toLowerCase(); } @@ -201,13 +224,35 @@ export class AddEditUserComponent implements OnInit { this.restService.patchResource(apiURLHeader, payLoad).subscribe((result: {}): void => { this.checkUsername(payLoad); this.activeModal.close(this.modalData); + if (this.isFirstLogin) { + this.notifierService.notify('success', this.translateService.instant('PAGE.USERS.CHANGEPASSWORD')); + this.authService.destoryToken(); + } else if (this.userType === 'changePassword' && (!this.isFirstLogin)) { + this.notifierService.notify('success', this.translateService.instant('PAGE.USERS.CHANGEDSUCCESSFULLY')); + } else { + this.notifierService.notify('success', this.translateService.instant('PAGE.USERS.EDITEDSUCCESSFULLY')); + } this.isLoadingResults = false; - this.notifierService.notify('success', this.translateService.instant('PAGE.USERS.EDITEDSUCCESSFULLY')); }, (error: ERRORDATA): void => { - this.restService.handleError(error, 'put'); + if (this.isFirstLogin) { + this.notifierService.notify('error', error.error.detail); + this.activeModal.close(this.modalData); + this.authService.destoryToken(); + } else { + this.restService.handleError(error, 'put'); + } this.isLoadingResults = false; }); } + /** Close the modal and destroy subscribe @public */ + public close(): void { + if (this.isFirstLogin) { + this.activeModal.close(this.modalData); + this.authService.destoryToken(); + } else { + this.activeModal.close(this.modalData); + } + } /** Get domain name list @private */ private getDomainList(): void { this.isLoadingResults = true; @@ -222,15 +267,16 @@ export class AddEditUserComponent implements OnInit { /** Used to get the AbstractControl of controlName passed @private */ private getFormControl(controlName: string): AbstractControl { + // eslint-disable-next-line security/detect-object-injection return this.userForm.controls[controlName]; } /** Method to check loggedin username and update @private */ private checkUsername(payLoad: LOGINPARAMS): void { - const logUsername: string = localStorage.getItem('username'); + const logUsername: string = sessionStorage.getItem('username'); if (this.userType === 'editUserName' && logUsername === this.userName) { this.authService.userName.next(payLoad.username); - localStorage.setItem('username', payLoad.username); + sessionStorage.setItem('username', payLoad.username); } } }