diff --git a/ogWebconsole/src/app/components/layout/sidebar/sidebar.component.html b/ogWebconsole/src/app/components/layout/sidebar/sidebar.component.html index 56288c5..a4a5b88 100644 --- a/ogWebconsole/src/app/components/layout/sidebar/sidebar.component.html +++ b/ogWebconsole/src/app/components/layout/sidebar/sidebar.component.html @@ -1,7 +1,7 @@ diff --git a/ogWebconsole/src/app/components/layout/sidebar/sidebar.component.ts b/ogWebconsole/src/app/components/layout/sidebar/sidebar.component.ts index a0ed85b..89f5112 100644 --- a/ogWebconsole/src/app/components/layout/sidebar/sidebar.component.ts +++ b/ogWebconsole/src/app/components/layout/sidebar/sidebar.component.ts @@ -12,17 +12,18 @@ import { ChangePasswordModalComponent } from '../../pages/admin/users/users/chan export class SidebarComponent { @Input() isVisible: boolean = false; isSuperAdmin: boolean = false; - username: string = localStorage.getItem('username') ?? ''; - + username: string = ""; + decodedToken: any = ""; constructor(public dialog: MatDialog) {} ngOnInit(): void { const token = localStorage.getItem('loginToken'); if (token) { try { - const decodedToken: any = jwtDecode(token); - console.log('Decoded JWT:', decodedToken); - this.isSuperAdmin = decodedToken.roles.includes('ROLE_SUPER_ADMIN'); + this.decodedToken = jwtDecode(token); + console.log('Decoded token:', this.decodedToken); + this.isSuperAdmin = this.decodedToken.roles.includes('ROLE_SUPER_ADMIN'); + this.username = this.decodedToken.username; } catch (error) { console.error('Error decoding JWT:', error); } @@ -32,10 +33,10 @@ export class SidebarComponent { editUser(user: any) { // Implementar la lógica de edición const dialogRef = this.dialog.open(ChangePasswordModalComponent, { - data: { user: user } + data: { user: this.decodedToken.username, uuid: this.decodedToken.uuid }, }); - dialogRef.componentInstance.userEdited.subscribe(() => { + /* dialogRef.componentInstance.userEdited.subscribe(() => { console.log("User edited successfully!") - }); + }); */ } } \ No newline at end of file diff --git a/ogWebconsole/src/app/components/pages/admin/users/users/change-password-modal/change-password-modal.component.css b/ogWebconsole/src/app/components/pages/admin/users/users/change-password-modal/change-password-modal.component.css index 6916e95..dbd8ba9 100644 --- a/ogWebconsole/src/app/components/pages/admin/users/users/change-password-modal/change-password-modal.component.css +++ b/ogWebconsole/src/app/components/pages/admin/users/users/change-password-modal/change-password-modal.component.css @@ -1,10 +1,15 @@ .user-form .form-field { display: block; - margin-bottom: 10px; /* Puedes ajustar el valor para cambiar la separación */ + margin-bottom: 10px; } .checkbox-group label { display: block; - margin-bottom: 8px; /* Ajusta este valor según necesites */ + margin-bottom: 8px; } - \ No newline at end of file + + .error-message { + color: red; + margin-top: 10px; + } + diff --git a/ogWebconsole/src/app/components/pages/admin/users/users/change-password-modal/change-password-modal.component.html b/ogWebconsole/src/app/components/pages/admin/users/users/change-password-modal/change-password-modal.component.html index 8819559..5873379 100644 --- a/ogWebconsole/src/app/components/pages/admin/users/users/change-password-modal/change-password-modal.component.html +++ b/ogWebconsole/src/app/components/pages/admin/users/users/change-password-modal/change-password-modal.component.html @@ -6,13 +6,21 @@ - Contraseña + Nueva contraseña Repite la contraseña + + @if (passwordMismatch) { +
Las contraseñas no coinciden
+ } + + @if (updateError) { +
Error, inténtelo de nuevo
+ }
diff --git a/ogWebconsole/src/app/components/pages/admin/users/users/change-password-modal/change-password-modal.component.ts b/ogWebconsole/src/app/components/pages/admin/users/users/change-password-modal/change-password-modal.component.ts index 5910929..ce88d4c 100644 --- a/ogWebconsole/src/app/components/pages/admin/users/users/change-password-modal/change-password-modal.component.ts +++ b/ogWebconsole/src/app/components/pages/admin/users/users/change-password-modal/change-password-modal.component.ts @@ -1,6 +1,7 @@ -import { Component, EventEmitter, Inject, OnInit, Output } from '@angular/core'; +import { Component, EventEmitter, Inject, Output } from '@angular/core'; import { FormGroup, FormBuilder, Validators } from '@angular/forms'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { EditUserModalComponent } from '../edit-user-modal/edit-user-modal.component'; import { UserService } from '../users.service'; @Component({ @@ -8,25 +9,28 @@ import { UserService } from '../users.service'; templateUrl: './change-password-modal.component.html', styleUrl: './change-password-modal.component.css' }) - -export class ChangePasswordModalComponent implements OnInit { +export class ChangePasswordModalComponent { @Output() userEdited = new EventEmitter(); userForm: FormGroup; + passwordMismatch: boolean = false; + updateError: boolean = false; constructor( - public dialogRef: MatDialogRef, + public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, private userService: UserService ) { this.userForm = this.fb.group({ username: [this.data.user, Validators.required], - password: [''], - confirmPassword: [''] + password: ['', Validators.required], + confirmPassword: ['', Validators.required] }, { validators: this.passwordMatchValidator }); } - ngOnInit(): void {} + ngOnInit(): void { + console.log('Data:', this.data); + } onNoClick(): void { this.dialogRef.close(); @@ -34,15 +38,18 @@ export class ChangePasswordModalComponent implements OnInit { onSubmit(): void { if (this.userForm.valid) { + this.passwordMismatch = false; + this.updateError = false; + const userPayload = { username: this.userForm.value.username, - allowedOrganizationalUnits: this.data.user.allowedOrganizationalUnits, + allowedOrganizationalUnits: [], password: this.userForm.value.password, enabled: true, - userGroups: this.data.user.userGroups + userGroups: [] }; - - this.userService.updateUser(this.data.user.uuid, userPayload).subscribe( + console.log("THIS IS THE USER PAYLOAD: ", userPayload); + this.userService.updateUser(this.data.uuid, userPayload).subscribe( response => { console.log('User updated successfully:', response); this.userEdited.emit(); @@ -50,16 +57,17 @@ export class ChangePasswordModalComponent implements OnInit { }, error => { console.error('Error updating user:', error); - // Agregar alguna lógica para manejar el error en la interfaz de usuario + this.updateError = true; } ); } else { console.error('Form is invalid'); - // Agregar alguna lógica para manejar el error en la interfaz de usuario + this.passwordMismatch = this.userForm.hasError('mismatch'); + this.updateError = true; } } private passwordMatchValidator(form: FormGroup): { [key: string]: boolean } | null { return form.get('password')?.value === form.get('confirmPassword')?.value ? null : { mismatch: true }; } -} \ No newline at end of file +}