fipamo/brain/routes/back/index.js

118 lines
2.6 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.sync().then(f =>
{
Models.FreshPost.findAll(
{
order: [
['id', 'DESC']
],
limit: 5
}).then(function(posts)
{
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: 'Dashboard',
user_status: loggedIn,
items: filtered
});
}).then(function(value)
{
//console.log(value);
}).catch(function(err)
{
//next(err);
})
}).catch(err =>
{
console.log("ERR: " + err);
})
});
//--------------------------
// SETTINGS
//--------------------------
router.get('/settings/', function(req, res)
{
if (req.session.user)
{
res.render('dash/settings',
{
title: 'Dashboard | Settings',
mode: 'admin'
});
}
else
{
res.redirect('/@/dashboard');
}
});
//--------------------------
// Login
//--------------------------
/* Handle Login POST */
router.post('/login', function(req, res, next)
{
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(err =>
{
return res.json(
{
message: 'NOT FOUND, HAWS'
});
})
});
//--------------------------
// Logout
//--------------------------
router.post('/logout', function(req, res, next)
{
req.logout();
return res.json(
{
message: 'LOGGED OUT'
});
});
module.exports = router;
var isValidPassword = function(user, password)
{
return bCrypt.compareSync(password, user.password);
}