diff --git a/routes/authentification.js b/routes/authentification.js index 8ceb94bb4932059011de6737396c8388dd856fa4..77c551ada58b0ab3f82de53976db2f8f12c1c1fb 100644 --- a/routes/authentification.js +++ b/routes/authentification.js @@ -22,37 +22,31 @@ router.get('/register', function(req, res) { }); router.post('/register', async function(req, res) { - /*User.register(new User({ username : req.body.username }), req.body.password, function(err, account) { - if (err) { - return res.render('register', { account : account }); - } - - passport.authenticate('local')(req, res, function () { - res.redirect('/'); - }); - });"*/ - try { - const { username, password } = req.body; - const existingUser = await User.findOne({ username }); + try { + const { username, password, role } = req.body; + const existingUser = await User.findOne({ username }); - if (existingUser) { - return res.render('register', { error: 'Cet utilisateur existe déjà.' }); - } + if (existingUser) { + return res.render('register', { error: 'Cet utilisateur existe déjà.' }); + } - const newUser = new User({ - username: username, - password: password - }); - await newUser.save(); + const newUser = new User({ + username: username, + password: password, + isAgent: role === 'agent' + }); - passport.authenticate('local')(req, res, function () { - res.redirect('/'); - }); - } catch (error) { - res.render('register', { error: error.message }); - } + await newUser.save(); + + passport.authenticate('local')(req, res, function () { + res.redirect('/'); + }); + } catch (error) { + res.render('register', { error: error.message }); + } }); + router.get('/logout', isAuthenticated, function(req, res, next) { req.logout(function(err) { if (err) { diff --git a/schemas/models.js b/schemas/models.js index d961e582fd4922276c8dd166efac8a92430923bd..8d4de7fb7f20e718c027a6c8533bcd4230efb031 100644 --- a/schemas/models.js +++ b/schemas/models.js @@ -4,7 +4,8 @@ var passportLocalMongoose = require('passport-local-mongoose'); var userSchema = new Schema({ username: { type: String, required: true }, - password: { type: String, required: true } + password: { type: String, required: true }, + isAgent: { type: Boolean, default: false } }); userSchema.plugin(passportLocalMongoose); diff --git a/views/register.pug b/views/register.pug index 3d1cc3696ab1daf5ee221f5f50f70ca8aafb7443..c7cd89588952a4f4fec5f62ab360938517d145f8 100644 --- a/views/register.pug +++ b/views/register.pug @@ -5,11 +5,17 @@ block content h1 Register p.lead Créez votre compte br - form(role='form', action="/register",method="post", style='max-width: 300px;') + form(role='form', action="/register", method="post", style='max-width: 300px;') .form-group input.form-control(type='text', name="username", placeholder='Enter Username') .form-group input.form-control(type='password', name="password", placeholder='Password') + + .form-group + select.form-control(name='role') + option(value='consultant') Consultant + option(value='agent') Agent + button.btn.btn-default(type='submit') Submit a(href='/') button.btn.btn-primary(type="button") Cancel