forked from projects/fipamo
81 lines
1.8 KiB
JavaScript
81 lines
1.8 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const Models = require('../../models');
|
|
const bCrypt = require('bcrypt-nodejs');
|
|
//--------------------------
|
|
// Index
|
|
//--------------------------
|
|
router.get('/', function(req, res) {
|
|
var loggedIn = false;
|
|
if (req.session.user) loggedIn = true;
|
|
Models.FreshPost.findAll({
|
|
order: [['id', 'DESC']]
|
|
})
|
|
.then(function(posts) {
|
|
let title = 'Fipamo Admin';
|
|
let welcome = ''(!loggedIn)
|
|
? (welcome = 'Hello.')
|
|
: (welcome = 'Welcome back, ' + req.session.user.handle);
|
|
let filtered = [];
|
|
for (let index = 0; index < posts.length; index++) {
|
|
let item = posts[index].post;
|
|
if (typeof item.deleted == 'undefined' || item.deleted == false) {
|
|
filtered.push(posts[index]);
|
|
} else {
|
|
continue;
|
|
}
|
|
}
|
|
res.render('dash/index', {
|
|
title: title,
|
|
welcome: welcome,
|
|
user_status: loggedIn,
|
|
items: filtered
|
|
});
|
|
})
|
|
.then(() => {
|
|
//console.log(value);
|
|
})
|
|
.catch(() => {
|
|
//next(err);
|
|
});
|
|
});
|
|
//--------------------------
|
|
// Login
|
|
//--------------------------
|
|
/* Handle Login POST */
|
|
router.post('/login', function(req, res) {
|
|
Models.User.findOne({
|
|
where: {
|
|
handle: req.body.handle
|
|
}
|
|
})
|
|
.then(user => {
|
|
if (!isValidPassword(user, req.body.password)) {
|
|
return res.json({
|
|
message: 'CHECK YOUR PASSWORD'
|
|
});
|
|
}
|
|
let session = req.session;
|
|
session.user = user;
|
|
res.redirect('/@/dashboard');
|
|
})
|
|
.catch(() => {
|
|
return res.json({
|
|
message: 'NOT FOUND, HAWS'
|
|
});
|
|
});
|
|
});
|
|
//--------------------------
|
|
// Logout
|
|
//--------------------------
|
|
router.post('/logout', function(req, res) {
|
|
req.logout();
|
|
return res.json({
|
|
message: 'LOGGED OUT'
|
|
});
|
|
});
|
|
module.exports = router;
|
|
var isValidPassword = function(user, password) {
|
|
return bCrypt.compareSync(password, user.password);
|
|
};
|