summaryrefslogtreecommitdiffstats
path: root/packages/meteor-useraccounts-core/lib/methods.js
blob: 0d3a070dc07beffb2f97d809f6fc3ae2b029e29f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* global
  AccountsTemplates: false
*/
"use strict";

Meteor.methods({
  ATRemoveService: function(serviceName) {
    check(serviceName, String);

    var userId = this.userId;

    if (userId) {
      var user = Meteor.users.findOne(userId);
      var numServices = _.keys(user.services).length; // including "resume"
      var unset = {};

      if (numServices === 2) {
        throw new Meteor.Error(403, AccountsTemplates.texts.errors.cannotRemoveService, {});
      }

      unset["services." + serviceName] = "";
      Meteor.users.update(userId, {$unset: unset});
    }
  },
});