Updated env + Added SignIn/SignUp
This commit is contained in:
parent
2218d2663b
commit
33c87b434c
25 changed files with 625 additions and 41 deletions
44
src/middleware/Auth.js
Normal file
44
src/middleware/Auth.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
import Pages from "./Pages";
|
||||
|
||||
import Users from "../models/users";
|
||||
|
||||
/**
|
||||
* Classe permettant la gestion des utilisateurs
|
||||
*/
|
||||
class Auth extends Pages {
|
||||
/**
|
||||
* Méthode permettant de créer un nouvel utilisateur
|
||||
* @param {Req} req
|
||||
*
|
||||
* @return {Object}
|
||||
*/
|
||||
static async register(req) {
|
||||
try {
|
||||
const { username, email, password } = req.body;
|
||||
const user = new Users({
|
||||
username,
|
||||
email,
|
||||
salt: password,
|
||||
});
|
||||
|
||||
const resUser = await user.save();
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
req.login(resUser, (errLogin) => {
|
||||
if (errLogin) {
|
||||
return reject(errLogin);
|
||||
}
|
||||
|
||||
return resolve(null);
|
||||
});
|
||||
});
|
||||
|
||||
return resUser;
|
||||
} catch (err) {
|
||||
req.flash("error", err.toString());
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default Auth;
|
62
src/middleware/Pages.js
Normal file
62
src/middleware/Pages.js
Normal file
|
@ -0,0 +1,62 @@
|
|||
import config from "../config";
|
||||
import { getBaseUrl } from "../helpers";
|
||||
|
||||
/**
|
||||
* Classe permettant de gérer les page du back office
|
||||
*/
|
||||
class Pages {
|
||||
/**
|
||||
* @param {Object} req
|
||||
* @param {String} viewname
|
||||
*/
|
||||
constructor(req, viewname) {
|
||||
this.req = req;
|
||||
this.pageContent = {
|
||||
page: {
|
||||
title: null,
|
||||
user: null,
|
||||
},
|
||||
viewname: `pages/${viewname}`,
|
||||
};
|
||||
|
||||
this.user = null;
|
||||
this.pagename = viewname;
|
||||
|
||||
if (req.session && req.session.passport && req.session.passport.user) {
|
||||
this.user = req.session.passport.user;
|
||||
}
|
||||
|
||||
if (!req.query.page) {
|
||||
req.query.page = 1;
|
||||
}
|
||||
if (!req.query.limit) {
|
||||
req.query.limit = config.pagination;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Rendu de la page
|
||||
* @return {Object}
|
||||
*/
|
||||
render() {
|
||||
this.pageContent.session = this.req.session;
|
||||
this.pageContent.flashInfo = this.req.flash("info");
|
||||
this.pageContent.error = this.req.flash("error") || null;
|
||||
this.pageContent.query = this.req.query;
|
||||
this.pageContent.params = this.req.params;
|
||||
this.pageContent.user = this.user;
|
||||
this.pageContent.config = config;
|
||||
this.pageContent.getBaseUrl = getBaseUrl();
|
||||
|
||||
if (this.req.session.flash && this.req.session.flash.error) {
|
||||
// eslint-disable-next-line prefer-destructuring
|
||||
this.pageContent.page.failureFlash =
|
||||
this.req.session.flash.error[0];
|
||||
this.req.session.flash = null;
|
||||
}
|
||||
|
||||
return this.pageContent;
|
||||
}
|
||||
}
|
||||
|
||||
export default Pages;
|
Loading…
Add table
Add a link
Reference in a new issue