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
154662c9
authored
Feb 22, 2025
by
Rubén Ramírez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
fix: [Usuarios]: Corregidos problemas con los roles
parent
6a267025
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
39 additions
and
26 deletions
src/main/java/com/ujaen/tfg/mangaffinity/entidades/Usuario.java
src/main/java/com/ujaen/tfg/mangaffinity/rest/DTO/Mapper.java
src/main/java/com/ujaen/tfg/mangaffinity/servicios/ServicioUsuarios.java
src/test/java/com/ujaen/tfg/mangaffinity/servicios/TestServicioUsuarios.java
src/main/java/com/ujaen/tfg/mangaffinity/entidades/Usuario.java
View file @
154662c9
...
@@ -40,11 +40,11 @@ public class Usuario {
...
@@ -40,11 +40,11 @@ public class Usuario {
@OneToOne
(
mappedBy
=
"usuario"
,
cascade
=
CascadeType
.
ALL
)
@OneToOne
(
mappedBy
=
"usuario"
,
cascade
=
CascadeType
.
ALL
)
private
Repositorio
repositorio
;
private
Repositorio
repositorio
;
public
Usuario
(
String
email
,
String
nombreUsuario
,
String
contrasenia
,
String
rol
)
{
public
Usuario
(
String
email
,
String
nombreUsuario
,
String
contrasenia
)
{
this
.
email
=
email
;
this
.
email
=
email
;
this
.
nombreUsuario
=
nombreUsuario
;
this
.
nombreUsuario
=
nombreUsuario
;
this
.
contrasenia
=
contrasenia
;
this
.
contrasenia
=
contrasenia
;
this
.
rol
=
rol
;
this
.
rol
=
"USUARIO_REGISTRADO"
;
this
.
repositorio
=
new
Repositorio
(
this
);
this
.
repositorio
=
new
Repositorio
(
this
);
}
}
...
...
src/main/java/com/ujaen/tfg/mangaffinity/rest/DTO/Mapper.java
View file @
154662c9
package
com
.
ujaen
.
tfg
.
mangaffinity
.
rest
.
DTO
;
package
com
.
ujaen
.
tfg
.
mangaffinity
.
rest
.
DTO
;
import
com.ujaen.tfg.mangaffinity.entidades.Recurso
;
import
com.ujaen.tfg.mangaffinity.entidades.Recurso
;
import
com.ujaen.tfg.mangaffinity.entidades.Usuario
;
import
com.ujaen.tfg.mangaffinity.entidades.Usuario
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
@Service
@Service
public
class
Mapper
{
public
class
Mapper
{
public
DTOUsuario
dto
(
Usuario
usuario
)
{
public
DTOUsuario
dto
(
Usuario
usuario
)
{
return
new
DTOUsuario
(
usuario
.
getId
(),
usuario
.
getEmail
(),
usuario
.
getNombreUsuario
(),
usuario
.
getContrasenia
());
return
new
DTOUsuario
(
usuario
.
getId
(),
usuario
.
getEmail
(),
usuario
.
getNombreUsuario
(),
usuario
.
getContrasenia
());
}
}
public
Usuario
entity
(
DTOUsuario
dtoUsuario
)
{
public
Usuario
entity
(
DTOUsuario
dtoUsuario
)
{
String
rol
=
dtoUsuario
.
getEmail
().
equalsIgnoreCase
(
"admin@example.com"
)
?
"ADMIN"
:
"USUARIO_REGISTRADO"
;
return
new
Usuario
(
dtoUsuario
.
getEmail
(),
dtoUsuario
.
getNombreUsuario
(),
dtoUsuario
.
getContrasenia
());
return
new
Usuario
(
dtoUsuario
.
getEmail
(),
dtoUsuario
.
getNombreUsuario
(),
dtoUsuario
.
getContrasenia
(),
rol
);
}
}
public
DTORecurso
dto
(
Recurso
recurso
)
{
public
DTORecurso
dto
(
Recurso
recurso
)
{
return
new
DTORecurso
(
recurso
.
getId
(),
recurso
.
getTitulo
(),
recurso
.
getDescripcion
(),
recurso
.
getFechaPublicacion
(),
recurso
.
getAutor
()
return
new
DTORecurso
(
recurso
.
getId
(),
recurso
.
getTitulo
(),
recurso
.
getDescripcion
(),
recurso
.
getFechaPublicacion
(),
recurso
.
getAutor
()
);
);
}
}
public
Recurso
entity
(
DTORecurso
dtoRecurso
)
{
public
Recurso
entity
(
DTORecurso
dtoRecurso
)
{
return
new
Recurso
(
dtoRecurso
.
getTitulo
(),
dtoRecurso
.
getDescripcion
(),
dtoRecurso
.
getFechaPublicacion
(),
dtoRecurso
.
getAutor
()
return
new
Recurso
(
dtoRecurso
.
getTitulo
(),
dtoRecurso
.
getDescripcion
(),
dtoRecurso
.
getFechaPublicacion
(),
dtoRecurso
.
getAutor
()
);
);
}
}
}
}
src/main/java/com/ujaen/tfg/mangaffinity/servicios/ServicioUsuarios.java
View file @
154662c9
...
@@ -2,10 +2,12 @@ package com.ujaen.tfg.mangaffinity.servicios;
...
@@ -2,10 +2,12 @@ package com.ujaen.tfg.mangaffinity.servicios;
import
com.ujaen.tfg.mangaffinity.entidades.Usuario
;
import
com.ujaen.tfg.mangaffinity.entidades.Usuario
;
import
com.ujaen.tfg.mangaffinity.excepciones.UsuarioNoExiste
;
import
com.ujaen.tfg.mangaffinity.excepciones.UsuarioNoExiste
;
import
com.ujaen.tfg.mangaffinity.excepciones.UsuarioYaRegistrado
;
import
com.ujaen.tfg.mangaffinity.repositorios.RepositorioUsuario
;
import
com.ujaen.tfg.mangaffinity.repositorios.RepositorioUsuario
;
import
com.ujaen.tfg.mangaffinity.rest.DTO.DTOLoginRespuesta
;
import
com.ujaen.tfg.mangaffinity.rest.DTO.DTOLoginRespuesta
;
import
com.ujaen.tfg.mangaffinity.rest.DTO.DTOUsuario
;
import
com.ujaen.tfg.mangaffinity.rest.DTO.DTOUsuario
;
import
com.ujaen.tfg.mangaffinity.seguridad.JwtUtil
;
import
com.ujaen.tfg.mangaffinity.seguridad.JwtUtil
;
import
jakarta.annotation.PostConstruct
;
import
jakarta.validation.Valid
;
import
jakarta.validation.Valid
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -35,12 +37,24 @@ public class ServicioUsuarios {
...
@@ -35,12 +37,24 @@ public class ServicioUsuarios {
this
.
admin
.
setNombreUsuario
(
"admin"
);
this
.
admin
.
setNombreUsuario
(
"admin"
);
}
}
@PostConstruct
public
void
initAdmin
()
{
if
(
admin
.
getContrasenia
()
==
null
)
{
admin
.
setContrasenia
(
passwordEncoder
.
encode
(
"adminpassword"
));
}
}
/**
/**
* Función para crear un Socio en la estructura
* Función para crear un Socio en la estructura
* @param usuario usuario que se va a añadir
* @param usuario usuario que se va a añadir
*/
*/
public
void
crearUsuario
(
@Valid
Usuario
usuario
)
{
public
void
crearUsuario
(
@Valid
Usuario
usuario
)
{
usuario
.
setContrasenia
(
passwordEncoder
.
encode
(
usuario
.
getContrasenia
()));
usuario
.
setContrasenia
(
passwordEncoder
.
encode
(
usuario
.
getContrasenia
()));
if
(
usuario
.
getEmail
().
equalsIgnoreCase
(
admin
.
getEmail
()))
{
throw
new
UsuarioYaRegistrado
();
// Evita que se cree otro admin accidentalmente
}
repositorioUsuario
.
guardar
(
usuario
);
repositorioUsuario
.
guardar
(
usuario
);
}
}
...
@@ -62,7 +76,7 @@ public class ServicioUsuarios {
...
@@ -62,7 +76,7 @@ public class ServicioUsuarios {
String
rol
=
"USUARIO_REGISTRADO"
;
String
rol
=
"USUARIO_REGISTRADO"
;
if
(
email
.
equals
(
admin
.
getEmail
()))
{
if
(
email
.
equals
(
admin
.
getEmail
()))
{
if
(!
passwordEncoder
.
matches
(
contrasenia
,
passwordEncoder
.
encode
(
"adminpassword"
)))
{
if
(!
passwordEncoder
.
matches
(
contrasenia
,
admin
.
getContrasenia
(
)))
{
return
null
;
return
null
;
}
}
rol
=
"ADMIN"
;
rol
=
"ADMIN"
;
...
...
src/test/java/com/ujaen/tfg/mangaffinity/servicios/TestServicioUsuarios.java
View file @
154662c9
...
@@ -33,7 +33,7 @@ public class TestServicioUsuarios {
...
@@ -33,7 +33,7 @@ public class TestServicioUsuarios {
@Test
@Test
@DirtiesContext
@DirtiesContext
void
testCrearSocio
()
{
void
testCrearSocio
()
{
var
usuario1
=
new
Usuario
(
"pedro@gmail.com"
,
"Pedro"
,
"pedrito"
,
"USUARIO_REGISTRADO"
);
// Se agrega el rol
var
usuario1
=
new
Usuario
(
"pedro@gmail.com"
,
"Pedro"
,
"pedrito"
);
// Se agrega el rol
servicioUsuarios
.
crearUsuario
(
usuario1
);
servicioUsuarios
.
crearUsuario
(
usuario1
);
assertThatThrownBy
(()
->
servicioUsuarios
.
crearUsuario
(
usuario1
)).
isInstanceOf
(
UsuarioYaRegistrado
.
class
);
assertThatThrownBy
(()
->
servicioUsuarios
.
crearUsuario
(
usuario1
)).
isInstanceOf
(
UsuarioYaRegistrado
.
class
);
}
}
...
@@ -53,7 +53,7 @@ public class TestServicioUsuarios {
...
@@ -53,7 +53,7 @@ public class TestServicioUsuarios {
assertThat
(
servicioUsuarios
.
autenticarUsuario
(
emailExistente
,
contraseniaIncorrecta
)).
isNull
();
assertThat
(
servicioUsuarios
.
autenticarUsuario
(
emailExistente
,
contraseniaIncorrecta
)).
isNull
();
// Caso 3: Usuario con email y contraseña correctos
// Caso 3: Usuario con email y contraseña correctos
var
usuario2
=
new
Usuario
(
"pedra@gmail.com"
,
"Pedra"
,
"pedrito"
,
"USUARIO_REGISTRADO"
);
// Se agrega el rol
var
usuario2
=
new
Usuario
(
"pedra@gmail.com"
,
"Pedra"
,
"pedrito"
);
// Se agrega el rol
servicioUsuarios
.
crearUsuario
(
usuario2
);
servicioUsuarios
.
crearUsuario
(
usuario2
);
Usuario
usuarioGuardado
=
servicioUsuarios
.
buscaUsuario
(
"pedra@gmail.com"
);
Usuario
usuarioGuardado
=
servicioUsuarios
.
buscaUsuario
(
"pedra@gmail.com"
);
...
...
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