From 32869acec73653b6b62b35841845e9c732133571 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Thu, 27 Sep 2018 09:29:33 +0300 Subject: RFC8058: One-Click Functionality for List Email Headers --- .../com/juick/server/www/controllers/Settings.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'juick-server/src/main/java/com/juick/server/www') diff --git a/juick-server/src/main/java/com/juick/server/www/controllers/Settings.java b/juick-server/src/main/java/com/juick/server/www/controllers/Settings.java index 6405b3bd..cc8f43eb 100644 --- a/juick-server/src/main/java/com/juick/server/www/controllers/Settings.java +++ b/juick-server/src/main/java/com/juick/server/www/controllers/Settings.java @@ -16,9 +16,12 @@ */ package com.juick.server.www.controllers; +import com.juick.User; import com.juick.model.NotifyOpts; import com.juick.model.UserInfo; -import com.juick.server.util.*; +import com.juick.server.util.HttpBadRequestException; +import com.juick.server.util.HttpUtils; +import com.juick.server.util.UserUtils; import com.juick.service.*; import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.StringUtils; @@ -257,4 +260,19 @@ public class Settings { model.addAttribute("result", result); return "views/settings_result"; } + @PostMapping("/settings/unsubscribe") + public String unsubscribeOneClick(@RequestParam(name = "List-Unsubscribe") String unsubscribe, + ModelMap model) { + User user = UserUtils.getCurrentUser(); + if (!user.isAnonymous()) { + if (unsubscribe.equals("One-Click")) { + emailService.setNotificationsEmail(user.getUid(), StringUtils.EMPTY); + model.addAttribute("title", "Настройки"); + model.addAttribute("visitor", user); + model.addAttribute("result", "Unsubscribed"); + return "views/settings_result"; + } + } + throw new HttpBadRequestException(); + } } -- cgit v1.2.3