|
|
@ -3,6 +3,7 @@ package mx.gob.jumapacelaya.views.login; |
|
|
|
import com.vaadin.flow.component.html.Image; |
|
|
|
import com.vaadin.flow.component.login.LoginForm; |
|
|
|
import com.vaadin.flow.component.login.LoginI18n; |
|
|
|
import com.vaadin.flow.component.orderedlayout.HorizontalLayout; |
|
|
|
import com.vaadin.flow.component.orderedlayout.VerticalLayout; |
|
|
|
import com.vaadin.flow.router.BeforeEnterEvent; |
|
|
|
import com.vaadin.flow.router.BeforeEnterObserver; |
|
|
@ -15,22 +16,29 @@ import mx.gob.jumapacelaya.services.UserService; |
|
|
|
@Route("login") |
|
|
|
@PageTitle("Login") |
|
|
|
@AnonymousAllowed |
|
|
|
public class LoginView extends VerticalLayout implements BeforeEnterObserver { //}, ComponentEventListener<AbstractLogin.LoginEvent> { |
|
|
|
public class LoginView extends VerticalLayout implements BeforeEnterObserver { |
|
|
|
|
|
|
|
private final LoginForm formularioLogin; |
|
|
|
private static final String LOGIN_SUCCESS_URL = ""; // URL de redirección después del login exitoso |
|
|
|
private final UserService userService; |
|
|
|
private final RedmineClient redmineClient; |
|
|
|
|
|
|
|
public LoginView(UserService userService, RedmineClient redmineClient) { |
|
|
|
addClassName("vista-login"); |
|
|
|
|
|
|
|
// Configuración de la vista |
|
|
|
addClassName("login-rich-content"); |
|
|
|
setSizeFull(); |
|
|
|
setAlignItems(Alignment.CENTER); |
|
|
|
setJustifyContentMode(JustifyContentMode.CENTER); |
|
|
|
setPadding(false); |
|
|
|
setMargin(false); |
|
|
|
|
|
|
|
// Crear el layout horizontal |
|
|
|
HorizontalLayout mainLayout = new HorizontalLayout(); |
|
|
|
mainLayout.setSizeFull(); |
|
|
|
mainLayout.setPadding(false); |
|
|
|
mainLayout.setMargin(false); |
|
|
|
|
|
|
|
|
|
|
|
// Configuración de la imagen |
|
|
|
Image logo = new Image("images/1024x768.png", "Logo JUMAPA"); |
|
|
|
logo.addClassName("login-logo"); |
|
|
|
|
|
|
|
// Imagen del logo |
|
|
|
Image logo = new Image("images/NVO_JUMAPA.png", "Logo JUMAPA"); |
|
|
|
logo.setWidth("300px"); |
|
|
|
|
|
|
|
// Configuración de i18n para el formulario de login |
|
|
|
LoginI18n i18n = LoginI18n.createDefault(); |
|
|
@ -40,8 +48,12 @@ public class LoginView extends VerticalLayout implements BeforeEnterObserver { / |
|
|
|
i18nFormulario.setPassword("Contraseña"); |
|
|
|
i18nFormulario.setSubmit("Iniciar sesión"); |
|
|
|
i18n.setForm(i18nFormulario); |
|
|
|
i18n.getErrorMessage().setTitle("Credenciales incorrectas"); |
|
|
|
i18n.getErrorMessage().setMessage("El usuario o la contraseña son incorrectos, verifica tus credenciales."); |
|
|
|
|
|
|
|
// Configuración de los mensajes de error |
|
|
|
LoginI18n.ErrorMessage i18nError = i18n.getErrorMessage(); |
|
|
|
i18nError.setTitle("Credenciales incorrectas"); |
|
|
|
i18nError.setMessage("El usuario o la contraseña son incorrectos, verifica tus credenciales."); |
|
|
|
i18n.setErrorMessage(i18nError); |
|
|
|
|
|
|
|
// Configuración del formulario de login |
|
|
|
formularioLogin = new LoginForm(); |
|
|
@ -49,13 +61,29 @@ public class LoginView extends VerticalLayout implements BeforeEnterObserver { / |
|
|
|
formularioLogin.setForgotPasswordButtonVisible(false); |
|
|
|
formularioLogin.setI18n(i18n); |
|
|
|
|
|
|
|
// Añadir el listener del evento de login |
|
|
|
//formularioLogin.addLoginListener(this); |
|
|
|
// Crear un contenedor para el formulario |
|
|
|
VerticalLayout loginFormContainer = new VerticalLayout(); |
|
|
|
Image imageLogin = new Image("images/NVO_JUMAPA.png", "Login"); |
|
|
|
imageLogin.setWidth("300px"); |
|
|
|
loginFormContainer.add(imageLogin); |
|
|
|
loginFormContainer.addClassName("login-form-container"); |
|
|
|
loginFormContainer.add(formularioLogin); |
|
|
|
loginFormContainer.setSizeUndefined(); |
|
|
|
loginFormContainer.setPadding(false); |
|
|
|
loginFormContainer.setMargin(false); |
|
|
|
loginFormContainer.setAlignItems(Alignment.CENTER); |
|
|
|
loginFormContainer.setJustifyContentMode(JustifyContentMode.CENTER); |
|
|
|
loginFormContainer.getElement().getThemeList().add("dark"); |
|
|
|
|
|
|
|
// Añadir componentes a la vista |
|
|
|
add(logo, formularioLogin); |
|
|
|
this.userService = userService; |
|
|
|
this.redmineClient = redmineClient; |
|
|
|
|
|
|
|
|
|
|
|
// Añadir la imagen y el contenedor del formulario al layout principal |
|
|
|
mainLayout.add(loginFormContainer, logo); |
|
|
|
mainLayout.setFlexGrow(1, loginFormContainer); |
|
|
|
mainLayout.setFlexGrow(2, logo); |
|
|
|
|
|
|
|
// Añadir el layout principal a la vista |
|
|
|
add(mainLayout); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -65,28 +93,4 @@ public class LoginView extends VerticalLayout implements BeforeEnterObserver { / |
|
|
|
formularioLogin.setError(true); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Manejar el evento de login |
|
|
|
/*@Override |
|
|
|
public void onComponentEvent(AbstractLogin.LoginEvent event) { |
|
|
|
boolean authenticated = mx.gob.jumapacelaya.views.login.SecurityUtils.authenticate( |
|
|
|
event.getUsername(), event.getPassword()); |
|
|
|
|
|
|
|
if (authenticated) { |
|
|
|
RedmineUser user = userService.getAuthenticatedRedmineUser(); |
|
|
|
if (user != null) { |
|
|
|
RedmineUser myAccount = redmineClient.getMyAccount(user.getLogin()); |
|
|
|
if (myAccount != null && !myAccount.getKey().isEmpty()) { |
|
|
|
VaadinService.getCurrentRequest().getWrappedSession().setAttribute("myaccount", myAccount); |
|
|
|
//UI.getCurrent().getPage().setLocation(LOGIN_SUCCESS_URL); |
|
|
|
} //else { |
|
|
|
// formularioLogin.setError(true); |
|
|
|
//} |
|
|
|
//} else { |
|
|
|
// formularioLogin.setError(true); |
|
|
|
} |
|
|
|
} //else { |
|
|
|
//formularioLogin.setError(true); |
|
|
|
// } |
|
|
|
}*/ |
|
|
|
} |