summaryrefslogtreecommitdiffstats
path: root/packages/meteor-useraccounts-core/lib/methods.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meteor-useraccounts-core/lib/methods.js')
-rw-r--r--packages/meteor-useraccounts-core/lib/methods.js25
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});
+ }
+ },
+});