diff --git a/src/main/java/io/kamax/mxisd/config/threepid/medium/EmailTemplateConfig.java b/src/main/java/io/kamax/mxisd/config/threepid/medium/EmailTemplateConfig.java index 2bc6977..6f0a46e 100644 --- a/src/main/java/io/kamax/mxisd/config/threepid/medium/EmailTemplateConfig.java +++ b/src/main/java/io/kamax/mxisd/config/threepid/medium/EmailTemplateConfig.java @@ -31,7 +31,6 @@ public class EmailTemplateConfig extends GenericTemplateConfig { setInvite("classpath:/threepids/email/invite-template.eml"); getGeneric().put("matrixId", "classpath:/threepids/email/mxid-template.eml"); getSession().setValidation("classpath:/threepids/email/validate-template.eml"); - getSession().getUnbind().setValidation("classpath:/threepids/email/unbind-template.eml"); getSession().getUnbind().setNotification("classpath:/threepids/email/unbind-notification.eml"); } @@ -41,7 +40,6 @@ public class EmailTemplateConfig extends GenericTemplateConfig { log.info("Session:"); log.info(" Validation: {}", getSession().getValidation()); log.info(" Unbind:"); - log.info(" Validation: {}", getSession().getUnbind().getValidation()); log.info(" Notification: {}", getSession().getUnbind().getNotification()); return this; diff --git a/src/main/java/io/kamax/mxisd/session/SessionManager.java b/src/main/java/io/kamax/mxisd/session/SessionManager.java index 50bb0db..29e4c29 100644 --- a/src/main/java/io/kamax/mxisd/session/SessionManager.java +++ b/src/main/java/io/kamax/mxisd/session/SessionManager.java @@ -212,6 +212,10 @@ public class SessionManager { String secret = GsonUtil.getStringOrNull(reqData, "client_secret"); ThreePid tpid = GsonUtil.get().fromJson(GsonUtil.getObj(reqData, "threepid"), ThreePid.class); + if (tpid == null || StringUtils.isBlank(tpid.getAddress()) || StringUtils.isBlank(tpid.getMedium())) { + throw new BadRequestException("Missing required 3PID"); + } + if (StringUtils.isNotBlank(sid) && StringUtils.isNotBlank(secret)) { checkSession(sid, secret, tpid, mxid); } else if (StringUtils.isNotBlank(auth)) { @@ -220,7 +224,8 @@ public class SessionManager { throw new NotAllowedException("Unable to validate request"); } - // TODO make invalid all 3PID with specified medium and address. + log.info("Unbinding of {} {} to {} is accepted", tpid.getMedium(), tpid.getAddress(), mxid.getId()); + notifMgr.sendForUnbind(tpid); } private void checkAuthorization(String auth, JsonObject reqData) { diff --git a/src/main/java/io/kamax/mxisd/threepid/connector/email/EmailSmtpConnector.java b/src/main/java/io/kamax/mxisd/threepid/connector/email/EmailSmtpConnector.java index 2c6fb9d..ff606af 100644 --- a/src/main/java/io/kamax/mxisd/threepid/connector/email/EmailSmtpConnector.java +++ b/src/main/java/io/kamax/mxisd/threepid/connector/email/EmailSmtpConnector.java @@ -115,7 +115,7 @@ public class EmailSmtpConnector implements EmailConnector { msg.setRecipients(Message.RecipientType.TO, recipient); msg.saveChanges(); - log.info("Sending invite to {} via SMTP using {}:{}", recipient, cfg.getHost(), cfg.getPort()); + log.info("Sending email to {} via SMTP using {}:{}", recipient, cfg.getHost(), cfg.getPort()); SMTPTransport transport = (SMTPTransport) session.getTransport("smtp"); if (cfg.getTls() < 3) { @@ -134,12 +134,12 @@ public class EmailSmtpConnector implements EmailConnector { try { transport.sendMessage(msg, InternetAddress.parse(recipient)); - log.info("Invite to {} was sent", recipient); + log.info("Email to {} was sent", recipient); } finally { transport.close(); } } catch (UnsupportedEncodingException | MessagingException e) { - throw new RuntimeException("Unable to send e-mail invite to " + recipient, e); + throw new RuntimeException("Unable to send e-mail to " + recipient, e); } } diff --git a/src/main/resources/threepids/email/unbind-notification.eml b/src/main/resources/threepids/email/unbind-notification.eml index 9ac3fd0..c6cd4fa 100644 --- a/src/main/resources/threepids/email/unbind-notification.eml +++ b/src/main/resources/threepids/email/unbind-notification.eml @@ -9,14 +9,9 @@ Content-Disposition: inline Hello there! -You or a server on your behalf requested to unbind your email. +You or a server on your behalf unbinded your email. -If it was really you who made this request, you can click on the following link to -complete the unbinding your email address: - - %VALIDATION_LINK% - -If you didn't make this request, you can safely disregard this email. +If you didn't make this request, please contact the system administrator. %DOMAIN_PRETTY% Admins @@ -66,14 +61,9 @@ Content-Disposition: inline
Hello there!
-You or a server on your behalf requested to unbind your email.
+You or a server on your behalf unbinded your email.
-If it was really you who made this request, you can click on the following link to - complete the unbinding your email address:
- - - -If you didn't make this request, you can safely disregard this email.
+If you didn't make this request, please contact the system administrator.
%DOMAIN_PRETTY% Admins
| - |
- Hello there! - -You or a server on your behalf requested to unbind your email. - -If it was really you who made this request, you can click on the following link to - complete the unbinding your email address: - - - -If you didn't make this request, you can safely disregard this email. - -%DOMAIN_PRETTY% Admins - |
- - |