From de1b08baefd08b9b805638a23ea4826a38812f53 Mon Sep 17 00:00:00 2001 From: Christian Hofmaier Date: Sun, 5 Aug 2018 00:02:15 +0000 Subject: code adaption --- server/api/permissions.js | 7 +++--- server/api/user.js | 63 ----------------------------------------------- server/api/users.js | 59 ++++++++++++++++++++++++++++++++++++++++++++ server/router.js | 12 --------- 4 files changed, 63 insertions(+), 78 deletions(-) delete mode 100644 server/api/user.js create mode 100644 server/api/users.js (limited to 'server') diff --git a/server/api/permissions.js b/server/api/permissions.js index d55e7d9..3b78c91 100644 --- a/server/api/permissions.js +++ b/server/api/permissions.js @@ -2,8 +2,7 @@ var path = require('path'); var db = require(path.join(__appdir, 'lib', 'sequelize')); -module.exports = { - // Return ID, Description and Name of a given RoleID +module.exports.get = { getRoleById: function(req, res) { var roleid = req.params.roleid db.role.findById(roleid, { @@ -26,8 +25,10 @@ module.exports = { db.permission.findAll().then(function (permissions) { res.status(200).send(permissions) }) - }, + } +} +module.exports.post = { deleteRoles: function(req, res) { const roleIds = req.body.id diff --git a/server/api/user.js b/server/api/user.js deleted file mode 100644 index 9aba1fc..0000000 --- a/server/api/user.js +++ /dev/null @@ -1,63 +0,0 @@ -/* global __appdir */ -var path = require('path') -// var db = require(path.join(__appdir, 'lib', 'database')).connectionPool; -var db = require(path.join(__appdir, 'lib', 'sequelize')) -var jwt = require('jsonwebtoken') - -module.exports = { - info: function (req, res) { - // Because veryfyToken was succesfully excecuted the request has the attribute token. - const token = req.token - // Decode the token. - var decoded = jwt.decode(token, {complete: true}) - var userid = decoded.payload.user.id - - // db.query('SELECT * FROM users WHERE id=?', [userid], function(err, rows) { - db.user.findOne({ where: { id: userid } }).then(userDb => { - // if (err) return res.status(500).send({ auth: false, status: 'DATABASE_ERROR', error_message: 'SQL query failed.' }); - // user.id = rows[0].id; - // user.username = rows[0].username; - // user.email = rows[0].email; - // user.name = rows[0].name; - var user = { } - user.id = userDb.id - user.username = userDb.username - user.email = userDb.email - user.name = userDb.name - res.status(200).send(user) - }) - }, - - getUserList: function(req, res) { - db.user.findAll({ - attributes: ['id', 'username', 'name'], - include: [{model: db.role, as: 'roles', attributes: ['name'] }] - }).then(function (users) { - res.status(200).send(users) - }) - }, - - grantRoles: function(req, res) { - const roleIds = req.body.roleIds - const userIds = req.body.userIds - - db.user.findAll({ where: { id: userIds } }).then(users => { - users.forEach(user => { - user.addRoles(roleIds) - }) - res.status(200).send('success') - }) - }, - - revokeRoles: function(req, res) { - const roleIds = req.body.roleIds - const userIds = req.body.userIds - - db.user.findAll({ where: { id: userIds } }).then(users => { - users.forEach(user => { - user.removeRoles(roleIds) - }) - res.status(200).send('success') - }) - } -} diff --git a/server/api/users.js b/server/api/users.js new file mode 100644 index 0000000..8514bbc --- /dev/null +++ b/server/api/users.js @@ -0,0 +1,59 @@ +/* global __appdir */ +var path = require('path') +// var db = require(path.join(__appdir, 'lib', 'database')).connectionPool; +var db = require(path.join(__appdir, 'lib', 'sequelize')) +var jwt = require('jsonwebtoken') + +module.exports.get = { + getUserInfo: function (req, res) { + // Because veryfyToken was succesfully excecuted the request has the attribute token. + const token = req.token + // Decode the token. + var decoded = jwt.decode(token, {complete: true}) + var userid = decoded.payload.user.id + + db.user.findOne({ where: { id: userid } }).then(userDb => { + var user = { } + user.id = userDb.id + user.username = userDb.username + user.email = userDb.email + user.name = userDb.name + res.status(200).send(user) + }) + }, + + getUserList: function(req, res) { + db.user.findAll({ + attributes: ['id', 'username', 'name'], + include: [{model: db.role, as: 'roles', attributes: ['name'] }] + }).then(function (users) { + res.status(200).send(users) + }) + } +} + +module.exports.post = { + grantRoles: function(req, res) { + const roleIds = req.body.roleIds + const userIds = req.body.userIds + + db.user.findAll({ where: { id: userIds } }).then(users => { + users.forEach(user => { + user.addRoles(roleIds) + }) + res.status(200).send('success') + }) + }, + + revokeRoles: function(req, res) { + const roleIds = req.body.roleIds + const userIds = req.body.userIds + + db.user.findAll({ where: { id: userIds } }).then(users => { + users.forEach(user => { + user.removeRoles(roleIds) + }) + res.status(200).send('success') + }) + } +} \ No newline at end of file diff --git a/server/router.js b/server/router.js index 53caca8..f77d09a 100644 --- a/server/router.js +++ b/server/router.js @@ -14,18 +14,6 @@ router.post('/changepassword', auth.changePassword) var ipxe = require(path.join(__dirname, 'api', 'ipxe')) router.get('/ipxe/loadScript', ipxe.get.loadScript) -// ############ Legacy Code: TODO(Chris): Rework to api and get/post or delete! ############ -// User API -var user = require(path.join(__dirname, 'api', 'user')) -router.get('/user/info', auth.verifyToken, user.info) - -// Permissions API -var permissions = require(path.join(__dirname, 'api', 'permissions')) -router.get('/getRolesByUserid', permissions.getRolesByUserid) -router.post('/getRoleById', auth.verifyToken, permissions.getRoleById) - -// ############################################################################ - // Dynamic API routes function mapApi (method) { return function (req, res) { -- cgit v1.2.3-55-g7522