1 | var express = require('express');
|
2 | var router = express.Router();
|
3 | var common = require('./common');
|
4 |
|
5 |
|
6 | router.all('/users/*', common.checkLogin, function (req, res, next){
|
7 | next();
|
8 | });
|
9 |
|
10 |
|
11 | router.post('/users/:conn/:db/user_create', function (req, res, next){
|
12 | var connection_list = req.app.locals.dbConnections;
|
13 |
|
14 |
|
15 | if(connection_list[req.params.conn] === undefined){
|
16 | res.status(400).json({'msg': req.i18n.__('Invalid connection')});
|
17 | return;
|
18 | }
|
19 |
|
20 |
|
21 | if(req.params.db.indexOf(' ') > -1){
|
22 | res.status(400).json({'msg': req.i18n.__('Invalid database name')});
|
23 | }
|
24 |
|
25 |
|
26 | var mongo_db = connection_list[req.params.conn].native.db(req.params.db);
|
27 |
|
28 |
|
29 | var roles = req.body.roles_text ? req.body.roles_text.split(/\s*,\s*/) : [];
|
30 |
|
31 |
|
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 |
|
43 | router.post('/users/:conn/:db/user_delete', function (req, res, next){
|
44 | var connection_list = req.app.locals.dbConnections;
|
45 |
|
46 |
|
47 | if(connection_list[req.params.conn] === undefined){
|
48 | res.status(400).json({'msg': req.i18n.__('Invalid connection')});
|
49 | return;
|
50 | }
|
51 |
|
52 |
|
53 | if(req.params.db.indexOf(' ') > -1){
|
54 | res.status(400).json({'msg': req.i18n.__('Invalid database name')});
|
55 | }
|
56 |
|
57 |
|
58 | var mongo_db = connection_list[req.params.conn].native.db(req.params.db);
|
59 |
|
60 |
|
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 |
|
71 | module.exports = router;
|