summaryrefslogblamecommitdiffstats
path: root/server/api/users.js
blob: 8514bbc4910fecf420b5fe13146842332ea58b3d (plain) (tree)
1
2
3
4
5
6
7
8
                     



                                                                           
 

                                      





                                                                                         
                                                               






                                     

    
                                     





                                                                     

   
 
                       





















                                                               
   
 
/* 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')
    })
  }
}