From 48db16fba75cdb999177df0b316c6644c10b0aaa Mon Sep 17 00:00:00 2001 From: HSam Date: Sun, 6 Mar 2016 11:59:31 -0600 Subject: [PATCH] Finished adding a new delete to also remove the reference from the invites list on the APM. --- public/src/admin/manage/registration.js | 5 +++-- src/controllers/authentication.js | 2 +- src/socket.io/admin/user.js | 2 +- src/user.js | 2 -- src/user/invite.js | 27 +++++++++++++++++++++++-- src/views/admin/manage/registration.tpl | 4 ++-- 6 files changed, 32 insertions(+), 10 deletions(-) diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js index 981f1e812c..6de647b467 100644 --- a/public/src/admin/manage/registration.js +++ b/public/src/admin/manage/registration.js @@ -25,13 +25,14 @@ define('admin/manage/registration', function() { $('.invites-list').on('click', '[data-action]', function(ev) { var $this = this; - var parent = $(this).parents('[data-invitation-mail]'); + var parent = $(this).parents('[data-invitation-mail][data-invited-by]'); var email = parent.attr('data-invitation-mail'); + var invitedBy = parent.attr('data-invited-by'); var action = $(this).attr('data-action'); var method = 'admin.user.deleteInvitation'; if (action === 'delete') { - socket.emit(method, {email: email}, function(err) { + socket.emit(method, {email: email, invitedBy: invitedBy}, function(err) { if (err) { return app.alertError(err.message); } diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index fa6cc6fd8c..efa30d36ba 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -93,7 +93,7 @@ function registerAndLoginUser(req, res, userData, callback) { } }, function(next) { - user.deleteInvitation(userData.email); + user.deleteInvitationKey(userData.email); plugins.fireHook('filter:register.complete', {uid: uid, referrer: req.body.referrer || nconf.get('relative_path') + '/'}, next); } ], callback); diff --git a/src/socket.io/admin/user.js b/src/socket.io/admin/user.js index 4597314ee1..c46e01a99c 100644 --- a/src/socket.io/admin/user.js +++ b/src/socket.io/admin/user.js @@ -213,7 +213,7 @@ User.search = function(socket, data, callback) { }; User.deleteInvitation = function(socket, data, callback) { - user.deleteInvitation(data.email, callback); + user.deleteInvitation(data.invitedBy, data.email, callback); }; User.acceptRegistration = function(socket, data, callback) { diff --git a/src/user.js b/src/user.js index e9546b8c6e..582686f774 100644 --- a/src/user.js +++ b/src/user.js @@ -39,7 +39,6 @@ var async = require('async'), if (err || userData.status === 'offline' || now - parseInt(userData.lastonline, 10) < 300000) { return callback(err); } - User.setUserField(uid, 'lastonline', now, callback); }); }; @@ -257,4 +256,3 @@ var async = require('async'), }(exports)); - diff --git a/src/user/invite.js b/src/user/invite.js index 99194100e3..34521550a5 100644 --- a/src/user/invite.js +++ b/src/user/invite.js @@ -120,9 +120,32 @@ module.exports = function(User) { ], callback); }; - User.deleteInvitation = function(email, callback) { + User.deleteInvitation = function(invitedBy, email, callback) { + callback = callback || function() {}; + async.waterfall([ + function getInvitedByUid(next) { + User.getUidByUsername(invitedBy, next); + }, + function deleteRegistries(invitedByUid, next) { + if (!invitedByUid) { + return next(new Error('[[error:invalid-username]]')); + } + async.parallel([ + function deleteFromReferenceList(next) { + db.setRemove('invitation:uid:' + invitedByUid, email, next); + }, + function deleteInviteKey(next) { + db.delete('invitation:email:' + email, callback); + } + ], function(err) { + next(err) + }); + } + ], callback); + }; + + User.deleteInvitationKey = function(email, callback) { callback = callback || function() {}; - console.log('invitation:email:' + email); db.delete('invitation:email:' + email, callback); }; diff --git a/src/views/admin/manage/registration.tpl b/src/views/admin/manage/registration.tpl index a3a8e2f905..7abc4f34b9 100644 --- a/src/views/admin/manage/registration.tpl +++ b/src/views/admin/manage/registration.tpl @@ -74,8 +74,8 @@ - - + {invites.username} {invites.invitations.email} {invites.invitations.username}