Correction du bogue sur la date_of_birth (supprimée, finalement)
This commit is contained in:
31
app.js
31
app.js
@@ -5,7 +5,8 @@ const app = express()
|
|||||||
const path = require("path")
|
const path = require("path")
|
||||||
const publicDir = path.join(__dirname, './public')
|
const publicDir = path.join(__dirname, './public')
|
||||||
const bcrypt = require("bcryptjs")
|
const bcrypt = require("bcryptjs")
|
||||||
var bodyParser = require('body-parser')
|
const bodyParser = require('body-parser')
|
||||||
|
const dateFormat = require('dateformat');
|
||||||
|
|
||||||
|
|
||||||
/* Connexion à la BDD MySQL */
|
/* Connexion à la BDD MySQL */
|
||||||
@@ -28,13 +29,9 @@ db.connect((error) => {
|
|||||||
app.set('view engine', 'hbs');
|
app.set('view engine', 'hbs');
|
||||||
app.use(express.static(publicDir));
|
app.use(express.static(publicDir));
|
||||||
app.use('/css', express.static(__dirname + '/node_modules/bootstrap/dist/css'));
|
app.use('/css', express.static(__dirname + '/node_modules/bootstrap/dist/css'));
|
||||||
|
|
||||||
/* configure the Express.js server to receive the form values as JSON */
|
|
||||||
app.use(bodyParser.urlencoded({extended: false}));
|
app.use(bodyParser.urlencoded({extended: false}));
|
||||||
app.use(express.json())
|
app.use(express.json())
|
||||||
|
|
||||||
const dateFormat = require('dateformat');
|
|
||||||
|
|
||||||
|
|
||||||
// ******************************************* Arrivée sur la page d'accueil *******************************************
|
// ******************************************* Arrivée sur la page d'accueil *******************************************
|
||||||
app.get("/", (req, res) => {
|
app.get("/", (req, res) => {
|
||||||
@@ -55,35 +52,39 @@ app.get("/", (req, res) => {
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get("/login", (req, res) => { res.render("login") });
|
app.get("/index", (req, res) => { res.render("index") });
|
||||||
app.get("/register", (req, res) => { res.render("register") });
|
app.get("/login", (req, res) => { res.render("login") });
|
||||||
app.get("/index", (req, res) => { res.render("index") });
|
app.get("/register", (req, res) => {
|
||||||
|
res.render("register", { session: req.query.s, role: req.query.r})
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// ******************************************* Création d'un nouveau compte *******************************************
|
// ******************************************* Création d'un nouveau compte *******************************************
|
||||||
app.post("/auth/register", (req, res) => {
|
app.post("/auth/register", (req, res) => {
|
||||||
const { gender, name, firstname, nickname, dob, title, email, password, password_confirm, session, role } = req.body
|
const { gender, name, firstname, nickname, title, email, password, password_confirm, session, role } = req.body
|
||||||
|
|
||||||
db.query('SELECT email FROM user WHERE email = ?', [email], async (error, result) => {
|
db.query('SELECT email FROM user WHERE email = ? OR nickname = ?', [email, nickname], async (error, result) => {
|
||||||
if(error){
|
if(error){
|
||||||
console.log(error)
|
console.log(error)
|
||||||
}
|
}
|
||||||
if( result.length > 0 ) {
|
if( result.length > 0 ) {
|
||||||
return res.render('register', {
|
return res.render('register', {
|
||||||
error: 'Adresse email déjà utilisée : choisissez-en une autre ou bien cliquez sur le lien ci-dessus pour vous connecter'
|
error: 'Adresse email ou pseudo déjà utilisé : modifiez votre saisie ou bien cliquez sur le lien ci-dessus pour vous connecter',
|
||||||
|
session: session, role: role
|
||||||
})
|
})
|
||||||
} else if(password !== password_confirm) {
|
} else if(password !== password_confirm) {
|
||||||
return res.render('register', {
|
return res.render('register', {
|
||||||
error: 'Vos mots de passe ne correspondent pas'
|
error: 'Vos mots de passe ne correspondent pas',
|
||||||
|
session: session, role: role
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
let hashedPassword = await bcrypt.hash(password, 8)
|
let hashedPassword = await bcrypt.hash(password, 8);
|
||||||
db.query('INSERT INTO user SET?', {gender : (gender != undefined ? gender : ""), firstname: firstname, name: name, date_of_birth: dob, title: title, email: email, password: hashedPassword}, (err, result) => {
|
db.query('INSERT INTO user SET?', {gender : (gender != undefined ? gender : ""), firstname: firstname, name: name, title: title, email: email, nickname : nickname, password: hashedPassword}, (err, result) => {
|
||||||
if(error) {
|
if(error) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
} else {
|
} else {
|
||||||
return res.render('login-session')
|
return res.render('login', { session: session, role: role, email: email, nickname: nickname })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -27,11 +27,11 @@
|
|||||||
<input type="hidden" name="role" id="role-reg" value="{{role}}">
|
<input type="hidden" name="role" id="role-reg" value="{{role}}">
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="email-reg" class="form-label">Adresse email</label>
|
<label for="email-reg" class="form-label">Adresse email</label>
|
||||||
<input type="text" class="form-control" id="email-reg" name="email">
|
<input type="text" class="form-control" id="email-reg" name="email" value="{{email}}">
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="nickname-reg" class="form-label">Votre pseudo</label>
|
<label for="nickname-reg" class="form-label">Votre pseudo</label>
|
||||||
<input type="text" class="form-control" id="nickname-reg" name="nickname">
|
<input type="text" class="form-control" id="nickname-reg" name="nickname" value="{{nickname}}">
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="password-reg" class="form-label">Votre mot de passe *</label>
|
<label for="password-reg" class="form-label">Votre mot de passe *</label>
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
<button type="submit" class="btn btn-primary">Se connecter</button>
|
<button type="submit" class="btn btn-primary">Se connecter</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<a href="/register">Pas encore inscrit ? Cliquez ici pour vous enregistrer.</a>
|
<a href="/register?s={{session}}&r={{role}}">Pas encore inscrit ? Cliquez ici pour vous enregistrer.</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#if error }}
|
{{#if error }}
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
<div class="card-header">Veuillez vous enregistrer</div>
|
<div class="card-header">Veuillez vous enregistrer</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form action="/auth/register" method="POST">
|
<form action="/auth/register" method="POST">
|
||||||
|
<input type="hidden" name="session" value="{{this.session}}">
|
||||||
|
<input type="hidden" name="role" value="{{this.role}}">
|
||||||
<div class="mb-3 inline-flex">
|
<div class="mb-3 inline-flex">
|
||||||
<input type="radio" id="male" name="gender" value="M">
|
<input type="radio" id="male" name="gender" value="M">
|
||||||
<label for="male">Monsieur</label>
|
<label for="male">Monsieur</label>
|
||||||
@@ -40,11 +42,7 @@
|
|||||||
<label for="nickname-reg" class="form-label">Pseudo *</label>
|
<label for="nickname-reg" class="form-label">Pseudo *</label>
|
||||||
<input type="text" class="form-control" id="nickname-reg" name="nickname">
|
<input type="text" class="form-control" id="nickname-reg" name="nickname">
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="dob-reg" class="form-label">Date de naissance</label>
|
|
||||||
<input type="date" class="form-control-sm" id="dob-reg" name="dob">
|
|
||||||
</div>
|
|
||||||
<div class="mb-3">
|
|
||||||
<label for="title-reg" class="form-label">Titre / fonction</label>
|
<label for="title-reg" class="form-label">Titre / fonction</label>
|
||||||
<input type="text" class="form-control" id="title-reg" name="title">
|
<input type="text" class="form-control" id="title-reg" name="title">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user