mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
User registration email configurations
This commit is contained in:
parent
932cb003da
commit
20463cca57
@ -29,6 +29,17 @@ public class EmailMessageProperties {
|
||||
private String firstName;
|
||||
private String enrolmentUrl;
|
||||
private String title;
|
||||
private String password;
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
private String userName;
|
||||
|
||||
public String getMessageBody() {
|
||||
return messageBody;
|
||||
@ -94,6 +105,14 @@ public class EmailMessageProperties {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "EmailMessageProperties{" +
|
||||
|
||||
@ -39,4 +39,12 @@ public final class DeviceManagementConstants {
|
||||
public final static String OAUTH_ADMIN_SERVICE = "/services/OAuthAdminService";
|
||||
}
|
||||
|
||||
public static final class EmailNotifications {
|
||||
private EmailNotifications() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
public static final String ENROL_NOTIFICATION_TYPE = "enrol";
|
||||
public static final String USER_REGISTRATION_NOTIFICATION_TYPE = "userRegistration";
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@ import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementExcept
|
||||
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager;
|
||||
import org.wso2.carbon.device.mgt.common.spi.DeviceManager;
|
||||
import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager;
|
||||
import org.wso2.carbon.device.mgt.core.config.email.EnrolmentNotifications;
|
||||
import org.wso2.carbon.device.mgt.core.config.email.NotificationMessages;
|
||||
import org.wso2.carbon.device.mgt.core.dao.DeviceDAO;
|
||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
||||
@ -233,12 +233,26 @@ public class DeviceManagementServiceProviderImpl implements DeviceManagementServ
|
||||
@Override
|
||||
public void sendEnrolmentInvitation(EmailMessageProperties emailMessageProperties) throws DeviceManagementException {
|
||||
|
||||
EnrolmentNotifications enrolmentNotifications = DeviceConfigurationManager.getInstance()
|
||||
.getNotificationMessagesConfig().getEnrolmentNotifications();
|
||||
List<NotificationMessages> notificationMessages = DeviceConfigurationManager.getInstance()
|
||||
.getNotificationMessagesConfig().getNotificationMessagesList();
|
||||
|
||||
String messageHeader = enrolmentNotifications.getHeader();
|
||||
String messageBody = enrolmentNotifications.getBody();
|
||||
String messageFooter = enrolmentNotifications.getFooter();
|
||||
String messageHeader = "";
|
||||
String messageBody = "";
|
||||
String messageFooter = "";
|
||||
String url = "";
|
||||
String subject = "";
|
||||
|
||||
for(NotificationMessages notificationMessage : notificationMessages){
|
||||
if (notificationMessage.getType().equals(DeviceManagementConstants.EmailNotifications
|
||||
.ENROL_NOTIFICATION_TYPE)){
|
||||
messageHeader = notificationMessage.getHeader();
|
||||
messageBody = notificationMessage.getBody();
|
||||
messageFooter = notificationMessage.getFooter();
|
||||
url = notificationMessage.getUrl();
|
||||
subject = notificationMessage.getSubject();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
StringBuilder messageBuilder = new StringBuilder();
|
||||
|
||||
@ -249,11 +263,11 @@ public class DeviceManagementServiceProviderImpl implements DeviceManagementServ
|
||||
}
|
||||
messageHeader = messageHeader.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.TITLE + "\\}",
|
||||
URLEncoder.encode(title, EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
||||
messageHeader = messageHeader.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.USERNAME + "\\}",
|
||||
messageHeader = messageHeader.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.FIRST_NAME + "\\}",
|
||||
URLEncoder.encode(emailMessageProperties.getFirstName(),
|
||||
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
||||
messageBody = messageBody + System.getProperty("line.separator") + enrolmentNotifications.getUrl()
|
||||
.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.DOwN_LOAD_URL + "\\}",
|
||||
messageBody = messageBody + System.getProperty("line.separator") + url.replaceAll("\\{"
|
||||
+ EmailConstants.EnrolmentEmailConstants.DOwN_LOAD_URL + "\\}",
|
||||
URLDecoder.decode(emailMessageProperties.getEnrolmentUrl(),
|
||||
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
||||
messageBuilder.append(messageHeader).append(System.getProperty("line.separator")).append(
|
||||
@ -268,7 +282,71 @@ public class DeviceManagementServiceProviderImpl implements DeviceManagementServ
|
||||
emailMessageProperties.getSubject() + "'", e);
|
||||
}
|
||||
emailMessageProperties.setMessageBody(messageBuilder.toString());
|
||||
emailMessageProperties.setSubject(enrolmentNotifications.getSubject());
|
||||
emailMessageProperties.setSubject(subject);
|
||||
EmailServiceDataHolder.getInstance().getEmailServiceProvider().sendEmail(emailMessageProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendRegistrationEmail(EmailMessageProperties emailMessageProperties) throws DeviceManagementException {
|
||||
List<NotificationMessages> notificationMessages = DeviceConfigurationManager.getInstance()
|
||||
.getNotificationMessagesConfig().getNotificationMessagesList();
|
||||
|
||||
String messageHeader = "";
|
||||
String messageBody = "";
|
||||
String messageFooter = "";
|
||||
String url = "";
|
||||
String subject = "";
|
||||
|
||||
for(NotificationMessages notificationMessage : notificationMessages){
|
||||
if (notificationMessage.getType().equals(DeviceManagementConstants.EmailNotifications
|
||||
.USER_REGISTRATION_NOTIFICATION_TYPE)){
|
||||
messageHeader = notificationMessage.getHeader();
|
||||
messageBody = notificationMessage.getBody();
|
||||
messageFooter = notificationMessage.getFooter();
|
||||
url = notificationMessage.getUrl();
|
||||
subject = notificationMessage.getSubject();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
StringBuilder messageBuilder = new StringBuilder();
|
||||
|
||||
try {
|
||||
String title = "";
|
||||
if (emailMessageProperties.getTitle() != null){
|
||||
title = emailMessageProperties.getTitle();
|
||||
}
|
||||
messageHeader = messageHeader.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.TITLE + "\\}",
|
||||
URLEncoder.encode(title, EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
||||
messageHeader = messageHeader.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.FIRST_NAME + "\\}",
|
||||
URLEncoder.encode(emailMessageProperties.getFirstName(),
|
||||
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
||||
|
||||
messageBody = messageBody.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.USERNAME + "\\}",
|
||||
URLEncoder.encode(emailMessageProperties.getUserName(), EmailConstants.EnrolmentEmailConstants
|
||||
.ENCODED_SCHEME));
|
||||
|
||||
messageBody = messageBody.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.PASSWORD + "\\}",
|
||||
URLEncoder.encode(emailMessageProperties.getUserName(), EmailConstants.EnrolmentEmailConstants
|
||||
.ENCODED_SCHEME));
|
||||
|
||||
messageBody = messageBody + System.getProperty("line.separator") + url.replaceAll("\\{"
|
||||
+ EmailConstants.EnrolmentEmailConstants.DOwN_LOAD_URL + "\\}",
|
||||
URLDecoder.decode(emailMessageProperties.getEnrolmentUrl(),
|
||||
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
|
||||
messageBuilder.append(messageHeader).append(System.getProperty("line.separator")).append(
|
||||
System.getProperty("line.separator"));
|
||||
|
||||
messageBuilder.append(messageBody).append(System.getProperty("line.separator")).append(
|
||||
System.getProperty("line.separator")).append(messageFooter);
|
||||
|
||||
} catch (IOException e) {
|
||||
log.error("IO error in processing enrol email message "+emailMessageProperties);
|
||||
throw new DeviceManagementException("Error replacing tags in email template '" +
|
||||
emailMessageProperties.getSubject() + "'", e);
|
||||
}
|
||||
emailMessageProperties.setMessageBody(messageBuilder.toString());
|
||||
emailMessageProperties.setSubject(subject);
|
||||
EmailServiceDataHolder.getInstance().getEmailServiceProvider().sendEmail(emailMessageProperties);
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.wso2.carbon.device.mgt.core.config.email;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
@XmlRootElement(name = "Notifications")
|
||||
public class NotificationMessages {
|
||||
|
||||
private String header;
|
||||
private String body;
|
||||
private String footer;
|
||||
private String subject;
|
||||
private String url;
|
||||
|
||||
@XmlAttribute(name = "type")
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
private String type;
|
||||
|
||||
@XmlElement(name = "Header", required = true)
|
||||
public String getHeader() {
|
||||
return header;
|
||||
}
|
||||
|
||||
public void setHeader(String header) {
|
||||
this.header = header;
|
||||
}
|
||||
|
||||
@XmlElement(name = "Body", required = true)
|
||||
public String getBody() {
|
||||
return body;
|
||||
}
|
||||
|
||||
public void setBody(String body) {
|
||||
this.body = body;
|
||||
}
|
||||
|
||||
@XmlElement(name = "Footer", required = true)
|
||||
public String getFooter() {
|
||||
return footer;
|
||||
}
|
||||
|
||||
public void setFooter(String footer) {
|
||||
this.footer = footer;
|
||||
}
|
||||
|
||||
@XmlElement(name = "Subject", required = true)
|
||||
public String getSubject() {
|
||||
return subject;
|
||||
}
|
||||
|
||||
public void setSubject(String subject) {
|
||||
this.subject = subject;
|
||||
}
|
||||
|
||||
@XmlElement(name = "Url", required = true)
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
}
|
||||
@ -20,19 +20,19 @@ package org.wso2.carbon.device.mgt.core.config.email;
|
||||
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.util.List;
|
||||
|
||||
@XmlRootElement(name = "Notifications")
|
||||
public class NotificationMessagesConfig {
|
||||
|
||||
private EnrolmentNotifications enrolmentNotifications;
|
||||
private List<NotificationMessages> notificationMessagesList;
|
||||
|
||||
@XmlElement(name = "EnrolmentNotifications", required = true)
|
||||
public EnrolmentNotifications getEnrolmentNotifications() {
|
||||
return enrolmentNotifications;
|
||||
public List<NotificationMessages> getNotificationMessagesList() {
|
||||
return notificationMessagesList;
|
||||
}
|
||||
|
||||
public void setEnrolmentNotifications(EnrolmentNotifications enrolmentNotifications) {
|
||||
this.enrolmentNotifications = enrolmentNotifications;
|
||||
public void setNotificationMessagesList(List<NotificationMessages> notificationMessagesList) {
|
||||
this.notificationMessagesList = notificationMessagesList;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -24,6 +24,8 @@ public final class EmailConstants {
|
||||
public static final String USERNAME = "user-name";
|
||||
public static final String DOwN_LOAD_URL = "downloadUrl";
|
||||
public static final String ENCODED_SCHEME = "UTF-8";
|
||||
public static final String PASSWORD = "password";
|
||||
public static final String FIRST_NAME = "first-name";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -40,6 +40,8 @@ public interface DeviceManagementService extends DeviceManager, LicenseManager,
|
||||
|
||||
void sendEnrolmentInvitation(EmailMessageProperties config) throws DeviceManagementException;
|
||||
|
||||
void sendRegistrationEmail(EmailMessageProperties config) throws DeviceManagementException;
|
||||
|
||||
FeatureManager getFeatureManager(String type) throws DeviceManagementException;
|
||||
|
||||
}
|
||||
|
||||
@ -26,7 +26,7 @@ import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
||||
import org.wso2.carbon.device.mgt.core.operation.mgt.OperationManagerImpl;
|
||||
import java.util.List;
|
||||
|
||||
public class DeviceManagementServiceImpl implements DeviceManagementService{
|
||||
public class DeviceManagementServiceImpl implements DeviceManagementService {
|
||||
|
||||
@Override
|
||||
public String getProviderType() {
|
||||
@ -173,10 +173,15 @@ public class DeviceManagementServiceImpl implements DeviceManagementService{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendEnrolmentInvitation(
|
||||
EmailMessageProperties emailMessageProperties) throws DeviceManagementException {
|
||||
public void sendEnrolmentInvitation(EmailMessageProperties emailMessageProperties)
|
||||
throws DeviceManagementException {
|
||||
DeviceManagementDataHolder.getInstance().getDeviceManagementProvider()
|
||||
.sendEnrolmentInvitation(emailMessageProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendRegistrationEmail(EmailMessageProperties emailMessageProperties) throws DeviceManagementException {
|
||||
DeviceManagementDataHolder.getInstance().getDeviceManagementProvider()
|
||||
.sendRegistrationEmail(emailMessageProperties);
|
||||
}
|
||||
}
|
||||
@ -23,4 +23,5 @@ import org.wso2.carbon.device.mgt.common.EmailMessageProperties;
|
||||
public interface EmailService {
|
||||
|
||||
public void sendEmail(EmailMessageProperties emailMessageProperties) throws DeviceManagementException;
|
||||
|
||||
}
|
||||
|
||||
@ -18,15 +18,30 @@
|
||||
-->
|
||||
|
||||
<Notifications>
|
||||
<EnrolmentNotifications>
|
||||
<Header>Dear {title} {user-name},</Header>
|
||||
<Notifications type="enrol">
|
||||
<Header>Dear {title} {first-name},</Header>
|
||||
<Body>You have been registered to the WSO2 MDM. Below is the link to enroll.</Body>
|
||||
<Url>{downloadUrl}</Url>
|
||||
<Footer>
|
||||
Best Regards,
|
||||
WSO2 Carbon Team
|
||||
http://www.wso2.com
|
||||
Best Regards,
|
||||
WSO2 MDM Team
|
||||
http://www.wso2.com
|
||||
</Footer>
|
||||
<Subject>Enrol your device with WSO2 MDM</Subject>
|
||||
</EnrolmentNotifications>
|
||||
</Notifications>
|
||||
<Notifications type="userRegistration">
|
||||
<Header>Dear {title} {first-name},</Header>
|
||||
<Body>You have been registered to WSO2 MDM with following credentials.
|
||||
Username: {user-name}
|
||||
Password: {password}
|
||||
Below is the link to enroll.
|
||||
</Body>
|
||||
<Url>{downloadUrl}</Url>
|
||||
<Footer>
|
||||
Best Regards,
|
||||
WSO2 MDM Team
|
||||
http://www.wso2.com
|
||||
</Footer>
|
||||
<Subject>Enrol your device with WSO2 MDM</Subject>
|
||||
</Notifications>
|
||||
</Notifications>
|
||||
Loading…
Reference in New Issue
Block a user