From aa15f2243ea4ad0b80a4cc1e81eeedb94e7409b9 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Thu, 30 Aug 2018 11:38:06 +0300 Subject: email registration --- .../main/java/com/juick/server/api/Service.java | 23 ++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'juick-server/src/main/java/com/juick/server/api') diff --git a/juick-server/src/main/java/com/juick/server/api/Service.java b/juick-server/src/main/java/com/juick/server/api/Service.java index f67f6986..527fb739 100644 --- a/juick-server/src/main/java/com/juick/server/api/Service.java +++ b/juick-server/src/main/java/com/juick/server/api/Service.java @@ -5,9 +5,11 @@ import com.juick.server.CommandsManager; import com.juick.server.EmailManager; import com.juick.server.util.HttpForbiddenException; import com.juick.server.util.UserUtils; +import com.juick.service.EmailService; import com.juick.service.UserService; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.mail.util.MimeMessageParser; import org.slf4j.Logger; @@ -29,22 +31,26 @@ import java.io.InputStream; import java.net.URI; import java.nio.charset.StandardCharsets; import java.nio.file.Paths; -import java.util.Properties; -import java.util.Scanner; -import java.util.UUID; +import java.util.*; @Controller public class Service { private static Logger logger = LoggerFactory.getLogger(Post.class); @Inject private UserService userService; - @Inject - CommandsManager commandsManager; + private EmailService emailService; + @Inject + private CommandsManager commandsManager; + @Inject + private EmailManager emailManager; @Value("${api_user:juick}") private String serviceUser; @Value("${upload_tmp_dir:#{systemEnvironment['TEMP'] ?: '/tmp'}}") private String tmpDir; + @Value("${banned_emails:}") + private String[] ignoredEmails; + Session session = Session.getDefaultInstance(new Properties()); @ApiIgnore @@ -108,7 +114,12 @@ public class Service { : URI.create(StringUtils.EMPTY); commandsManager.processCommand(visitor, body[0], attachmentUri); } else { - logger.info("not registered: {}", from); + if (!Arrays.asList(ignoredEmails).contains(from)) { + String verificationCode = RandomStringUtils.randomAlphanumeric(8).toUpperCase(); + emailService.addVerificationCode(null, from, verificationCode); + String signupUrl = String.format("Follow this link to create Juick account: https://juick.com/signup?type=email&code=%s", verificationCode); + emailManager.sendEmail(from, "Juick registration", signupUrl, StringUtils.EMPTY, Collections.emptyMap()); + } } } else { throw new HttpForbiddenException(); -- cgit v1.2.3