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






                                     

    


                                                                                
                                    

                                             
                        


                                 

   
 
                
                       






                                                             
                                   










                                                               





                                                                  
                                    








                                                               
   
 
/* global __appdir */
var path = require('path')
var db = require(path.join(__appdir, 'lib', 'sequelize'))

// GET requests
module.exports.get = {

  getUserInfo: function (req, res) {
    db.user.findOne({ where: { id: req.user.id } }).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)
    })
  },

  /*
   * @return: Returns a list of all users in the database and their given roles.
   */
  getUserList: function (req, res) {
    db.user.findAll({
      attributes: ['id', 'username', 'name'],
      include: ['roles']
    }).then(function (users) {
      res.status(200).send(users)
    })
  }
}

// POST requests
module.exports.post = {

  /*
   * roleIds: <ROLE_IDS>
   * userIds: <USER_IDS>
   *
   * Adds the given roles to the given users in the database.
   */
  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')
    })
  },

  /*
   * roleIds: <ROLE_IDS>
   * userIds: <USER_IDS>
   *
   * Removes the given roles from the given users in the database.
   */
  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')
    })
  }
}