UNPKG

2.37 kBJavaScriptView Raw
1var express = require('express');
2var router = express.Router();
3var common = require('./common');
4
5// runs on all routes and checks password if one is setup
6router.all('/users/*', common.checkLogin, function (req, res, next){
7 next();
8});
9
10// Creates a new user
11router.post('/users/:conn/:db/user_create', function (req, res, next){
12 var connection_list = req.app.locals.dbConnections;
13
14 // Check for existance of connection
15 if(connection_list[req.params.conn] === undefined){
16 res.status(400).json({'msg': req.i18n.__('Invalid connection')});
17 return;
18 }
19
20 // Validate database name
21 if(req.params.db.indexOf(' ') > -1){
22 res.status(400).json({'msg': req.i18n.__('Invalid database name')});
23 }
24
25 // Get DB's form pool
26 var mongo_db = connection_list[req.params.conn].native.db(req.params.db);
27
28 // do DB stuff
29 var roles = req.body.roles_text ? req.body.roles_text.split(/\s*,\s*/) : [];
30
31 // Add a user
32 mongo_db.addUser(req.body.username, req.body.user_password, {'roles': roles}, function (err, user_name){
33 if(err){
34 console.error('Error creating user: ' + err);
35 res.status(400).json({'msg': req.i18n.__('Error creating user') + ': ' + err});
36 }else{
37 res.status(200).json({'msg': req.i18n.__('User successfully created')});
38 }
39 });
40});
41
42// Deletes a user
43router.post('/users/:conn/:db/user_delete', function (req, res, next){
44 var connection_list = req.app.locals.dbConnections;
45
46 // Check for existance of connection
47 if(connection_list[req.params.conn] === undefined){
48 res.status(400).json({'msg': req.i18n.__('Invalid connection')});
49 return;
50 }
51
52 // Validate database name
53 if(req.params.db.indexOf(' ') > -1){
54 res.status(400).json({'msg': req.i18n.__('Invalid database name')});
55 }
56
57 // Get DB form pool
58 var mongo_db = connection_list[req.params.conn].native.db(req.params.db);
59
60 // remove a user
61 mongo_db.removeUser(req.body.username, function (err, user_name){
62 if(err){
63 console.error('Error deleting user: ' + err);
64 res.status(400).json({'msg': req.i18n.__('Error deleting user') + ': ' + err});
65 }else{
66 res.status(200).json({'msg': req.i18n.__('User successfully deleted')});
67 }
68 });
69});
70
71module.exports = router;