Skip to content

Commit

Permalink
Alteração de dados de usuário feita
Browse files Browse the repository at this point in the history
  • Loading branch information
Th0mzzz committed Aug 30, 2024
1 parent 9b621ad commit 8e3ad93
Show file tree
Hide file tree
Showing 8 changed files with 92 additions and 60 deletions.
2 changes: 1 addition & 1 deletion app.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const express = require("express");
const session = require("express-session")
const app = express();
const port = 3000;
const port = 3306;
app.use((session({
secret: "QuasartSession",
resave: false,
Expand Down
95 changes: 52 additions & 43 deletions app/controller/usuariosController.js
Original file line number Diff line number Diff line change
Expand Up @@ -133,43 +133,13 @@ const usuariosController = {
return true;
}),
// verifica se o cpf é valido e se tem 11 digitos, dps verifica se já existe o cpf no banco de dados, se existir ele retorna q o cpf ja está em uso

// // verifica se o usuário tem no minimo 4 caracteres ou no maximo 30 e se o usuário digitado existe no banco de dados, caso tenha, retorna como incorreto

body('usuario')
.isLength({ min: 4 }).withMessage("Usuário deve ter pelo menos 4 caracteres!")
.bail()
.custom(async (usuario) => {
const usuarioExistente = await usuariosModel.findUserByNickname(usuario)
if (usuarioExistente[0] === usuario) {
throw new Error("Usuário já existe! Tente outro");
}
return true;
}),
.isLength({ min: 4 }).withMessage("Usuário deve ter pelo menos 4 caracteres!"),
// mesma coisa do telefone so que para email
body('email')
.isEmail().withMessage('Deve ser um email válido')
.bail()
.custom(async (email) => {
const emailExistente = await usuariosModel.findUserByEmail(email)
if (emailExistente.length > 0) {
throw new Error("E-mail já em uso! Tente outro");
}
return true;
}),
.isEmail().withMessage('Deve ser um email válido'),
// verifica se a senha tem o tamanho minimo de 8 e no max 30 digitos, se pelo menos 1 caracter especial, 1 maiusculo e 1 minusculo, tudo a partir de regex.
body('senha')
.isLength({ min: 8, max: 30 })
.withMessage('A senha deve ter pelo menos 8 e no máximo 30 caracteres!')
.bail()
.matches(/[A-Z]/).withMessage('A senha deve conter pelo menos uma letra maiúscula.')
.bail()
.matches(/[a-z]/).withMessage('A senha deve conter pelo menos uma letra minúscula.')
.bail()
.matches(/[0-9]/).withMessage('A senha deve conter pelo menos um número inteiro.')
.bail()
.matches(/[!@#$%^&*(),.?":{}|<>]/).withMessage('A senha deve conter pelo menos um caractere especial.')
.bail()
],
regrasValidacaoEntrar: [
// verifica se o usuário tem no minimo 4 caracteres ou no maximo 30.
Expand Down Expand Up @@ -319,14 +289,14 @@ const usuariosController = {
erros: null
}
res.render("./pages/edit-profile", jsonResult)
}else{
if(caminhoFoto != req.file.filename){
} else {
if (caminhoFoto != req.file.filename) {
removeImg(`img/imagens-servidor/perfil/${caminhoFoto}`)
}
caminhoFoto = req.file.filename
}
let resultado = await usuariosModel.updateUser({CAMINHO_FOTO:caminhoFoto}, req.session.autenticado.id)

let resultado = await usuariosModel.updateUser({ CAMINHO_FOTO: caminhoFoto }, req.session.autenticado.id)
} catch (errors) {
console.log("falha ao carregar arquivo!")
console.log(errors)
Expand All @@ -337,7 +307,6 @@ const usuariosController = {
atualizarUsuario: async (req, res) => {
const user = req.session.autenticado ? await usuariosModel.findUserById(req.session.autenticado.id) : new Error("Erro ao acessar o banco")
let errors = validationResult(req)
console.log(errors)
if (!errors.isEmpty()) {
const jsonResult = {
page: "../partial/edit-profile/dados-pessoais",
Expand All @@ -360,20 +329,60 @@ const usuariosController = {
res.render("./pages/edit-profile", jsonResult)
} else {
const { nome, nascimento, usuario, email } = req.body
const idUser = req.session.autenticado.id
dadosForm = {
NOME_USUARIO: nome,
NICKNAME_USUARIO: usuario,
DATA_NASC_USUARIO: nascimento,
EMAIL_USUARIO: email,
}
try {
const resultados = await usuariosModel.updateUser(dadosForm, idUser);
const userBd = await usuariosModel.findUserById(resultados.insertId);
req.session.autenticado = { autenticado: usuario, id: resultados.insertId, foto: userBd[0].CAMINHO_FOTO }
console.log(resultados[0])
console.log("Usuário atualizado!")
const resultados = await usuariosModel.updateUser(dadosForm, req.session.autenticado.id);

if (!resultados.isEmpty) {
const user = await usuariosModel.findUserById(req.session.autenticado.id);
const data = new Date(user[0].DATA_NASC_USUARIO)
const dataFormatada = data.toISOString().split('T')[0];
if (resultados.changedRows == 1) {
req.session.autenticado = {
autenticado: user[0].NOME_USUARIO,
id: user[0].ID_USUARIO,
foto: user[0].CAMINHO_FOTO
}
const jsonResult = {
page: "../partial/edit-profile/dados-pessoais",
pageClass: "dadosPessoais",
usuario: user[0],
erros: null,
valores: {
nome: user[0].NOME_USUARIO,
nascimento: dataFormatada,
cpf: user[0].CPF_USUARIO,
contato: user[0].CONTATO,
usuario: user[0].NICKNAME_USUARIO,
email: user[0].EMAIL_USUARIO,
},
token: { msg: "Perfil atualizado com sucesso!", type:"success"}
}
res.render("./pages/edit-profile", jsonResult)
} else {
const jsonResult = {
page: "../partial/edit-profile/dados-pessoais",
pageClass: "dadosPessoais",
usuario: user[0],
erros: null,
valores: {
nome: user[0].NOME_USUARIO,
nascimento: dataFormatada,
cpf: user[0].CPF_USUARIO,
contato: user[0].CONTATO,
usuario: user[0].NICKNAME_USUARIO,
email: user[0].EMAIL_USUARIO,
},
token: { msg: "Nenhuma alteração feita", type:"" }
}
res.render("./pages/edit-profile", jsonResult)
}
}
} catch (erros) {
console.log(erros)
res.render("pages/error-500")
Expand Down
6 changes: 6 additions & 0 deletions app/public/css/home/home.css
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,12 @@
border: 2px solid var(--cor-secundaria);
border-radius: 50px;
z-index: 100;
&.success{
color: var(--cor-success);
}
&.danger{
color: var(--cor-danger);
}
}

.userLink {
Expand Down
3 changes: 1 addition & 2 deletions app/routes/router.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ const usuariosController = require("../controller/usuariosController");
const resenhaControl = require("../controller/resenhasController");
// UTIL ---------------
const upload = require("../util/upload");
const uploadCapa = upload("./app/public/img/imagens-servidor/capas-img/", 3, ['jpeg', 'jpg', 'png']);
const uploadPerfil = upload("./app/public/img/imagens-servidor/perfil/", 3, ['jpeg', 'jpg', 'png']);
const uploadCapa = upload("./app/public/img/imagens-servidor/capas-img/", 5, ['jpeg', 'jpg', 'png']);


// Página de falha de autenticação ---------
Expand Down
17 changes: 10 additions & 7 deletions app/routes/routerEditProfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@ var router = express.Router();
const middleWares = require("../sessions/middleswares");
// CONTROLLERS -------------
const usuariosController = require("../controller/usuariosController");
const resenhaControl = require("../controller/resenhasController");
const { findUserById } = require("../models/usuariosModel");
// UTIL ---------------
const uploadPerfil = require("../util/upload")("./app/public/img/imagens-servidor/perfil/", 3, ['jpeg', 'jpg', 'png'],);

const upload = require("../util/upload");
const uploadPerfil = upload("./app/public/img/imagens-servidor/perfil/", 3, ['jpeg', 'jpg', 'png'],);
// Página de falha de autenticação ---------
const destinoDeFalha = {
page: "../partial/template-login/login",
Expand All @@ -25,7 +24,8 @@ router.get("/edit-profile", middleWares.verifyAutenticado, middleWares.verifyAut
page: "../partial/edit-profile/index",
pageClass: "index",
usuario: user[0],
modalAberto: false
modalAberto: false,
token:null
}
res.render("./pages/edit-profile", jsonResult)
} catch (error) {
Expand All @@ -41,7 +41,9 @@ router.get("/security", middleWares.verifyAutenticado, middleWares.verifyAutoriz
const jsonResult = {
page: "../partial/edit-profile/security",
pageClass: "security",
usuario: user[0]
usuario: user[0],
token:null

}
res.render("./pages/edit-profile", jsonResult)
} catch (error) {
Expand All @@ -68,7 +70,8 @@ router.get("/dados-pessoais", middleWares.verifyAutenticado, middleWares.verifyA
contato: user[0].CONTATO,
usuario: user[0].NICKNAME_USUARIO,
email: user[0].EMAIL_USUARIO,
}
},
token:null
}
res.render("./pages/edit-profile", jsonResult)
} catch (error) {
Expand All @@ -86,7 +89,7 @@ router.post("/mudarFoto",
}
)

router.post("/atualizarDados", usuariosController.regrasValidacaoAtualizarConta,function (req, res) {
router.post("/atualizarDados",middleWares.verifyAutenticado, middleWares.verifyAutorizado("pages/template-login", destinoDeFalha), usuariosController.regrasValidacaoAtualizarConta,function (req, res) {
usuariosController.atualizarUsuario(req, res)
}
)
Expand Down
23 changes: 19 additions & 4 deletions app/views/pages/edit-profile.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,27 @@
<link rel="stylesheet" href="./css/base.css">
<link rel="stylesheet" href="./css/home/home.css">
</head>
<% var tituloPage="" ; if(pageClass=="index" ){ tituloPage="Editar perfil" }else if(pageClass=="dadosPessoais" ){
tituloPage="Dados pessoais" }else if(pageClass=="security" ){ tituloPage="Senha e segurança" } %>
<%
var tituloPage="";
if(pageClass=="index" ){
tituloPage="Editar perfil"
}else if(pageClass=="dadosPessoais" ){
tituloPage="Dados pessoais"
}else if(pageClass=="security" ){
tituloPage="Senha e segurança"
}
%>

<body>
<% if(token) {%>
<h4 class="token-alert link <%= token.type %>">
<%= token.msg %>
</h4>
<% } %>
<header class="header__edit-profile">
<button class="btn homebtn" onclick="window.history.back();"><i class="bi bi-arrow-left"></i></button>
<a href="<%=pageClass == 'index'?'/profile':'/edit-profile' %>"
class="btn homebtn"><i class="bi bi-arrow-left"></i></a>
<h1 class="supertitle">
<%= tituloPage %>
</h1>
Expand All @@ -25,7 +40,7 @@
<h3 class="subtitle">
<%= usuario.NICKNAME_USUARIO %>
</h3>
<article class="foto__perfil mudar__foto-btn" data-openmodal="#mudarFotoModal">
<article class="foto__perfil <%= pageClass == 'index' ? 'mudar__foto-btn' : '' %>" data-openmodal="#mudarFotoModal">
<img src="./img/imagens-servidor/perfil/<%= usuario.CAMINHO_FOTO %>"
alt="foto de perfil do usuário">
</article>
Expand Down
4 changes: 2 additions & 2 deletions app/views/partial/edit-profile/dados-pessoais.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,14 @@ let msgErro= {
<span class="invalid-msg smallText">
<%= msgErro.cpf %>
</span>
<input type="text" name="cpf" id="cpf" class="input__control inputMask" placeholder="cpf" maxlength="11" required value="<%= valores.cpf %>" disabled>
<input type="text" name="cpf" id="cpf" class="input__control inputMask" placeholder="cpf" maxlength="11" required value="<%= valores.cpf %>" readonly>
<label for="cpf">Digite seu CPF</label>
</article>
<article class="input__container disabled <%= classeErro.contato %>">
<span class="invalid-msg smallText">
<%= msgErro.contato %>
</span>
<input type="tel" name="contato" id="contato" class="input__control inputMask" placeholder="contato" maxlength="14" required value="<%= valores.contato %>" disabled>
<input type="tel" name="contato" id="contato" class="input__control inputMask" placeholder="contato" maxlength="14" required value="<%= valores.contato %>" readonly>
<label for="contato">Digite seu número de telefone</label>
</article>
<article class="input__container <%= classeErro.usuario %>">
Expand Down
2 changes: 1 addition & 1 deletion app/views/partial/template-home/view-resenha.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
<i class="bi bi-star-fill"></i>
</article>
</footer>
<button class="denunciar-btn link ml-auto" data-openmodal="#denunciarModal"><i class="bi bi-exclamation-triangle"></i> Denunciar</button>
<button class="denunciar-btn link ml-auto" data-openmodal="#denunciarModal"><i class="bi bi-exclamation-triangle"></i>Denunciar</button>
</article>
<footer class="comentarios__container">
<h3 class="subtitle mb-2">Comentários</h3>
Expand Down

0 comments on commit 8e3ad93

Please sign in to comment.