|
|
|
|
@ -112,6 +112,10 @@ Users.attachSchema(new SimpleSchema({ |
|
|
|
|
type: Boolean, |
|
|
|
|
optional: true, |
|
|
|
|
}, |
|
|
|
|
loginDisabled: { |
|
|
|
|
type: Boolean, |
|
|
|
|
optional: true, |
|
|
|
|
}, |
|
|
|
|
})); |
|
|
|
|
|
|
|
|
|
// Search a user in the complete server database by its name or username. This
|
|
|
|
|
@ -597,6 +601,40 @@ if (Meteor.isServer) { |
|
|
|
|
data: Meteor.users.findOne({ _id: id }), |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
JsonRoutes.add('PUT', '/api/users/:id', function (req, res, next) { |
|
|
|
|
Authentication.checkUserId( req.userId); |
|
|
|
|
const id = req.params.id; |
|
|
|
|
const action = req.body.action; |
|
|
|
|
var data = Meteor.users.findOne({ _id: id }); |
|
|
|
|
if (data != undefined) { |
|
|
|
|
if (action === 'takeOwnership') { |
|
|
|
|
data = Boards.find({ |
|
|
|
|
'members.userId': id, |
|
|
|
|
'members.isAdmin': true, |
|
|
|
|
}).map(function(board) { |
|
|
|
|
if (board.hasMember(req.userId)) { |
|
|
|
|
board.removeMember(req.userId); |
|
|
|
|
} |
|
|
|
|
board.changeOwnership(id, req.userId); |
|
|
|
|
return { |
|
|
|
|
_id: board._id, |
|
|
|
|
title: board.title, |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
} else { |
|
|
|
|
if ((action === 'disableLogin') && (id != req.userId)) { |
|
|
|
|
Users.update({ _id: id }, { $set: { loginDisabled: true, 'services.resume.loginTokens': '' } }); |
|
|
|
|
} else if (action === 'enableLogin') { |
|
|
|
|
Users.update({ _id: id }, { $set: { loginDisabled: '' } }); |
|
|
|
|
} |
|
|
|
|
data = Meteor.users.findOne({ _id: id }); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
JsonRoutes.sendResult(res, { |
|
|
|
|
code: 200, |
|
|
|
|
data: data, |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
JsonRoutes.add('POST', '/api/users/', function (req, res, next) { |
|
|
|
|
Authentication.checkUserId( req.userId); |
|
|
|
|
const id = Accounts.createUser({ |
|
|
|
|
|