diff --git a/library.js b/library.js index b4827f5..536e47f 100644 --- a/library.js +++ b/library.js @@ -10,6 +10,7 @@ path = module.parent.require('path'), nconf = module.parent.require('nconf'), winston = module.parent.require('winston'), + async = module.parent.require('async'), passportOAuth; var constants = Object.freeze({ @@ -256,5 +257,20 @@ }); }; + OAuth.deleteUserData = function(uid, callback) { + async.waterfall([ + async.apply(User.getUserField, uid, 'oAuthid'), + function(oAuthIdToDelete, next) { + db.deleteObjectField('oAuthid:uid', oAuthIdToDelete, next); + } + ], function(err) { + if (err) { + winston.error('Could not remove OAuthId data for uid ' + uid + '. Error: ' + err); + return callback(err); + } + callback(); + }); + }; + module.exports = OAuth; }(module)); \ No newline at end of file diff --git a/plugin.json b/plugin.json index b31ebad..dd3b2a9 100644 --- a/plugin.json +++ b/plugin.json @@ -6,6 +6,7 @@ "library": "./library.js", "hooks": [ { "hook": "filter:app.load", "method": "init" }, + { "hook": "filter:user.delete", "method": "deleteUserData" }, { "hook": "filter:auth.init", "method": "getStrategy" }, { "hook": "filter:admin.header.build", "method": "addMenuItem" } ],