- Rid roles and get auth working

This commit is contained in:
2018-03-05 21:30:39 -05:00
parent 0519e4feff
commit b2e91f491e
8 changed files with 63 additions and 485 deletions

View File

@@ -54,6 +54,35 @@ Router.route('/login')
UserModel.authenticateUser(AuthEvents, data, headers);
});
Router.route('/secure/:auth/:expires?')
.post((req, res) => {
if (req.params.auth === 'gutenberg') {
let TokenEvents = new EventEmitter();
let expires = req.params.expires || '15m';
let token = { authorized: true, can: ['add','edit','delete','manage','super','update','view'] };
TokenEvents.once('token:create', (err, token) => {
if (err) {
res.status(500).json({
authorized: false,
err: err
});
}
if (token) {
res.status(200).json({
authorized: true,
token: token
});
}
});
Token.create(TokenEvents, login.user, expires);
} else {
res.status(403).json({ authorized: false, message: 'operation not authorized' });
}
});
Router.route('/reset/:id?/:token?')
.get((req, res) => {
var id = req.params.id ? decodeURIComponent(req.params.id) : false;

View File

@@ -1,152 +0,0 @@
var Express = require('express');
var Router = Express.Router();
var EventEmitter = require('events');
var RoleModel = require('../models/role');
var Token = require('../modules/token');
function updateRole (req, res, next) {
Token.verifyThen(req.get('authorization'), 'super', (err, decoded) => {
if (err) {
res.status(403).json({ message: 'User not authorized to perform this action.', err: err });
return;
}
var RoleEvents = new EventEmitter();
var id = req.params.id;
var data = req.body;
RoleEvents.once('updateRole', (err, result) => {
if (err) {
res.status(500).json({message: 'Could not update role id ' + id, err: err});
}
if (result) {
res.status(200).json(result);
}
});
RoleModel.updateRole(RoleEvents, id, data);
});
}
Router.route('/')
.post((req, res, next) => {
Token.verifyThen(req.get('authorization'), 'super', (err, decoded) => {
if (err) {
res.status(403).json({ message: 'User not authorized to perform this action.', err: err });
return;
}
var RoleEvents = new EventEmitter();
var role = req.body;
RoleEvents.once('createRole', (err, result) => {
if (err) {
res.status(500).json({ message: 'Could not create role', err: err });
}
if (result) {
res.status(200).json(result);
}
});
RoleModel.createRole(RoleEvents, role);
});
});
Router.route('/search/:find?')
.get((req, res, next) => {
Token.verifyThen(req.get('authorization'), 'super', (err, decoded) => {
if (err) {
res.status(403).json({ message: 'User not authorized to perform this action.', err: err });
return;
}
var RoleEvents = new EventEmitter();
// Process parameters
var find = req.params.find ? decodeURIComponent(req.params.find) : false;
if (find) {
find = {
'name': new RegExp(find, 'i')
};
}
// Setup query object
var query = {
find: find || (req.query.find ? JSON.parse(decodeURIComponent(req.query.find)) : {}),
select: req.query.select ? decodeURIComponent(req.query.select) : null,
options: {
limit: req.query.limit ? parseInt(req.query.limit) : 0,
skip: req.query.ski ? parseInt(req.query.skip) : 0,
sort: req.query.sort ? JSON.parse(decodeURIComponent(req.query.sort)) : { 'value': 1 }
}
};
RoleEvents.once('getRoles', (err, result) => {
if (err) {
res.status(500).json({ message: 'There was an error performing the role search', err: err });
}
if (result) {
res.status(200).json(result);
}
});
RoleModel.getRoles(RoleEvents, query);
});
});
Router.route('/:id?')
.get( (req, res, next) => {
Token.verifyThen(req.get('authorization'), 'view', (err, decoded) => {
if (err) {
res.status(403).json({ message: 'User not authorized to perform this action.', err: err });
return;
}
var RoleEvents = new EventEmitter();
var id = req.params.id || false;
var method = id ? 'getRole' : 'getRoles';
RoleEvents.once(method, (err, result) => {
if (err) {
res.status(500).json({ message: 'Could not get role' + (id ? '' : 's'), err: err });
}
if (result) {
res.status(200).json(result);
}
});
RoleModel[method](RoleEvents, id || null);
});
})
.put( updateRole )
.patch( updateRole )
.delete( (req, res, next) => {
Token.verifyThen(req.get('authorization'), 'super', (err, decoded) => {
if (err) {
res.status(403).json({ message: 'User not authorized to perform this action.', err: err });
return;
}
var RoleEvents = new EventEmitter();
var id = req.params.id;
RoleEvents.once('deleteRole', (err, result) => {
if (err) {
res.status(500).json({message: 'Could not delete role id ' + id, err: err});
}
if (result) {
res.status(204).json({});
}
});
RoleModel.deleteRole(RoleEvents, id);
});
});
module.exports = Router;