diff --git a/common/locales/en/settings.json b/common/locales/en/settings.json index d182b5940b..db4bf0953e 100644 --- a/common/locales/en/settings.json +++ b/common/locales/en/settings.json @@ -98,6 +98,9 @@ "invitedQuest": "Invited to Quest", "kickedGroup": "Kicked from group", "remindersToLogin": "Reminders to check in to HabitRPG", + "unsubscribedSuccessfully": "Unsubscribed successfully!", + "unsubscribedTextUsers": "You have successfully unsubscribed from all HabitRPG emails. You can enable only the emails you want to receive from the settings (requires login).", + "unsubscribedTextOthers": "You won't receive any other email from HabitRPG.", "unsubscribeAllEmails": "Check to Unsubscribe from Emails", "unsubscribeAllEmailsText": "By checking this box, I certify that I understand that by unsubscribing from all emails, HabitRPG will never be able to notify me via email about important changes to the site or my account.", "correctlyUnsubscribedEmailType": "Correctly unsubscribed from \"<%= emailType %>\" emails.", diff --git a/website/src/controllers/unsubscription.js b/website/src/controllers/unsubscription.js index fde41c3cee..d0ef89f920 100644 --- a/website/src/controllers/unsubscription.js +++ b/website/src/controllers/unsubscription.js @@ -1,32 +1,35 @@ -var User = require('../models/user'); -var EmailUnsubscription = require('../models/emailUnsubscription'); +var User = require('../models/user').model; +var EmailUnsubscription = require('../models/emailUnsubscription').model; var utils = require('../utils'); +var i18n = require('../../../common').i18n; var api = module.exports = {}; api.unsubscribe = function(req, res, next){ - if(!req.query.code) return next(new Error('Missing unsubscription code.')); + if(!req.query.code) return res.json(500, {err: 'Missing unsubscription code.'}); var data = JSON.parse(utils.decrypt(req.query.code)); if(data._id){ User.update({_id: data._id}, { - $set: {} + $set: {'preferences.emailNotifications.unsubscribeFromAll': true} }, {multi: false}, function(err, nAffected){ if(err) return next(err); - if(nAffected !== 1) return next(new Error('User not found')); + if(nAffected !== 1) return res.json(404, {err: 'User not found'}); - res.send('Unsubscribed!'); + res.send('