diff options
Diffstat (limited to 'packages/meteor-useraccounts-core/lib/methods.js')
-rw-r--r-- | packages/meteor-useraccounts-core/lib/methods.js | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/meteor-useraccounts-core/lib/methods.js b/packages/meteor-useraccounts-core/lib/methods.js new file mode 100644 index 00000000..0d3a070d --- /dev/null +++ b/packages/meteor-useraccounts-core/lib/methods.js @@ -0,0 +1,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}); + } + }, +}); |