Profile Picture

This commit is contained in:
SowinskiBraeden committed 2020-11-30 10:25:40 -08:00
1 parent 867770e14e
commit 43f662982e
365 files changed
+45560 -167

No files matched your search

+94 -2
View File
@@ -6,14 +6,102 @@ const passport = require('passport');
const User = require('../models/User');
const { forwardAuthenticated } = require('../config/auth');
const fs = require('fs');
const path = require('path');
const multer = require('multer');
let storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, 'routes/uploads')
},
filename: (req, file, cb) => {
cb(null, file.fieldname + '-' + Date.now())
}
});
let upload = multer({ storage: storage });
// Login Page
router.get('/login', forwardAuthenticated, (req, res) => res.render('login'));
// Register Page
router.get('/register', forwardAuthenticated, (req, res) => res.render('register'));
// Edit page
router.get('/edit', (req, res) => res.render('edit'));
// Edit
router.post('/edit', (req, res) => {
const { user, name, email, oldPassword, newPassword, newPassword2 } = req.body;
let errors = [];
if (!name || !email || !oldPassword || !newPassword || !newPassword2) {
errors.push({ msg: 'Please enter all fields' });
}
if (oldPassword != user.password) {
errors.push({ msg: 'Password is incorrect' });
}
if (newPassword != newPassword2) {
errors.push({ msg: 'New password doesnt match' });
}
if (oldPassword == newPassword) {
errors.push({ msg: 'Cant use the same password' })
}
if (newPassword.length < 6) {
errors.push({ msg: 'Password must be at least 6 characters' });
}
if (errors.length > 0) {
res.render('register', {
errors,
name,
email,
oldPassword,
newPassword2,
newPassword2
});
} else {
User.findOne({ email: email }).then(user => {
if (user) {
errors.push({ msg: 'Email already exists' });
res.render('register', {
errors,
name,
email,
oldPassword,
newPassword,
newPassword2
});
} else {
bcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(newPassword, salt, (err, hash) => {
if (err) throw err;
user.password = hash;
user.name = name;
user.email = email;
user
.save()
.then(user => {
req.flash(
'success_msg',
'You are now registered and can log in'
);
res.redirect('/users/login');
})
.catch(err => console.log(err));
});
});
}
});
}
});
// Register
router.post('/register', (req, res) => {
router.post('/register', upload.single('image'), (req, res, next) => {
const { name, email, password, password2 } = req.body;
let errors = [];
@@ -51,8 +139,12 @@ router.post('/register', (req, res) => {
} else {
const newUser = new User({
name,
image: {
data: fs.readFileSync(path.join(__dirname + '/uploads/' + req.file.filename)),
contentType: 'image/png'
},
email,
password
password,
});
bcrypt.genSalt(10, (err, salt) => {