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();
+ }
+ }
}
}
});