Skip to content

Commit

Permalink
Use object equality for closing connections for tokens.
Browse files Browse the repository at this point in the history
Fixes #1540.
  • Loading branch information
Emily Stark committed Oct 29, 2013
1 parent 0d6922c commit 5afd0d5
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
13 changes: 11 additions & 2 deletions packages/accounts-base/accounts_server.js
Expand Up @@ -651,13 +651,22 @@ var closeTokensForUser = function (userTokens) {
}));
};

// Like _.difference, but uses EJSON.equals to compute which values to return.
var differenceObj = function (array1, array2) {
return _.filter(array1, function (array1Value) {
return ! _.some(array2, function (array2Value) {
return EJSON.equals(array1Value, array2Value);
});
});
};

Meteor.users.find({}, { fields: { "services.resume": 1 }}).observe({
changed: function (newUser, oldUser) {
var removedTokens = [];
if (newUser.services && newUser.services.resume &&
oldUser.services && oldUser.services.resume) {
removedTokens = _.difference(oldUser.services.resume.loginTokens || [],
newUser.services.resume.loginTokens || []);
removedTokens = differenceObj(oldUser.services.resume.loginTokens || [],
newUser.services.resume.loginTokens || []);
} else if (oldUser.services && oldUser.services.resume) {
removedTokens = oldUser.services.resume.loginTokens || [];
}
Expand Down
1 change: 1 addition & 0 deletions packages/accounts-base/package.js
Expand Up @@ -9,6 +9,7 @@ Package.on_use(function (api) {
api.use('check', 'server');
api.use('random', ['client', 'server']);
api.use('service-configuration', ['client', 'server']);
api.use('ejson', 'server');

// needed for getting the currently logged-in user
api.use('livedata', ['client', 'server']);
Expand Down

0 comments on commit 5afd0d5

Please sign in to comment.