Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Rubén Ramírez
/
MangAffinity
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
23e10daf
authored
Apr 20, 2025
by
Rubén Ramírez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
feat: [RepositorioUsuario]: Creadas funciones para modificar los datos del usuario
parent
45f3ac01
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
52 additions
and
0 deletions
src/main/java/com/ujaen/tfg/mangaffinity/servicios/ServicioUsuarios.java
src/main/java/com/ujaen/tfg/mangaffinity/servicios/ServicioUsuarios.java
View file @
23e10daf
...
...
@@ -145,4 +145,56 @@ public class ServicioUsuarios {
return
repositorioUsuario
.
findById
(
id
).
orElseThrow
(
UsuarioNoExiste:
:
new
);
}
public
DTOLoginRespuesta
modificarUsuario
(
String
emailActual
,
String
nuevoEmail
,
String
nuevoNombreUsuario
,
String
nuevaContrasenia
,
String
contraseniaActual
)
{
Usuario
usuario
=
repositorioUsuario
.
findByEmail
(
emailActual
)
.
orElseThrow
(
UsuarioNoExiste:
:
new
);
// Validación de contraseña actual
if
(!
passwordEncoder
.
matches
(
contraseniaActual
,
usuario
.
getContrasenia
()))
{
throw
new
IllegalArgumentException
(
"La contraseña actual no es correcta"
);
}
// Validación de email si se cambia
if
(!
nuevoEmail
.
equalsIgnoreCase
(
usuario
.
getEmail
()))
{
Optional
<
Usuario
>
otro
=
repositorioUsuario
.
findByEmail
(
nuevoEmail
);
if
(
otro
.
isPresent
())
{
throw
new
UsuarioYaRegistrado
();
}
}
// Validación de nombre de usuario si se cambia
if
(!
nuevoNombreUsuario
.
equalsIgnoreCase
(
usuario
.
getNombreUsuario
()))
{
Optional
<
Usuario
>
otro
=
repositorioUsuario
.
findByNombreUsuario
(
nuevoNombreUsuario
);
if
(
otro
.
isPresent
())
{
throw
new
NombreUsuarioYaCogido
();
}
}
// Aplicar cambios
usuario
.
setEmail
(
nuevoEmail
);
usuario
.
setNombreUsuario
(
nuevoNombreUsuario
);
if
(
nuevaContrasenia
!=
null
&&
!
nuevaContrasenia
.
isBlank
())
{
usuario
.
setContrasenia
(
passwordEncoder
.
encode
(
nuevaContrasenia
));
}
usuario
=
repositorioUsuario
.
actualizar
(
usuario
);
// Generar nuevo token
String
token
=
jwtUtil
.
generateToken
(
usuario
.
getId
(),
usuario
.
getEmail
(),
usuario
.
getNombreUsuario
(),
usuario
.
getRol
()
);
return
new
DTOLoginRespuesta
(
token
,
usuario
.
getEmail
(),
usuario
.
getNombreUsuario
());
}
public
DTOLoginRespuesta
modificarUsuarioDesdeToken
(
String
token
,
String
nuevoEmail
,
String
nuevoNombreUsuario
,
String
nuevaContrasenia
,
String
contraseniaActual
)
{
String
emailActual
=
jwtUtil
.
extractUsername
(
token
.
replace
(
"Bearer "
,
""
));
return
modificarUsuario
(
emailActual
,
nuevoEmail
,
nuevoNombreUsuario
,
nuevaContrasenia
,
contraseniaActual
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment