Skip to content

Commit

Permalink
Merge pull request #205 from gustavohenriquefs/feature/configuracoesC…
Browse files Browse the repository at this point in the history
…ontroller

Feature/configuracoes controller
  • Loading branch information
Joao-Pedro-P-Holanda authored Dec 2, 2023
2 parents 6d42faf + 152ef7a commit 81c6fd1
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 7 deletions.
1 change: 0 additions & 1 deletion src/main/java/com/casaculturaqxd/sgec/DAO/UserDAO.java
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,6 @@ public boolean validar(User user) throws SQLException {
user.setIdUsuario(resultado.getInt("id_usuario"));
user.setNomeUsuario(resultado.getString("nome_usuario"));
user.setEmail(resultado.getString("email"));
user.setSenha(resultado.getString("senha"));
user.setEditor(resultado.getBoolean("editor"));

this.connection.setReadOnly(!user.isEditor());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,55 @@
package com.casaculturaqxd.sgec.controller;

import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.sql.SQLException;

import com.casaculturaqxd.sgec.App;
import com.casaculturaqxd.sgec.DAO.UserDAO;
import com.casaculturaqxd.sgec.jdbc.DatabasePostgres;
import com.casaculturaqxd.sgec.models.User;

import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.layout.VBox;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.Pane;

public class ConfiguracoesController {
@FXML
private VBox root;
private Pane root;

@FXML
private TextField nome;

@FXML
private TextField senhaAntiga;

@FXML
private TextField novaSenha;

@FXML
private TextField confirmarSenha;

@FXML
private Button salvar, trocarSenha;

@FXML
private TextField email;

private User usuario;
private final DatabasePostgres userConnection = DatabasePostgres.getInstance("URL", "USER_NAME",
"PASSWORD");
private UserDAO userDAO = new UserDAO(userConnection.getConnection());

private Alert alert;

public void initialize() {
try {
loadMenu();
usuario = App.getUsuario();
} catch (IOException e) {
e.printStackTrace();
}
Expand All @@ -23,4 +60,70 @@ private void loadMenu() throws IOException {
new FXMLLoader(App.class.getResource("view/componentes/menu.fxml"));
root.getChildren().add(0, carregarMenu.load());
}

//Permite alterar email e senha do usuário logado
public void alterarEmailESenha() throws SQLException{
userConnection.getConnection().setAutoCommit(false);
try {
if (!(nome.getText().isEmpty()) || !(email.getText().isEmpty())) {
// Atualizar apenas os campos fornecidos, mantendo a senha original
if (!nome.getText().isEmpty()) {
usuario.setNomeUsuario(nome.getText());
}
if (!email.getText().isEmpty()) {
usuario.setEmail(email.getText());
}

// Realizar a atualização no banco de dados
User novoUsuario = new User(usuario.getIdUsuario(),usuario.getNomeUsuario(), usuario.getEmail(), usuario.getSenha(), usuario.isEditor());
userDAO.update(novoUsuario);

// Exibir a mensagem de confirmação
alert = new Alert(AlertType.CONFIRMATION, "Alterações salvas com sucesso");
alert.showAndWait();
} else {
// Caso nenhum campo seja fornecido, exibir uma mensagem adequada
alert = new Alert(AlertType.WARNING, "Nenhum dado fornecido para atualização");
alert.showAndWait();
}
} catch (SQLException e) {
// Em caso de exceção, realizar rollback
userConnection.getConnection().rollback();
e.printStackTrace(); // Você pode querer tratar essa exceção de uma maneira mais apropriada
} finally {
// Certificar-se de redefinir o autocommit
userConnection.getConnection().setAutoCommit(true);
}
}


//Altera a senha checando se a nova senha é válida e a antiga é igual a senha do usuário
public void alterarSenha() throws SQLException, NoSuchAlgorithmException{
userConnection.getConnection().setAutoCommit(false);
try {
if (senhaAntiga.getText().equals(usuario.getSenha())) {
if(novaSenha.getText().equals(confirmarSenha.getText())){
usuario.setSenha(novaSenha.getText());
// Realizar a atualização no banco de dados
User novoUsuario = new User(usuario.getIdUsuario(),usuario.getNomeUsuario(), usuario.getEmail(), novaSenha.getText(), usuario.isEditor());
userDAO.update(novoUsuario);
alert = new Alert(AlertType.CONFIRMATION, "Alterações salvas com sucesso");
alert.showAndWait();
}else{
alert = new Alert(AlertType.ERROR, "Senhas do campo de nova senha e de confirmação diferentes");
alert.showAndWait();
}
} else {
alert = new Alert(AlertType.WARNING, "Senha antiga incorreta");
alert.showAndWait();
}
} catch (SQLException e) {
// Em caso de exceção, realizar rollback
userConnection.getConnection().rollback();
e.printStackTrace();
} finally {
// Certificar-se de redefinir o autocommit
userConnection.getConnection().setAutoCommit(true);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import com.casaculturaqxd.sgec.App;
import com.casaculturaqxd.sgec.DAO.UserDAO;
import com.casaculturaqxd.sgec.jdbc.Database;
import com.casaculturaqxd.sgec.jdbc.DatabasePostgres;
import com.casaculturaqxd.sgec.models.User;

Expand All @@ -28,8 +29,8 @@ public class LoginController {

private User usuario;
private UserDAO userDAO;
private final DatabasePostgres userConnection = DatabasePostgres.getInstance("URL_TEST", "USER_NAME_TEST",
"PASSWORD_TEST");
private final Database userConnection = DatabasePostgres.getInstance("URL", "USER_NAME",
"PASSWORD");

/**
* Carrega a página com o botão de login desabilitado
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/com/casaculturaqxd/sgec/models/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,14 @@ public User(String nomeUsuario, String email, String senha, boolean editor) {
this.editor = editor;
}

public User(int idUsuario, String nomeUsuario, String email, String senha, boolean editor) {
this.idUsuario = idUsuario;
this.nomeUsuario = nomeUsuario;
this.email = email;
this.senha = senha;
this.editor = editor;
}

public String getEmail() {
return this.email;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
</VBox>
<VBox alignment="CENTER" VBox.vgrow="ALWAYS">
<children>
<Button fx:id="salvar" mnemonicParsing="false" prefHeight="26.0" prefWidth="190.0" styleClass="botoes" text="Salvar" />
<Button fx:id="salvar" mnemonicParsing="false" onAction="#alterarEmailESenha" prefHeight="26.0" prefWidth="190.0" styleClass="botoes" text="Salvar" />
</children>
</VBox>
</children>
Expand Down Expand Up @@ -88,7 +88,7 @@
</VBox>
<VBox alignment="CENTER" VBox.vgrow="ALWAYS">
<children>
<Button fx:id="trocarSenha" mnemonicParsing="false" prefHeight="26.0" prefWidth="212.0" styleClass="botoes" text="Trocar senha" />
<Button fx:id="trocarSenha" mnemonicParsing="false" onAction="#alterarSenha" prefHeight="26.0" prefWidth="212.0" styleClass="botoes" text="Trocar senha" />
</children>
</VBox>
</children>
Expand Down

0 comments on commit 81c6fd1

Please sign in to comment.