First Commit
This commit is contained in:
commit
601e886c14
2123 files changed
+334815
No files matched your search
@@ -0,0 +1,28 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const { ensureAuthenticated, forwardAuthenticated } = require('../config/auth');
|
||||
var UserModel = require('../models/User.js');
|
||||
|
||||
// Welcome Page
|
||||
router.get('/', forwardAuthenticated, (req, res) => res.render('welcome'));
|
||||
|
||||
// Dashboard
|
||||
router.get('/dashboard', ensureAuthenticated, function(req, res) {
|
||||
UserModel.find({}, function(err, data) {
|
||||
res.render('dashboard', {
|
||||
user : req.user,
|
||||
members: data
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Member Profile
|
||||
router.get('/profile', ensureAuthenticated, function(req, res) {
|
||||
UserModel.find({}, function(err, data) {
|
||||
res.render('profile', {
|
||||
memberProfile: req.eachMember
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
@@ -0,0 +1,95 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const bcrypt = require('bcryptjs');
|
||||
const passport = require('passport');
|
||||
// Load User model
|
||||
const User = require('../models/User');
|
||||
const { forwardAuthenticated } = require('../config/auth');
|
||||
|
||||
// Login Page
|
||||
router.get('/login', forwardAuthenticated, (req, res) => res.render('login'));
|
||||
|
||||
// Register Page
|
||||
router.get('/register', forwardAuthenticated, (req, res) => res.render('register'));
|
||||
|
||||
// Register
|
||||
router.post('/register', (req, res) => {
|
||||
const { name, email, password, password2 } = req.body;
|
||||
let errors = [];
|
||||
|
||||
if (!name || !email || !password || !password2) {
|
||||
errors.push({ msg: 'Please enter all fields' });
|
||||
}
|
||||
|
||||
if (password != password2) {
|
||||
errors.push({ msg: 'Passwords do not match' });
|
||||
}
|
||||
|
||||
if (password.length < 6) {
|
||||
errors.push({ msg: 'Password must be at least 6 characters' });
|
||||
}
|
||||
|
||||
if (errors.length > 0) {
|
||||
res.render('register', {
|
||||
errors,
|
||||
name,
|
||||
email,
|
||||
password,
|
||||
password2
|
||||
});
|
||||
} else {
|
||||
User.findOne({ email: email }).then(user => {
|
||||
if (user) {
|
||||
errors.push({ msg: 'Email already exists' });
|
||||
res.render('register', {
|
||||
errors,
|
||||
name,
|
||||
email,
|
||||
password,
|
||||
password2
|
||||
});
|
||||
} else {
|
||||
const newUser = new User({
|
||||
name,
|
||||
email,
|
||||
password
|
||||
});
|
||||
|
||||
bcrypt.genSalt(10, (err, salt) => {
|
||||
bcrypt.hash(newUser.password, salt, (err, hash) => {
|
||||
if (err) throw err;
|
||||
newUser.password = hash;
|
||||
newUser
|
||||
.save()
|
||||
.then(user => {
|
||||
req.flash(
|
||||
'success_msg',
|
||||
'You are now registered and can log in'
|
||||
);
|
||||
res.redirect('/users/login');
|
||||
})
|
||||
.catch(err => console.log(err));
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Login
|
||||
router.post('/login', (req, res, next) => {
|
||||
passport.authenticate('local', {
|
||||
successRedirect: '/dashboard',
|
||||
failureRedirect: '/users/login',
|
||||
failureFlash: true
|
||||
})(req, res, next);
|
||||
});
|
||||
|
||||
// Logout
|
||||
router.get('/logout', (req, res) => {
|
||||
req.logout();
|
||||
req.flash('success_msg', 'You are logged out');
|
||||
res.redirect('/users/login');
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
Reference in new issue
Block a user