summaryrefslogtreecommitdiffstats
path: root/server/api/users.js
diff options
context:
space:
mode:
authorChristian Hofmaier2018-08-05 02:02:15 +0200
committerChristian Hofmaier2018-08-05 02:02:15 +0200
commitde1b08baefd08b9b805638a23ea4826a38812f53 (patch)
tree327601263287ae310c8f8d7f28cef3361ce51e65 /server/api/users.js
parentmerge (diff)
downloadbas-de1b08baefd08b9b805638a23ea4826a38812f53.tar.gz
bas-de1b08baefd08b9b805638a23ea4826a38812f53.tar.xz
bas-de1b08baefd08b9b805638a23ea4826a38812f53.zip
code adaption
Diffstat (limited to 'server/api/users.js')
-rw-r--r--server/api/users.js59
1 files changed, 59 insertions, 0 deletions
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