diff --git a/src/app/services/authenticate.service.ts b/src/app/services/authenticate.service.ts index 52b6a7d..7c311de 100644 --- a/src/app/services/authenticate.service.ts +++ b/src/app/services/authenticate.service.ts @@ -53,7 +53,7 @@ export class AuthenticationService { this.credentialService.setPermission([]); } this.buttonManagementService.setButtonPermissions(this.credentialService.getPermission(), this.isAdminUser()); - if(data.user.isFirstLogin){ + if(data.user.firstLogin){ this.router.navigate(["/changepassword"]); } else { this.router.navigate(["/home/dashboard"]); diff --git a/src/app/user-management/change-password/change-password.component.html b/src/app/user-management/change-password/change-password.component.html index 7b66156..359bd5c 100644 --- a/src/app/user-management/change-password/change-password.component.html +++ b/src/app/user-management/change-password/change-password.component.html @@ -3,7 +3,7 @@
-
+
@@ -29,6 +29,11 @@ (onEyeClick)="togglePasswordType1()">
+
+ {{ firstTimeLoginForm.get('newPassword')?.hasError('required') ? ('fieldRequired' | translate) : + firstTimeLoginForm.get('newPassword')?.hasError('minlength') ? ('passwordTooShort' | translate) : '' }} +
@@ -43,6 +48,12 @@ (onEyeClick)="togglePasswordType2()">
+
+ {{ firstTimeLoginForm.get('confirmPassword')?.hasError('required') ? ('fieldRequired' | translate) : + firstTimeLoginForm.get('confirmPassword')?.hasError('minlength') ? ('passwordTooShort' | translate) : + firstTimeLoginForm.hasError('passwordMismatch') ? ('passwordsDoNotMatch' | translate) : '' }} +
@@ -60,7 +71,7 @@
-
+
-
- {{ newPasswordError$ | translate }} -
+
+ {{ changePasswordForm.get('newPassword')?.hasError('required') ? ('fieldRequired' | translate) : + changePasswordForm.get('newPassword')?.hasError('minlength') ? ('passwordTooShort' | translate) : '' }} +
@@ -153,8 +166,11 @@ (onEyeClick)="togglePasswordType2()">
-
- {{ confirmPasswordError$ | translate }} +
+ {{ changePasswordForm.get('confirmPassword')?.hasError('required') ? ('fieldRequired' | translate) : + changePasswordForm.get('confirmPassword')?.hasError('minlength') ? ('passwordTooShort' | translate) : + changePasswordForm.hasError('passwordMismatch') ? ('passwordsDoNotMatch' | translate) : '' }}
diff --git a/src/app/user-management/change-password/change-password.component.ts b/src/app/user-management/change-password/change-password.component.ts index 65aff72..3904489 100644 --- a/src/app/user-management/change-password/change-password.component.ts +++ b/src/app/user-management/change-password/change-password.component.ts @@ -18,7 +18,7 @@ import { SuccessMessages } from '../../utils/enums'; }) export class ChangePasswordComponent implements OnInit{ - isFirstLogin = false; + firstLogin = true; firstTimeLoginForm!: FormGroup; changePasswordForm!: FormGroup; currentLanguage = new FormControl(); @@ -49,23 +49,28 @@ constructor(private fb: FormBuilder, private httpURIService: HttpURIService, pri return newPassword === confirmPassword ? null : { passwordMismatch: true }; } - ngOnInit(): void { - this.checkIfFirstTimeChangePasswordOrNot(); - - if (this.isFirstLogin) { - this.firstTimeLoginForm = this.fb.group({ - newPassword: ['', [Validators.required, Validators.minLength(6)]], - confirmPassword: ['', [Validators.required, Validators.minLength(6)]] - }, { validators: this.passwordMatchValidator }); - } else { - this.changePasswordForm = this.fb.group({ - oldPassword: ['', Validators.required], - newPassword: ['', [Validators.required, Validators.minLength(6)]], - confirmPassword: ['', [Validators.required, Validators.minLength(6)]] -}, { validators: this.passwordMatchValidator }); + initForm(): void { + if (this.firstLogin) { + this.changePasswordForm = undefined!; + this.firstTimeLoginForm = this.fb.group({ + newPassword: ['', [Validators.required, Validators.minLength(6)]], + confirmPassword: ['', [Validators.required, Validators.minLength(6)]] + }, { validators: this.passwordMatchValidator }); + } else { + this.firstTimeLoginForm = undefined!; + this.changePasswordForm = this.fb.group({ + oldPassword: ['', Validators.required], + newPassword: ['', [Validators.required, Validators.minLength(6)]], + confirmPassword: ['', [Validators.required, Validators.minLength(6)]] + }, { validators: this.passwordMatchValidator }); + } + } + + ngOnInit(): void { + this.checkIfFirstTimeChangePasswordOrNot(); + this.initForm(); } -} checkIfFirstTimeChangePasswordOrNot(): void { try { @@ -73,10 +78,10 @@ constructor(private fb: FormBuilder, private httpURIService: HttpURIService, pri this.storageService.getItem('user') || '{}' ); - this.isFirstLogin = !!currentUser?.user?.isFirstLogin; + this.firstLogin = !!currentUser?.user?.firstLogin; } catch (error) { console.error('Error parsing user data:', error); - this.isFirstLogin = false; + this.firstLogin = false; } } @@ -91,28 +96,8 @@ constructor(private fb: FormBuilder, private httpURIService: HttpURIService, pri ); } - - get newPasswordError$() { - const control = this.changePasswordForm.get('newPassword'); - if (!control || !control.touched) return null; - - if (control.hasError('required')) return 'fieldRequired'; - if (control.hasError('minlength')) return 'passwordTooShort'; - return null; - } - - get confirmPasswordError$() { - const control = this.changePasswordForm.get('confirmPassword'); - if (!control || !control.touched) return null; - - if (control.hasError('required')) return 'fieldRequired'; - if (control.hasError('minlength')) return 'passwordTooShort'; - if (this.changePasswordForm.hasError('passwordMismatch')) return 'passwordsDoNotMatch'; - - return null; - } getFormPayload() { - const form = this.isFirstLogin ? this.firstTimeLoginForm : this.changePasswordForm; + const form = this.firstLogin ? this.firstTimeLoginForm : this.changePasswordForm; return { oldPassword: form.get('oldPassword')?.value || null, @@ -129,6 +114,18 @@ constructor(private fb: FormBuilder, private httpURIService: HttpURIService, pri next: (response) => { if (!(response instanceof HttpErrorResponse)) { this.i18nService.success(SuccessMessages.CHANGE_PASSWORD_SUCCESS, []); + + if (this.firstLogin) { + const currentUser = JSON.parse(this.storageService.getItem('user') || '{}'); + + if (currentUser?.user) { + currentUser.user.firstLogin = false; + this.storageService.setItem('user', JSON.stringify(currentUser)); + this.firstLogin = false; + console.log(this.firstLogin) + this.initForm(); + } + } } } });