Fix for the Jira Issue EMM-989

revert-70aa11f8
Kamidu Sachith 9 years ago
parent 8573a284e0
commit 53064516d3

@ -20,7 +20,7 @@ package org.wso2.carbon.device.mgt.core.email;
public final class EmailConstants { public final class EmailConstants {
public static final class EnrolmentEmailConstants { public static final class EnrolmentEmailConstants {
public static final String DOMAIN = "domain"; public static final String DOMAIN = "domain-name";
public static final String USERNAME = "user-name"; public static final String USERNAME = "user-name";
public static final String DOWNLOAD_URL = "downloadUrl"; public static final String DOWNLOAD_URL = "downloadUrl";
public static final String ENCODED_SCHEME = "UTF-8"; public static final String ENCODED_SCHEME = "UTF-8";

@ -142,7 +142,8 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
EnrolmentInfo newEnrolmentInfo = device.getEnrolmentInfo(); EnrolmentInfo newEnrolmentInfo = device.getEnrolmentInfo();
if (existingEnrolmentInfo != null && newEnrolmentInfo != null) { if (existingEnrolmentInfo != null && newEnrolmentInfo != null) {
//Get all the enrollments of current user for the same device //Get all the enrollments of current user for the same device
List<EnrolmentInfo> enrolmentInfos = this.getEnrollmentsOfUser(existingDevice.getId(), newEnrolmentInfo.getOwner()); List<EnrolmentInfo> enrolmentInfos = this.getEnrollmentsOfUser(existingDevice.getId(),
newEnrolmentInfo.getOwner());
for (EnrolmentInfo enrolmentInfo : enrolmentInfos) { for (EnrolmentInfo enrolmentInfo : enrolmentInfos) {
//If the enrollments are same then we'll update the existing enrollment. //If the enrollments are same then we'll update the existing enrollment.
if (enrolmentInfo.equals(newEnrolmentInfo)) { if (enrolmentInfo.equals(newEnrolmentInfo)) {
@ -163,14 +164,17 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
existingEnrolmentInfo.setStatus(EnrolmentInfo.Status.REMOVED); existingEnrolmentInfo.setStatus(EnrolmentInfo.Status.REMOVED);
updateStatus = enrollmentDAO.updateEnrollment(existingEnrolmentInfo); updateStatus = enrollmentDAO.updateEnrollment(existingEnrolmentInfo);
} }
if ((updateStatus > 0) || EnrolmentInfo.Status.REMOVED.equals(existingEnrolmentInfo.getStatus())) { if ((updateStatus > 0) || EnrolmentInfo.Status.REMOVED.
enrolmentId = enrollmentDAO.addEnrollment(existingDevice.getId(), newEnrolmentInfo, tenantId); equals(existingEnrolmentInfo.getStatus())) {
enrolmentId = enrollmentDAO.
addEnrollment(existingDevice.getId(), newEnrolmentInfo, tenantId);
DeviceManagementDAOFactory.commitTransaction(); DeviceManagementDAOFactory.commitTransaction();
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("An enrolment is successfully added with the id '" + enrolmentId + log.debug("An enrolment is successfully added with the id '" + enrolmentId +
"' associated with " + "the device identified by key '" + "' associated with " + "the device identified by key '" +
device.getDeviceIdentifier() + "', which belongs to " + "platform '" + device.getDeviceIdentifier() + "', which belongs to " + "platform '" +
device.getType() + " upon the user '" + device.getEnrolmentInfo().getOwner() + "'"); device.getType() + " upon the user '" + device.getEnrolmentInfo().getOwner() +
"'");
} }
status = true; status = true;
} else { } else {
@ -232,11 +236,9 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
try { try {
int tenantId = this.getTenantId(); int tenantId = this.getTenantId();
DeviceManagementDAOFactory.beginTransaction(); DeviceManagementDAOFactory.beginTransaction();
DeviceType type = deviceTypeDAO.getDeviceType(device.getType()); DeviceType type = deviceTypeDAO.getDeviceType(device.getType());
deviceDAO.updateDevice(type.getId(), device, tenantId); deviceDAO.updateDevice(type.getId(), device, tenantId);
enrollmentDAO.updateEnrollment(device.getEnrolmentInfo()); enrollmentDAO.updateEnrollment(device.getEnrolmentInfo());
DeviceManagementDAOFactory.commitTransaction(); DeviceManagementDAOFactory.commitTransaction();
} catch (DeviceManagementDAOException e) { } catch (DeviceManagementDAOException e) {
DeviceManagementDAOFactory.rollbackTransaction(); DeviceManagementDAOFactory.rollbackTransaction();
@ -257,8 +259,8 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
DeviceManagementDAOFactory.openConnection(); DeviceManagementDAOFactory.openConnection();
enrolmentInfos = enrollmentDAO.getEnrollmentsOfUser(deviceId, user, this.getTenantId()); enrolmentInfos = enrollmentDAO.getEnrollmentsOfUser(deviceId, user, this.getTenantId());
} catch (DeviceManagementDAOException e) { } catch (DeviceManagementDAOException e) {
throw new DeviceManagementException("Error occurred while obtaining the enrollment information device for id " + throw new DeviceManagementException("Error occurred while obtaining the enrollment information device for" +
"'" + deviceId + "' and user : " + user, e); "id '" + deviceId + "' and user : " + user, e);
} catch (SQLException e) { } catch (SQLException e) {
throw new DeviceManagementException("Error occurred while opening a connection to the data source", e); throw new DeviceManagementException("Error occurred while opening a connection to the data source", e);
} finally { } finally {
@ -514,8 +516,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
for (NotificationMessages notificationMessage : notificationMessages) { for (NotificationMessages notificationMessage : notificationMessages) {
if (org.wso2.carbon.device.mgt.core.DeviceManagementConstants.EmailNotifications.ENROL_NOTIFICATION_TYPE if (org.wso2.carbon.device.mgt.core.DeviceManagementConstants.EmailNotifications.ENROL_NOTIFICATION_TYPE
.equals( .equals(notificationMessage.getType())) {
notificationMessage.getType())) {
messageHeader = notificationMessage.getHeader(); messageHeader = notificationMessage.getHeader();
messageBody = notificationMessage.getBody(); messageBody = notificationMessage.getBody();
messageFooter1 = notificationMessage.getFooterLine1(); messageFooter1 = notificationMessage.getFooterLine1();
@ -535,17 +536,15 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
EmailConfigurations emailConfig = EmailConfigurations emailConfig =
DeviceConfigurationManager.getInstance().getDeviceManagementConfig(). DeviceConfigurationManager.getInstance().getDeviceManagementConfig().
getDeviceManagementConfigRepository().getEmailConfigurations(); getDeviceManagementConfigRepository().getEmailConfigurations();
emailMessageProperties.setEnrolmentUrl(emailConfig.getlBHostPortPrefix()+ emailConfig.getEnrollmentContextPath()); emailMessageProperties.setEnrolmentUrl(emailConfig.getlBHostPortPrefix() +
emailConfig.getEnrollmentContextPath());
messageHeader = messageHeader.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.FIRST_NAME + "\\}", messageHeader = messageHeader.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.FIRST_NAME + "\\}",
URLEncoder.encode(emailMessageProperties.getFirstName(), URLEncoder.encode(emailMessageProperties.getFirstName(),
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME)); EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
messageBody = messageBody.trim() + System.getProperty("line.separator") + messageBody = messageBody.trim() + System.getProperty("line.separator") + url.replaceAll("\\{"
System.getProperty("line.separator") + url.replaceAll("\\{"
+ EmailConstants.EnrolmentEmailConstants.DOWNLOAD_URL + "\\}", + EmailConstants.EnrolmentEmailConstants.DOWNLOAD_URL + "\\}",
URLDecoder.decode(emailMessageProperties.getEnrolmentUrl(), URLDecoder.decode(emailMessageProperties.getEnrolmentUrl(),
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME)); EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
messageBuilder.append(messageHeader).append(System.getProperty("line.separator")) messageBuilder.append(messageHeader).append(System.getProperty("line.separator"))
.append(System.getProperty("line.separator")); .append(System.getProperty("line.separator"));
messageBuilder.append(messageBody); messageBuilder.append(messageBody);
@ -553,7 +552,6 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
messageBuilder.append(messageFooter1.trim()) messageBuilder.append(messageFooter1.trim())
.append(System.getProperty("line.separator")).append(messageFooter2.trim()).append(System .append(System.getProperty("line.separator")).append(messageFooter2.trim()).append(System
.getProperty("line.separator")).append(messageFooter3.trim()); .getProperty("line.separator")).append(messageFooter3.trim());
} catch (IOException e) { } catch (IOException e) {
throw new DeviceManagementException("Error replacing tags in email template '" + throw new DeviceManagementException("Error replacing tags in email template '" +
emailMessageProperties.getSubject() + "'", e); emailMessageProperties.getSubject() + "'", e);
@ -576,8 +574,8 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
String subject = ""; String subject = "";
for (NotificationMessages notificationMessage : notificationMessages) { for (NotificationMessages notificationMessage : notificationMessages) {
if (org.wso2.carbon.device.mgt.core.DeviceManagementConstants.EmailNotifications.USER_REGISTRATION_NOTIFICATION_TYPE. if (org.wso2.carbon.device.mgt.core.DeviceManagementConstants.EmailNotifications.
equals(notificationMessage.getType())) { USER_REGISTRATION_NOTIFICATION_TYPE.equals(notificationMessage.getType())) {
messageHeader = notificationMessage.getHeader(); messageHeader = notificationMessage.getHeader();
messageBody = notificationMessage.getBody(); messageBody = notificationMessage.getBody();
messageFooter1 = notificationMessage.getFooterLine1(); messageFooter1 = notificationMessage.getFooterLine1();
@ -588,24 +586,17 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
break; break;
} }
} }
log.error("======================================================================");
log.error(messageBody);
log.error("======================================================================");
StringBuilder messageBuilder = new StringBuilder(); StringBuilder messageBuilder = new StringBuilder();
try { try {
// Reading the download url from the cdm-config.xml file // Reading the download url from the cdm-config.xml file
EmailConfigurations emailConfig = EmailConfigurations emailConfig =
DeviceConfigurationManager.getInstance().getDeviceManagementConfig(). DeviceConfigurationManager.getInstance().getDeviceManagementConfig().
getDeviceManagementConfigRepository().getEmailConfigurations(); getDeviceManagementConfigRepository().getEmailConfigurations();
emailMessageProperties.setEnrolmentUrl(emailConfig.getlBHostPortPrefix()+ emailConfig.getEnrollmentContextPath()); emailMessageProperties.setEnrolmentUrl(emailConfig.getlBHostPortPrefix() +
emailConfig.getEnrollmentContextPath());
messageHeader = messageHeader.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.FIRST_NAME + "\\}", messageHeader = messageHeader.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.FIRST_NAME + "\\}",
URLEncoder.encode(emailMessageProperties.getFirstName(), URLEncoder.encode(emailMessageProperties.getFirstName(),
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME)); EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
messageBody = messageBody.trim().replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants messageBody = messageBody.trim().replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants
.USERNAME .USERNAME
+ "\\}", + "\\}",
@ -615,22 +606,18 @@ log.error("=====================================================================
+ "\\}", + "\\}",
URLEncoder.encode(emailMessageProperties.getDomainName(), EmailConstants.EnrolmentEmailConstants URLEncoder.encode(emailMessageProperties.getDomainName(), EmailConstants.EnrolmentEmailConstants
.ENCODED_SCHEME)); .ENCODED_SCHEME));
messageBody = messageBody.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.PASSWORD + "\\}", messageBody = messageBody.replaceAll("\\{" + EmailConstants.EnrolmentEmailConstants.PASSWORD + "\\}",
URLEncoder.encode(emailMessageProperties.getPassword(), EmailConstants.EnrolmentEmailConstants URLEncoder.encode(emailMessageProperties.getPassword(), EmailConstants.EnrolmentEmailConstants
.ENCODED_SCHEME)); .ENCODED_SCHEME));
messageBody = messageBody + System.getProperty("line.separator") + url.replaceAll("\\{" messageBody = messageBody + System.getProperty("line.separator") + url.replaceAll("\\{"
+ EmailConstants.EnrolmentEmailConstants.DOWNLOAD_URL + "\\}", + EmailConstants.EnrolmentEmailConstants.DOWNLOAD_URL + "\\}",
URLDecoder.decode(emailMessageProperties.getEnrolmentUrl(), URLDecoder.decode(emailMessageProperties.getEnrolmentUrl(),
EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME)); EmailConstants.EnrolmentEmailConstants.ENCODED_SCHEME));
messageBuilder.append(messageHeader).append(System.getProperty("line.separator")); messageBuilder.append(messageHeader).append(System.getProperty("line.separator"));
messageBuilder.append(messageBody).append(System.getProperty("line.separator")).append( messageBuilder.append(messageBody).append(System.getProperty("line.separator")).append(
messageFooter1.trim()); messageFooter1.trim());
messageBuilder.append(System.getProperty("line.separator")).append(messageFooter2.trim()); messageBuilder.append(System.getProperty("line.separator")).append(messageFooter2.trim());
messageBuilder.append(System.getProperty("line.separator")).append(messageFooter3.trim()); messageBuilder.append(System.getProperty("line.separator")).append(messageFooter3.trim());
log.info(messageBuilder.toString());
} catch (IOException e) { } catch (IOException e) {
throw new DeviceManagementException("Error replacing tags in email template '" + throw new DeviceManagementException("Error replacing tags in email template '" +
@ -718,7 +705,6 @@ log.error("=====================================================================
deviceTypesInDatabase = deviceDAO.getDeviceTypes(); deviceTypesInDatabase = deviceDAO.getDeviceTypes();
Map<String, DeviceManagementService> registeredTypes = pluginRepository.getAllDeviceManagementServices(); Map<String, DeviceManagementService> registeredTypes = pluginRepository.getAllDeviceManagementServices();
DeviceType deviceType; DeviceType deviceType;
if (registeredTypes != null && deviceTypesInDatabase != null) { if (registeredTypes != null && deviceTypesInDatabase != null) {
for (int x = 0; x < deviceTypesInDatabase.size(); x++) { for (int x = 0; x < deviceTypesInDatabase.size(); x++) {
if (registeredTypes.get(deviceTypesInDatabase.get(x).getName()) != null) { if (registeredTypes.get(deviceTypesInDatabase.get(x).getName()) != null) {
@ -783,11 +769,9 @@ log.error("=====================================================================
EnrolmentInfo.Status status) throws DeviceManagementException { EnrolmentInfo.Status status) throws DeviceManagementException {
try { try {
DeviceManagementDAOFactory.beginTransaction(); DeviceManagementDAOFactory.beginTransaction();
int tenantId = this.getTenantId(); int tenantId = this.getTenantId();
Device device = deviceDAO.getDevice(deviceId, tenantId); Device device = deviceDAO.getDevice(deviceId, tenantId);
boolean success = enrollmentDAO.setStatus(device.getId(), currentOwner, status, tenantId); boolean success = enrollmentDAO.setStatus(device.getId(), currentOwner, status, tenantId);
DeviceManagementDAOFactory.commitTransaction(); DeviceManagementDAOFactory.commitTransaction();
return success; return success;
} catch (DeviceManagementDAOException e) { } catch (DeviceManagementDAOException e) {
@ -811,7 +795,8 @@ log.error("=====================================================================
dms.notifyOperationToDevices(operation, deviceIds); dms.notifyOperationToDevices(operation, deviceIds);
} }
} catch (DeviceManagementException deviceMgtEx) { } catch (DeviceManagementException deviceMgtEx) {
String errorMsg = "Error in notify operations to plugins for app installation:" + deviceMgtEx.getErrorMessage(); String errorMsg = "Error in notify operations to plugins for app installation:" +
deviceMgtEx.getErrorMessage();
log.error(errorMsg, deviceMgtEx); log.error(errorMsg, deviceMgtEx);
throw new DeviceManagementException(errorMsg, deviceMgtEx); throw new DeviceManagementException(errorMsg, deviceMgtEx);
} }
@ -1038,12 +1023,10 @@ log.error("=====================================================================
public void updateDeviceEnrolmentInfo(Device device, EnrolmentInfo.Status status) throws DeviceManagementException { public void updateDeviceEnrolmentInfo(Device device, EnrolmentInfo.Status status) throws DeviceManagementException {
try { try {
DeviceManagementDAOFactory.beginTransaction(); DeviceManagementDAOFactory.beginTransaction();
DeviceType deviceType = deviceTypeDAO.getDeviceType(device.getType()); DeviceType deviceType = deviceTypeDAO.getDeviceType(device.getType());
device.getEnrolmentInfo().setDateOfLastUpdate(new Date().getTime()); device.getEnrolmentInfo().setDateOfLastUpdate(new Date().getTime());
device.getEnrolmentInfo().setStatus(status); device.getEnrolmentInfo().setStatus(status);
deviceDAO.updateDevice(deviceType.getId(), device, this.getTenantId()); deviceDAO.updateDevice(deviceType.getId(), device, this.getTenantId());
DeviceManagementDAOFactory.commitTransaction(); DeviceManagementDAOFactory.commitTransaction();
} catch (DeviceManagementDAOException e) { } catch (DeviceManagementDAOException e) {
DeviceManagementDAOFactory.rollbackTransaction(); DeviceManagementDAOFactory.rollbackTransaction();
@ -1090,7 +1073,6 @@ log.error("=====================================================================
} finally { } finally {
DeviceManagementDAOFactory.closeConnection(); DeviceManagementDAOFactory.closeConnection();
} }
for (Device device : allDevices) { for (Device device : allDevices) {
Device dmsDevice = this.getDeviceManager(device.getType()). Device dmsDevice = this.getDeviceManager(device.getType()).
getDevice(new DeviceIdentifier(device.getDeviceIdentifier(), device.getType())); getDevice(new DeviceIdentifier(device.getDeviceIdentifier(), device.getType()));

@ -21,7 +21,7 @@
<Header>Dear {first-name},</Header> <Header>Dear {first-name},</Header>
<Body> <Body>
You have been registered to WSO2 MDM with following credentials. You have been registered to WSO2 MDM with following credentials.
Domain: {domain} Domain: {domain-name}
Username: {user-name} Username: {user-name}
Password: {password} Password: {password}
Below is the link to enroll. Below is the link to enroll.

Loading…
Cancel
Save