|  | @@ -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({
 |