diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
index 18f76b2eb7..1f726c3f2b 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
@@ -22,13 +22,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.annotations
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
bundle
WSO2 Carbon - API Management Annotations
WSO2 Carbon - API Management Custom Annotation Module
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
index 9623ebff4e..ba6b5e6e75 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
@@ -21,12 +21,12 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
org.wso2.carbon.apimgt.application.extension.api
war
WSO2 Carbon - API Application Management API
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
index f348a9959b..007807a25a 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
@@ -22,12 +22,12 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
org.wso2.carbon.apimgt.application.extension
bundle
WSO2 Carbon - API Application Management
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml
index 44f78c1339..503b3c4d9e 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml
@@ -21,13 +21,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.handlers
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
bundle
WSO2 Carbon - API Security Handler Component
WSO2 Carbon - API Management Security Handler Module
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/src/main/java/org/wso2/carbon/apimgt/handlers/AuthenticationHandler.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/src/main/java/org/wso2/carbon/apimgt/handlers/AuthenticationHandler.java
index 6c95b40dee..8bad3de1a8 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/src/main/java/org/wso2/carbon/apimgt/handlers/AuthenticationHandler.java
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/src/main/java/org/wso2/carbon/apimgt/handlers/AuthenticationHandler.java
@@ -94,11 +94,7 @@ public class AuthenticationHandler extends AbstractHandler {
if (log.isDebugEnabled()) {
log.debug("Verify Cert:\n" + mdmSignature);
}
- String deviceType = this.getDeviceType(messageContext.getTo().getAddress().trim());
- if (deviceType == null) {
- return false;
- }
- URI certVerifyUrl = new URI(iotServerConfiguration.getVerificationEndpoint() + deviceType);
+ URI certVerifyUrl = new URI(iotServerConfiguration.getVerificationEndpoint() + "ios");
Map certVerifyHeaders = this.setHeaders(this.restInvoker);
Certificate certificate = new Certificate();
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml
index 0c1700909f..2c35fa03a8 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml
@@ -13,13 +13,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.integration.client
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
bundle
WSO2 Carbon - API Management Integration Client
WSO2 Carbon - API Management Integration Client
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml
index 947fcee891..d45ff5ca1a 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml
@@ -13,13 +13,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.integration.generated.client
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
bundle
WSO2 Carbon - API Management Integration Generated Client
WSO2 Carbon - API Management Integration Client
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
index 4cf1be6b79..f2d741b79d 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
@@ -22,13 +22,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.webapp.publisher
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
bundle
WSO2 Carbon - API Management Webapp Publisher
WSO2 Carbon - API Management Webapp Publisher
diff --git a/components/apimgt-extensions/pom.xml b/components/apimgt-extensions/pom.xml
index 0c50127ae2..ecaebeea11 100644
--- a/components/apimgt-extensions/pom.xml
+++ b/components/apimgt-extensions/pom.xml
@@ -22,13 +22,13 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
4.0.0
apimgt-extensions
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
pom
WSO2 Carbon - API Management Extensions Component
http://wso2.org
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml
index 6788d65df8..cb66411260 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml
@@ -22,7 +22,7 @@
certificate-mgt
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml
index 94f81fa53f..39436bde9c 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml
@@ -22,7 +22,7 @@
certificate-mgt
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml
index cc665a5c52..1616b820e3 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml
@@ -24,7 +24,7 @@
certificate-mgt
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml
index a17d502391..4c0dfec5ef 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml
@@ -21,13 +21,13 @@
org.wso2.carbon.devicemgt
certificate-mgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.certificate.mgt.core
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
bundle
WSO2 Carbon - Certificate Management Core
WSO2 Carbon - Certificate Management Core
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml
index 63d0d5d7ae..383f64e320 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml
@@ -24,7 +24,7 @@
certificate-mgt
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/certificate-mgt/pom.xml b/components/certificate-mgt/pom.xml
index a04db87ac3..661ac12be4 100644
--- a/components/certificate-mgt/pom.xml
+++ b/components/certificate-mgt/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
certificate-mgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
pom
WSO2 Carbon - Certificate Management Component
http://wso2.org
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
index 99587d5022..58daee9d78 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml
index 4d217c1ae7..1df100837c 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml
index 4ecc2da7d8..845a44dd00 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml
index 795361249d..6827c8cd9c 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
index 82c6f59d41..f61c712fb5 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
index 24bf6c7fe0..d5e08e6501 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/pom.xml b/components/device-mgt-extensions/pom.xml
index 97ce64bb1f..c0e75b0e3b 100644
--- a/components/device-mgt-extensions/pom.xml
+++ b/components/device-mgt-extensions/pom.xml
@@ -22,7 +22,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml
index 2cee98eef0..bfe96542ed 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml
index fd1ad4cfe2..fd793bf2a0 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml
@@ -20,7 +20,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
4.0.0
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml
index e39c0da389..40b4e62cfb 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml
@@ -22,7 +22,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/UserManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/UserManagementService.java
index 659276becb..6000845829 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/UserManagementService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/UserManagementService.java
@@ -48,6 +48,7 @@ import io.swagger.annotations.ResponseHeader;
import org.apache.axis2.transport.http.HTTPConstants;
import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.apimgt.annotations.api.Scope;
+import org.wso2.carbon.device.mgt.jaxrs.beans.ActivityList;
import org.wso2.carbon.device.mgt.jaxrs.beans.BasicUserInfo;
import org.wso2.carbon.device.mgt.jaxrs.beans.BasicUserInfoList;
import org.wso2.carbon.device.mgt.jaxrs.beans.Credential;
@@ -155,6 +156,12 @@ import java.util.List;
description = "Sending Enrollment Invitations to Users",
key = "perm:users:send-invitation",
permissions = {"/device-mgt/users/manage"}
+ ),
+ @Scope(
+ name = "Get activities",
+ description = "Get activities",
+ key = "perm:get-activity",
+ permissions = {"/device-mgt/devices/owning-device/view"}
)
}
)
@@ -924,4 +931,80 @@ public interface UserManagementService {
@POST
@Path("/validate")
Response validateUser(Credential credential);
+
+ @GET
+ @Path("/device/activities")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Getting Activity Details",
+ notes = "Get the details of the operations/activities executed by the server on the devices registered" +
+ " with WSO2 EMM, during a defined time period.",
+ tags = "Activity Info Provider",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:get-activity")
+ })
+ }
+ )
+ @ApiResponses(value = {
+ @ApiResponse(
+ code = 200,
+ message = "OK. \n Successfully fetched the activity details.",
+ response = ActivityList.class,
+ responseHeaders = {
+ @ResponseHeader(
+ name = "Content-Type",
+ description = "The content type of the body"),
+ @ResponseHeader(
+ name = "ETag",
+ description = "Entity Tag of the response resource.\n" +
+ "Used by caches, or in conditional requests."),
+ @ResponseHeader(
+ name = "Last-Modified",
+ description = "Date and time the resource was last modified.\n" +
+ "Used by caches, or in conditional requests."),
+ }),
+ @ApiResponse(
+ code = 304,
+ message = "Not Modified. \n Empty body because the client already has the latest version of the" +
+ " requested resource.\n"),
+ @ApiResponse(
+ code = 401,
+ message = "Unauthorized. \n Unauthorized request."),
+ @ApiResponse(
+ code = 404,
+ message = "Not Found. \n No activities found.",
+ response = ErrorResponse.class),
+ @ApiResponse(
+ code = 406,
+ message = "Not Acceptable.\n The requested media type is not supported"),
+ @ApiResponse(
+ code = 500,
+ message = "Internal Server Error. \n Server error occurred while fetching the activity data.",
+ response = ErrorResponse.class)
+ })
+ Response getActivities(
+ @ApiParam(
+ name = "since",
+ value = "Checks if the requested variant was created since the specified date-time.\n" +
+ "Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z.\n" +
+ "Example: Mon, 05 Jan 2014 15:10:00 +0200")
+ @QueryParam("since") String since,
+ @ApiParam(
+ name = "offset",
+ value = "The starting pagination index for the complete list of qualified items.",
+ defaultValue = "0")
+ @QueryParam("offset") int offset,
+ @ApiParam(
+ name = "limit",
+ value = "Provide how many activity details you require from the starting pagination index/offset.",
+ defaultValue = "5")
+ @QueryParam("limit") int limit,
+ @ApiParam(
+ name = "If-Modified-Since",
+ value = "Checks if the requested variant was modified, since the specified date-time\n." +
+ "Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z\n." +
+ "Example: Mon, 05 Jan 2014 15:10:00 +0200")
+ @HeaderParam("If-Modified-Since") String ifModifiedSince);
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java
index 0ac0677151..b96977adfb 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java
@@ -32,6 +32,7 @@ import io.swagger.annotations.ResponseHeader;
import org.wso2.carbon.apimgt.annotations.api.Scope;
import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.device.mgt.common.Device;
+import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceList;
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
import org.wso2.carbon.device.mgt.jaxrs.util.Constants;
@@ -39,6 +40,7 @@ import javax.validation.constraints.Size;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import java.util.List;
@SwaggerDefinition(
info = @Info(
@@ -68,6 +70,12 @@ import javax.ws.rs.core.Response;
description = "Getting Details of a Device",
key = "perm:admin:devices:view",
permissions = {"/device-mgt/devices/owning-device/view"}
+ ),
+ @Scope(
+ name = "Update the Device Owner",
+ description = "Update the ownership of the device",
+ key = "perm:admin:devices:update-enrollment",
+ permissions = {"/device-mgt/admin/devices/update-enrollment"}
)
}
)
@@ -167,4 +175,54 @@ public interface DeviceManagementAdminService {
required = false,
defaultValue = "5")
@QueryParam("limit") int limit);
+
+ @PUT
+ @Path("/device-owner")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "PUT",
+ value = "Update the device owner",
+ notes = "Update enrollment owner for given device Identifiers.",
+ tags = "Device Management",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:admin:devices:update-enrollment")
+ })
+ }
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK. \n Successfully update the owner of devices.",
+ response = DeviceList.class,
+ responseHeaders = {
+ @ResponseHeader(
+ name = "Content-Type",
+ description = "The content type of the body"),
+ @ResponseHeader(
+ name = "ETag",
+ description = "Entity Tag of the response resource.\n" +
+ "Used by caches, or in conditional requests."),
+ @ResponseHeader(
+ name = "Last-Modified",
+ description = "Date and time the resource was last modified.\n" +
+ "Used by caches, or in conditional requests."),
+ }),
+ @ApiResponse(
+ code = 400,
+ message = "The incoming request has more than one selection criteria defined via the query parameters.",
+ response = ErrorResponse.class),
+ @ApiResponse(
+ code = 500,
+ message = "Internal Server Error. \n Server error occurred while fetching the device list.",
+ response = ErrorResponse.class)
+ }) Response updateEnrollOwner(
+ @ApiParam(
+ name = "Device Owner",
+ value = "The username that is going to use for the new device owner of given devices.",
+ required = true)
+ @QueryParam("owner") String owner,
+ @ApiParam(
+ name = "Device Identifiers",
+ value = "List of device identifiers.",
+ required = true)
+ List deviceIdentifiers);
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java
index dae2bbbf53..329c559903 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java
@@ -39,12 +39,16 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.HttpStatus;
import org.eclipse.wst.common.uriresolver.internal.util.URIEncoder;
+import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
+import org.wso2.carbon.device.mgt.common.operation.mgt.Activity;
+import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
import org.wso2.carbon.device.mgt.core.DeviceManagementConstants;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
import org.wso2.carbon.device.mgt.core.service.EmailMetaInfo;
+import org.wso2.carbon.device.mgt.jaxrs.beans.ActivityList;
import org.wso2.carbon.device.mgt.jaxrs.beans.BasicUserInfo;
import org.wso2.carbon.device.mgt.jaxrs.beans.BasicUserInfoList;
import org.wso2.carbon.device.mgt.jaxrs.beans.BasicUserInfoWrapper;
@@ -88,8 +92,11 @@ import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
import java.security.SecureRandom;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -793,8 +800,96 @@ public class UserManagementServiceImpl implements UserManagementService {
} catch (UserStoreException e) {
String msg = "Error occurred while retrieving user store to validate user";
log.error(msg, e);
- return Response.serverError().entity(
- new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
+ return Response.serverError().entity(new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build())
+ .build();
+ }
+ }
+
+ @GET
+ @Override
+ @Path("/device/activities")
+ public Response getActivities(
+ @QueryParam("since") String since,
+ @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit,
+ @HeaderParam("If-Modified-Since") String ifModifiedSince) {
+ long ifModifiedSinceTimestamp;
+ long sinceTimestamp;
+ long timestamp = 0;
+ boolean isIfModifiedSinceSet = false;
+ String initiatedBy;
+ if (log.isDebugEnabled()) {
+ log.debug("getActivities since: " + since + " , offset: " + offset + " ,limit: " + limit + " ,"
+ + "ifModifiedSince: " + ifModifiedSince);
+ }
+ RequestValidationUtil.validatePaginationParameters(offset, limit);
+ if (ifModifiedSince != null && !ifModifiedSince.isEmpty()) {
+ Date ifSinceDate;
+ SimpleDateFormat format = new SimpleDateFormat(Constants.DEFAULT_SIMPLE_DATE_FORMAT);
+ try {
+ ifSinceDate = format.parse(ifModifiedSince);
+ } catch (ParseException e) {
+ return Response.status(400).entity(new ErrorResponse.ErrorResponseBuilder()
+ .setMessage("Invalid date string is provided in 'If-Modified-Since' header").build()).build();
+ }
+ ifModifiedSinceTimestamp = ifSinceDate.getTime();
+ isIfModifiedSinceSet = true;
+ timestamp = ifModifiedSinceTimestamp / 1000;
+ } else if (since != null && !since.isEmpty()) {
+ Date sinceDate;
+ SimpleDateFormat format = new SimpleDateFormat(Constants.DEFAULT_SIMPLE_DATE_FORMAT);
+ try {
+ sinceDate = format.parse(since);
+ } catch (ParseException e) {
+ return Response.status(400).entity(new ErrorResponse.ErrorResponseBuilder()
+ .setMessage("Invalid date string is provided in 'since' filter").build()).build();
+ }
+ sinceTimestamp = sinceDate.getTime();
+ timestamp = sinceTimestamp / 1000;
+ }
+
+ if (timestamp == 0) {
+ //If timestamp is not sent by the user, a default value is set, that is equal to current time-12 hours.
+ long time = System.currentTimeMillis() / 1000;
+ timestamp = time - 42300;
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("getActivities final timestamp " + timestamp);
+ }
+
+ List activities;
+ int count;
+ ActivityList activityList = new ActivityList();
+ DeviceManagementProviderService dmService;
+
+ initiatedBy = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername();
+ try {
+ if (log.isDebugEnabled()) {
+ log.debug("Calling database to get activities.");
+ }
+ dmService = DeviceMgtAPIUtils.getDeviceManagementService();
+ activities = dmService.getActivitiesUpdatedAfterByUser(timestamp, initiatedBy, limit, offset);
+ if (log.isDebugEnabled()) {
+ log.debug("Calling database to get activity count with timestamp and user.");
+ }
+ count = dmService.getActivityCountUpdatedAfterByUser(timestamp, initiatedBy);
+ if (log.isDebugEnabled()) {
+ log.debug("Activity count: " + count);
+ }
+
+ activityList.setList(activities);
+ activityList.setCount(count);
+ if ((activities == null || activities.isEmpty()) && isIfModifiedSinceSet) {
+ return Response.notModified().build();
+ }
+ return Response.ok().entity(activityList).build();
+ } catch (OperationManagementException e) {
+ String msg =
+ "Error Response occurred while fetching the activities updated after given time stamp for the user "
+ + initiatedBy + ".";
+ log.error(msg, e);
+ return Response.serverError().entity(new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build())
+ .build();
}
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/DeviceManagementAdminServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/DeviceManagementAdminServiceImpl.java
index a6d98fc73c..38e5804751 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/DeviceManagementAdminServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/DeviceManagementAdminServiceImpl.java
@@ -20,18 +20,23 @@ package org.wso2.carbon.device.mgt.jaxrs.service.impl.admin;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.solr.common.StringUtils;
+import org.wso2.carbon.apimgt.integration.generated.client.publisher.StringUtil;
import org.wso2.carbon.base.MultitenantConstants;
import org.wso2.carbon.context.CarbonContext;
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
+import org.wso2.carbon.device.mgt.common.InvalidDeviceException;
import org.wso2.carbon.device.mgt.common.PaginationRequest;
+import org.wso2.carbon.device.mgt.common.UserNotFoundException;
import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceList;
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
import org.wso2.carbon.device.mgt.jaxrs.service.api.admin.DeviceManagementAdminService;
import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil;
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
+import javax.validation.constraints.Past;
import javax.validation.constraints.Size;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
@@ -87,4 +92,32 @@ public class DeviceManagementAdminServiceImpl implements DeviceManagementAdminSe
}
}
+ @PUT
+ @Override
+ @Path("/device-owner")
+ public Response updateEnrollOwner(
+ @QueryParam("owner") String owner,
+ List deviceIdentifiers){
+ try {
+ if (DeviceMgtAPIUtils.getDeviceManagementService().updateEnrollment(owner, deviceIdentifiers)){
+ String msg = "Device owner is updated successfully.";
+ return Response.status(Response.Status.OK).entity(msg).build();
+ }
+ String msg = "Device owner updating is failed.";
+ log.error(msg);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ } catch(InvalidDeviceException e){
+ String msg = "Invalid device identifiers are found with the request.";
+ log.error(msg);
+ return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
+ }catch (DeviceManagementException e) {
+ String msg = "Error occurred when updating device owners.";
+ log.error(msg);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ } catch (UserNotFoundException e) {
+ String msg = "Couldn't found the owner in user store to update the owner of devices.";
+ log.error(msg);
+ return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
+ }
+ }
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/Constants.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/Constants.java
index 728c461c7b..4525cdd38d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/Constants.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/Constants.java
@@ -30,6 +30,7 @@ public class Constants {
public static final String DEFAULT_STREAM_VERSION = "1.0.0";
public static final String SCOPE = "scope";
public static final String JDBC_USERSTOREMANAGER = "org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager";
+ public static final String DEFAULT_SIMPLE_DATE_FORMAT = "EEE, d MMM yyyy HH:mm:ss Z";
public static final int DEFAULT_PAGE_LIMIT = 50;
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml
index 19daca071d..eb7b99a2a4 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml
@@ -21,7 +21,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/UserNotFoundException.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/UserNotFoundException.java
new file mode 100644
index 0000000000..640e28b752
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/UserNotFoundException.java
@@ -0,0 +1,44 @@
+package org.wso2.carbon.device.mgt.common;
+/*
+ * Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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.
+ */
+
+public class UserNotFoundException extends Exception {
+
+ private static final long serialVersionUID = -5705727414452641634L;
+
+ public UserNotFoundException(String msg, Exception nestedEx) {
+ super(msg, nestedEx);
+ }
+
+ public UserNotFoundException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public UserNotFoundException(String msg) {
+ super(msg);
+ }
+
+ public UserNotFoundException() {
+ super();
+ }
+
+ public UserNotFoundException(Throwable cause) {
+ super(cause);
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml
index 544e973160..ebd02a89f7 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java
index e768749d7f..93a254d2c7 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java
@@ -426,5 +426,16 @@ public interface DeviceDAO {
*/
List findGeoClusters(String deviceType, GeoCoordinate southWest, GeoCoordinate northEast,
int geohashLength,int tenantId) throws DeviceManagementDAOException;
+
+ /***
+ * This method is used to identify whether given device ids are exist or not.
+ *
+ * @param deviceIdentifiers List of device identifiers.
+ * @param tenantId tenant id.
+ * @return returns list of device ids that matches with device identifiers.
+ * @throws DeviceManagementDAOException throws {@link DeviceManagementDAOException} if connections establishment
+ * fails.
+ */
+ List getDevicesByIdentifiers(List deviceIdentifiers, int tenantId) throws DeviceManagementDAOException;
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/EnrollmentDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/EnrollmentDAO.java
index 843e8df646..b8230d6cf2 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/EnrollmentDAO.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/EnrollmentDAO.java
@@ -18,6 +18,7 @@
*/
package org.wso2.carbon.device.mgt.core.dao;
+import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
import org.wso2.carbon.device.mgt.common.EnrolmentInfo.Status;
@@ -50,4 +51,16 @@ public interface EnrollmentDAO {
List getEnrollmentsOfUser(int deviceId, String user, int tenantId) throws
DeviceManagementDAOException;
+ /***
+ *This method is used to update the owner of the enrollment for given set of devices to given user.
+ *
+ * @param devices List of devices.
+ * @param owner Username of the new device owner.
+ * @param tenantId tenant id.
+ * @return either (1) true, if device owner updating is succeed or false.
+ * @throws DeviceManagementDAOException if an error occurs when updating device owner.
+ */
+ boolean updateOwnerOfEnrollment(List devices, String owner, int tenantId)
+ throws DeviceManagementDAOException;
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/AbstractDeviceDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/AbstractDeviceDAOImpl.java
index 66e15a47cf..1e8a01e244 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/AbstractDeviceDAOImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/AbstractDeviceDAOImpl.java
@@ -40,6 +40,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
+import java.util.StringJoiner;
public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
@@ -1245,4 +1246,53 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
}
return geoClusters;
}
+
+ @Override
+ public List getDevicesByIdentifiers(List deviceIdentifiers, int tenantId)
+ throws DeviceManagementDAOException {
+ try {
+ Connection conn = this.getConnection();
+ int index = 1;
+ int counter = 0;
+ List devices = new ArrayList<>();
+
+ StringJoiner joiner = new StringJoiner(",",
+ "SELECT "
+ + "d1.ID AS DEVICE_ID, d1.DESCRIPTION, d1.NAME AS DEVICE_NAME, d1.DEVICE_TYPE, "
+ + "d1.DEVICE_IDENTIFICATION, e.OWNER, e.OWNERSHIP, e.STATUS, e.DATE_OF_LAST_UPDATE, "
+ + "e.DATE_OF_ENROLMENT, e.ID AS ENROLMENT_ID "
+ + "FROM "
+ + "DM_ENROLMENT e, "
+ + "(SELECT d.ID, d.DESCRIPTION, d.NAME, t.NAME AS DEVICE_TYPE, d.DEVICE_IDENTIFICATION "
+ + "FROM DM_DEVICE d, DM_DEVICE_TYPE t "
+ + "WHERE "
+ + "t.ID = d.DEVICE_TYPE_ID AND d.DEVICE_IDENTIFICATION IN (",
+ ") AND d.TENANT_ID = ?) d1 "
+ + "WHERE d1.ID = e.DEVICE_ID AND TENANT_ID = ? "
+ + "ORDER BY e.DATE_OF_LAST_UPDATE DESC, e.STATUS ASC");
+ while (counter < deviceIdentifiers.size()) {
+ joiner.add("?");
+ counter++;
+ }
+ String query = joiner.toString();
+ try (PreparedStatement ps = conn.prepareStatement(query)) {
+ for (String identifier : deviceIdentifiers) {
+ ps.setObject(index++, identifier);
+ }
+ ps.setInt(index++, tenantId);
+ ps.setInt(index, tenantId);
+ try (ResultSet rs = ps.executeQuery()) {
+ if (rs.next()) {
+ Device device = DeviceManagementDAOUtil.loadDevice(rs);
+ devices.add(device);
+ }
+ }
+ }
+ return devices;
+ } catch (SQLException e) {
+ throw new DeviceManagementDAOException("Error occurred while obtaining the DB connection when adding tags",
+ e);
+ }
+ }
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/EnrollmentDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/EnrollmentDAOImpl.java
index 89e20dc242..7bbb94bc89 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/EnrollmentDAOImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/EnrollmentDAOImpl.java
@@ -18,6 +18,7 @@
*/
package org.wso2.carbon.device.mgt.core.dao.impl;
+import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
@@ -28,6 +29,7 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.sql.Statement;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
@@ -361,6 +363,44 @@ public class EnrollmentDAOImpl implements EnrollmentDAO {
}
}
+ @Override
+ public boolean updateOwnerOfEnrollment(List devices, String owner, int tenantId)
+ throws DeviceManagementDAOException {
+ try {
+ Connection conn = this.getConnection();
+ boolean updateStatus = true;
+ String sql = "UPDATE DM_ENROLMENT SET OWNER = ? WHERE ID = ? AND TENANT_ID = ?";
+ try (PreparedStatement ps = conn.prepareStatement(sql)) {
+ if (conn.getMetaData().supportsBatchUpdates()) {
+ for (Device device : devices) {
+ ps.setString(1, owner);
+ ps.setInt(2, device.getId());
+ ps.setInt(3, tenantId);
+ ps.addBatch();
+ }
+ for (int i : ps.executeBatch()) {
+ if (i == 0 || i == Statement.SUCCESS_NO_INFO || i == Statement.EXECUTE_FAILED) {
+ updateStatus = false;
+ }
+ }
+ } else {
+ for (Device device : devices) {
+ ps.setString(1, owner);
+ ps.setInt(2, device.getId());
+ ps.setInt(3, tenantId);
+ if (ps.executeUpdate() == 0) {
+ updateStatus = false;
+ }
+ }
+ }
+ }
+ return updateStatus;
+ } catch (SQLException e) {
+ throw new DeviceManagementDAOException("Error occurred while obtaining the DB connection when adding tags",
+ e);
+ }
+ }
+
private Connection getConnection() throws SQLException {
return DeviceManagementDAOFactory.getConnection();
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java
index 1c108fbb74..7d3c0fdf52 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java
@@ -17,7 +17,17 @@
*/
package org.wso2.carbon.device.mgt.core.service;
-import org.wso2.carbon.device.mgt.common.*;
+import org.wso2.carbon.device.mgt.common.Device;
+import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
+import org.wso2.carbon.device.mgt.common.DeviceManagementException;
+import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
+import org.wso2.carbon.device.mgt.common.FeatureManager;
+import org.wso2.carbon.device.mgt.common.InvalidDeviceException;
+import org.wso2.carbon.device.mgt.common.MonitoringOperation;
+import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig;
+import org.wso2.carbon.device.mgt.common.PaginationRequest;
+import org.wso2.carbon.device.mgt.common.PaginationResult;
+import org.wso2.carbon.device.mgt.common.UserNotFoundException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
import org.wso2.carbon.device.mgt.common.license.mgt.License;
@@ -657,4 +667,7 @@ public interface DeviceManagementProviderService {
List getDeviceIdentifiersByStatus(String deviceType, String deviceStatus) throws DeviceManagementException;
boolean bulkUpdateDeviceStatus(String deviceType, List deviceList, String status) throws DeviceManagementException;
+
+ boolean updateEnrollment(String owner, List deviceIdentifiers)
+ throws DeviceManagementException, UserNotFoundException, InvalidDeviceException;
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java
index c579623d73..ecb7463be2 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java
@@ -49,6 +49,7 @@ import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig;
import org.wso2.carbon.device.mgt.common.PaginationRequest;
import org.wso2.carbon.device.mgt.common.PaginationResult;
import org.wso2.carbon.device.mgt.common.TransactionManagementException;
+import org.wso2.carbon.device.mgt.common.UserNotFoundException;
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
@@ -2809,7 +2810,8 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
success = deviceDAO.setEnrolmentStatusInBulk(deviceType, status, tenantId, deviceList);
DeviceManagementDAOFactory.commitTransaction();
} catch (DeviceManagementDAOException e) {
- String msg = "Error occurred in while updating status of devices :" +deviceType + " status : " + deviceList.toString();
+ String msg = "Error occurred in while updating status of devices :" + deviceType + " status : " + deviceList
+ .toString();
log.error(msg, e);
throw new DeviceManagementException(msg, e);
} catch (SQLException e) {
@@ -2822,6 +2824,66 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
return success;
}
+ public boolean updateEnrollment(String owner, List deviceIdentifiers)
+ throws DeviceManagementException, UserNotFoundException, InvalidDeviceException {
+
+ int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
+ List existingDevices;
+ owner = validateOwner(owner, tenantId);
+ try {
+ DeviceManagementDAOFactory.beginTransaction();
+ existingDevices = deviceDAO.getDevicesByIdentifiers(deviceIdentifiers, tenantId);
+ if (existingDevices.size() != deviceIdentifiers.size()) {
+ for (Device device : existingDevices) {
+ deviceIdentifiers.remove(device.getDeviceIdentifier());
+ }
+ String msg =
+ "Couldn't find device ids for requested all device identifiers. Therefore payload should "
+ + "contains device identifiers which are not in the system. Invalid device "
+ + "identifiers are " + deviceIdentifiers.toString();
+ log.error(msg);
+ throw new InvalidDeviceException(msg);
+ }
+ if (enrollmentDAO.updateOwnerOfEnrollment(existingDevices, owner, tenantId)) {
+ DeviceManagementDAOFactory.commitTransaction();
+ return true;
+ }
+ DeviceManagementDAOFactory.rollbackTransaction();
+ return false;
+ } catch (TransactionManagementException e) {
+ String msg = "Error occurred while initiating transaction";
+ log.error(msg, e);
+ throw new DeviceManagementException(msg, e);
+ } catch (DeviceManagementDAOException e) {
+ String msg = "Error occurred either verifying existence of device ids or updating owner of the device.";
+ log.error(msg);
+ throw new DeviceManagementException(msg, e);
+ } finally {
+ DeviceManagementDAOFactory.closeConnection();
+ }
+ }
+
+ private String validateOwner(String owner, int tenantId) throws UserNotFoundException, DeviceManagementException {
+ try {
+ if (StringUtils.isEmpty(owner)) {
+ owner = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername();
+ } else {
+ boolean isUserExisit = DeviceManagementDataHolder.getInstance().getRealmService()
+ .getTenantUserRealm(tenantId).getUserStoreManager().isExistingUser(owner);
+ if (!isUserExisit) {
+ String msg = "Owner does not exist in the user storage. Owner: " + owner;
+ log.error(msg);
+ throw new UserNotFoundException(msg);
+ }
+ }
+ return owner;
+ } catch (UserStoreException e) {
+ String msg = "Error occurred when checking whether owner is exist or not. Owner: " + owner;
+ log.error(msg);
+ throw new DeviceManagementException(msg, e);
+ }
+ }
+
private void extractDeviceLocationToUpdate(Device device) {
List properties = device.getProperties();
if (properties != null) {
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
index d7c1f5de07..862e3d596b 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
@@ -22,7 +22,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml
index 8b3106b447..7fdec2aefa 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml
@@ -22,7 +22,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.cookie-policy/cookie-policy.hbs b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.cookie-policy/cookie-policy.hbs
index 67f867622b..9a2df65f5e 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.cookie-policy/cookie-policy.hbs
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.cookie-policy/cookie-policy.hbs
@@ -26,14 +26,14 @@
About Entgra IoT Server
-
Entgra IoT Server 3.4.0 is a complete solution that enables device manufacturers and enterprises to
+
Entgra IoT Server 3.5.0 is a complete solution that enables device manufacturers and enterprises to
connect and manage their devices, build apps, manage events, secure devices and data, and visualize
sensor data in a scalable manner.
It also offers a complete and secure Enterprise Mobility Management (EMM/MDM) solution that aims to
address mobile computing challenges faced by enterprises today. Supporting iOS, Android, and Windows
devices, it helps organizations deal with both Corporate Owned, Personally Enabled (COPE) and
employee-owned devices with the Bring Your Own Device (BYOD) concept.
-
Entgra IoT Server 3.4.0 comes with advanced analytics, enabling users to analyze speed, proximity, and
+
Entgra IoT Server 3.5.0 comes with advanced analytics, enabling users to analyze speed, proximity, and
geo-fencing information of devices including details of those in motion and stationary state.
Cookie Policy
@@ -45,12 +45,12 @@
apps remember things about you. Other technologies, including Web storage and identifiers associated
with your device, may be used for similar purposes. In this policy, we use the term “cookies” to
discuss all of these technologies.
-
How does Entgra IoT Server 3.4.0 process cookies?
-
Entgra IoT Server 3.4.0 uses cookies to store and retrieve information on your browser. This
+
How does Entgra IoT Server 3.5.0 process cookies?
+
Entgra IoT Server 3.5.0 uses cookies to store and retrieve information on your browser. This
information is used to provide a better user experience. Some cookies serve the purpose of allowing a
user to log in to the system, maintain sessions, and keep track of activities within the login
session.
-
Some cookies in Entgra IoT Server 3.4.0 are used to personally identify you. However, the cookie
+
Some cookies in Entgra IoT Server 3.5.0 are used to personally identify you. However, the cookie
lifetime ends once your session ends, i.e., after you log-out, or after the session expiry time has
elapsed.
Some cookies are simply used to give you a more personalised web experience, and these cannot be used
@@ -58,42 +58,42 @@
This Cookie Policy is part of the IoT Server Privacy Policy.
What does Entgra IoT Server 3.0.0 use cookies for?
-
Cookies are used for two purposes in Entgra IoT Server 3.4.0.
+
Cookies are used for two purposes in Entgra IoT Server 3.5.0.
- To identify you and provide security
- To provide a satisfying user experience.
Preferences
-
Entgra IoT Server 3.4.0 uses cookies to remember your settings and preferences and to auto-fill the
+
Entgra IoT Server 3.5.0 uses cookies to remember your settings and preferences and to auto-fill the
fields to make your interactions with the site easier.
These cookies can not be used to personally identify you.
Security
- - Entgra IoT Server 3.4.0 uses selected cookies to identify and prevent security risks. For example,
- Entgra IoT Server 3.4.0 may use cookies to store your session information to prevent others from
+
- Entgra IoT Server 3.5.0 uses selected cookies to identify and prevent security risks. For example,
+ Entgra IoT Server 3.5.0 may use cookies to store your session information to prevent others from
changing your password without your username and password.
- - Entgra IoT Server 3.4.0 uses session cookie to maintain your active session.
- - Entgra IoT Server 3.4.0 may use a temporary cookie when performing multi-factor authentication and
+
- Entgra IoT Server 3.5.0 uses session cookie to maintain your active session.
+ - Entgra IoT Server 3.5.0 may use a temporary cookie when performing multi-factor authentication and
federated authentication.
- - Entgra IoT Server 3.4.0 may use permanent cookies to detect the devices you have logged in
+
- Entgra IoT Server 3.5.0 may use permanent cookies to detect the devices you have logged in
previously. This is to to calculate the risk level associated with your current login
attempt. Using these cookies protects you and your account from possible attacks.
Performance
-
Entgra IoT Server 3.4.0 may use cookies to allow Remember Me functionalities.
+
Entgra IoT Server 3.5.0 may use cookies to allow Remember Me functionalities.
Analytics
-
Entgra IoT Server 3.4.0 as a product does not use cookies for analytical purposes.
+
Entgra IoT Server 3.5.0 as a product does not use cookies for analytical purposes.
Third party cookies
-
Using Entgra IoT Server 3.4.0 may cause third-party cookie to be set in your browser. Entgra IoT Server
- 3.4.0 has no control over how any of them operate. The third-party cookies that maybe set
+
Using Entgra IoT Server 3.5.0 may cause third-party cookie to be set in your browser. Entgra IoT Server
+ 3.5.0 has no control over how any of them operate. The third-party cookies that maybe set
include:
- - Any social login sites. For example, third-party cookies may be set when Entgra IoT Server 3.4.0
+
- Any social login sites. For example, third-party cookies may be set when Entgra IoT Server 3.5.0
is configured to use “social” or “federated” login, and you opt to login with your “Social
Account”.
@@ -101,11 +101,11 @@
Entgra strongly advises you to refer the respective cookie policies of such sites carefully as Entgra has
no knowledge or use on these cookies.
-
What type of cookies does Entgra IoT Server 3.4.0 use?
-
Entgra IoT Server 3.4.0 uses persistent cookies and session cookies. A persistent cookie helps Entgra IS
- 3.4.0 to recognize you as an existing user so that it is easier to return to Entgra or interact with
- Entgra IS 3.4.0 without signing in again. After you sign in, a persistent cookie stays in your browser
- and will be read by Entgra IoT Server 3.4.0 when you return to Entgra IoT Server 3.4.0.
+
What type of cookies does Entgra IoT Server 3.5.0 use?
+
Entgra IoT Server 3.5.0 uses persistent cookies and session cookies. A persistent cookie helps Entgra IS
+ 3.5.0 to recognize you as an existing user so that it is easier to return to Entgra or interact with
+ Entgra IS 3.5.0 without signing in again. After you sign in, a persistent cookie stays in your browser
+ and will be read by Entgra IoT Server 3.5.0 when you return to Entgra IoT Server 3.5.0.
A session cookie is a cookie that is erased when the user closes the Web browser. The session cookie
is stored in temporarily and is not retained after the browser is closed. Session cookies do not
collect information from the user’s computer.
@@ -114,9 +114,9 @@
for websites to set cookies, you may worsen your overall user experience since it will no longer be
personalized to you. It may also stop you from saving customized settings like login information.
Most likely, disabling cookies will make it unable for you to use authentication and authorization
- functionalities offered by Entgra IoT Server 3.4.0.
+ functionalities offered by Entgra IoT Server 3.5.0.
If you have any questions or concerns regarding the use of cookies, please contact the entity or
- individuals (or their data protection officer, if applicable) running this Entgra IoT Server 3.4.0
+ individuals (or their data protection officer, if applicable) running this Entgra IoT Server 3.5.0
instance.
What are the cookies used?
Disclaimer
-
This cookie policy is only for illustrative purposes of the product Entgra IoT Server 3.4.0. The
+
This cookie policy is only for illustrative purposes of the product Entgra IoT Server 3.5.0. The
content in the policy is technically correct at the time of the product shipment. The
- entity,organization or individual that runs this Entgra IoT Server 3.4.0 instance has full authority
+ entity,organization or individual that runs this Entgra IoT Server 3.5.0 instance has full authority
and responsibility with regard to the effective Cookie Policy. Entgra, its employees, partners, and
affiliates do not have access to and do not require, store, process or control any of the data,
- including personal data contained in Entgra IoT Server 3.4.0. All data, including personal data is
- controlled and processed by the entity, organization or individual running Entgra IoT Server 3.4.0.
+ including personal data contained in Entgra IoT Server 3.5.0. All data, including personal data is
+ controlled and processed by the entity, organization or individual running Entgra IoT Server 3.5.0.
Entgra, its employees partners and affiliates are not a data processor or a data controller within the
meaning of any data privacy regulations. Entgra does not provide any warranties or undertake any
responsibility or liability in connection with the lawfulness or the manner and purposes for which
- Entgra IoT Server 3.4.0 is used by such entities, organizations or persons.
+ Entgra IoT Server 3.5.0 is used by such entities, organizations or persons.
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.privacy-policy/privacy-policy.hbs b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.privacy-policy/privacy-policy.hbs
index b2f67283ee..dbcb7d89ab 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.privacy-policy/privacy-policy.hbs
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.privacy-policy/privacy-policy.hbs
@@ -36,18 +36,18 @@
Entgra IoT Server comes with advanced analytics, enabling users to analyze speed, proximity, and
geo-fencing information of devices including details of those in motion and stationary state.
Privacy Policy
- This policy describes how Entgra IoT Server 3.4.0 captures your personal information, the purposes of
+
This policy describes how Entgra IoT Server 3.5.0 captures your personal information, the purposes of
collection, and information about the retention of your personal information.
Please note that this policy is for reference only, and is applicable for the software as a product.
Entgra and its developers have no access to the information held within Entgra IoT Server
- 3.4.0.Please see the Disclaimer section for more information. Entities, organisations or individuals
- controlling the use and administration of Entgra IoT Server 3.4.0 should create their own privacy
+ 3.5.0.Please see the Disclaimer section for more information. Entities, organisations or individuals
+ controlling the use and administration of Entgra IoT Server 3.5.0 should create their own privacy
policies setting out the manner in which data is controlled or processed by the respective entity,
organisation or individual.
What is personal information?
- Entgra IoT Server 3.4.0 considers anything related to you and by which you may be identified as your
+
Entgra IoT Server 3.5.0 considers anything related to you and by which you may be identified as your
personal information.
- Signing in to Entgra IoT Server 3.4.0
+ Signing in to Entgra IoT Server 3.5.0
- Your user name (except in cases where the user name created by your employer is under
contract)
@@ -55,7 +55,7 @@
- IP address used to log in
- Email address
- Enrolling a device with Entgra IoT Server 3.4.0
+ Enrolling a device with Entgra IoT Server 3.5.0
- Your device ID (e.g., phone or tablet), mobile number, IMEI number, and IMSI number
- Your device’s location
@@ -64,7 +64,7 @@
memory usage
- However, Entgra IoT Server 3.4.0 also collects the following information that is not considered
+
However, Entgra IoT Server 3.5.0 also collects the following information that is not considered
personal information, but is used only for statistical purposes. The reason for this is that
this information can not be used to track you.
@@ -74,17 +74,17 @@
- Operating system and generic browser information
Collection of personal information
- Entgra IoT Server 3.4.0 collects your information only to serve your access requirements. For example:
+
Entgra IoT Server 3.5.0 collects your information only to serve your access requirements. For example:
- - Entgra IoT Server 3.4.0 uses your IP address to detect any suspicious login attempts to your
+
- Entgra IoT Server 3.5.0 uses your IP address to detect any suspicious login attempts to your
account.
-
- Entgra IoT Server 3.4.0 uses attributes like your first name, last name, etc., to provide a rich
+
- Entgra IoT Server 3.5.0 uses attributes like your first name, last name, etc., to provide a rich
and personalized user experience.
-
- Entgra IoT Server 3.4.0 uses your security questions and answers only to allow account recovery.
+
- Entgra IoT Server 3.5.0 uses your security questions and answers only to allow account recovery.
Tracking Technologies
- Entgra IoT Server 3.4.0 collects your information by:
+ Entgra IoT Server 3.5.0 collects your information by:
- Collecting information from the user profile page where you enter your personal data.
- Tracking your IP address with HTTP request, HTTP headers, and TCP/IP.
@@ -95,15 +95,15 @@
Use of personal information
- Entgra IoT Server 3.4.0 will only use your personal information for the purposes for which it was
+
Entgra IoT Server 3.5.0 will only use your personal information for the purposes for which it was
collected (or for a use identified as consistent with that purpose).
- Entgra IoT Server 3.4.0 uses your personal information only for the following purposes.
+ Entgra IoT Server 3.5.0 uses your personal information only for the following purposes.
- - To provide you with a personalized user experience. Entgra IoT Server 3.4.0 uses your name and
+
- To provide you with a personalized user experience. Entgra IoT Server 3.5.0 uses your name and
uploaded profile pictures for this purpose.
- To protect your account from unauthorized access or potential hacking attempts. Entgra IoT Server
- 3.4.0 uses HTTP or TCP/IP Headers for this purpose.
+ 3.5.0 uses HTTP or TCP/IP Headers for this purpose.
-
This includes:
@@ -114,10 +114,10 @@
- Derive statistical data for analytical purposes on system performance improvements. Entgra IoT
- Server 3.4.0 will not keep any personal information after statistical calculations. Therefore,
+ Server 3.5.0 will not keep any personal information after statistical calculations. Therefore,
the statistical report has no means of identifying an individual person.
- - Entgra IoT Server 3.4.0 may use:
+ - Entgra IoT Server 3.5.0 may use:
-
- IP Address to derive geographic information
@@ -126,28 +126,28 @@
Disclosure of personal information
- Entgra IoT Server 3.4.0 only discloses personal information to the relevant applications (also known as
- “Service Providers”) that are registered with Entgra IoT Server 3.4.0. These applications are
+
Entgra IoT Server 3.5.0 only discloses personal information to the relevant applications (also known as
+ “Service Providers”) that are registered with Entgra IoT Server 3.5.0. These applications are
registered by the identity administrator of your entity or organization. Personal information is
disclosed only for the purposes for which it was collected (or for a use identified as consistent
with that purpose) as controlled by such Service Providers, unless you have consented otherwise or
where it is required by law.
Legal process
- Please note that the organisation, entity or individual running Entgra IoT Server 3.4.0 may be
+
Please note that the organisation, entity or individual running Entgra IoT Server 3.5.0 may be
compelled to disclose your personal information with or without your consent when it is required by
law following due and lawful process.
Storage of personal information
Where your personal information is stored
- Entgra IoT Server 3.4.0 stores your personal information in secured databases. Entgra IoT Server 3.4.0
+
Entgra IoT Server 3.5.0 stores your personal information in secured databases. Entgra IoT Server 3.5.0
exercises proper industry accepted security measures to protect the database where your personal
- information is held.Entgra IoT Server 3.4.0 as a product does not transfer or share your data with any
+ information is held.Entgra IoT Server 3.5.0 as a product does not transfer or share your data with any
third parties or locations.
- Entgra IoT Server 3.4.0 may use encryption to keep your personal data with an added level of
+
Entgra IoT Server 3.5.0 may use encryption to keep your personal data with an added level of
security.
How long your personal information is retained
- Entgra IoT Server 3.4.0 retains your personal data as long as you are an active user of our system. You
+
Entgra IoT Server 3.5.0 retains your personal data as long as you are an active user of our system. You
can update your personal data at any time using the given self-care user portals.
- Entgra IoT Server 3.4.0 may keep hashed secrets to provide you with an added level of security. This
+
Entgra IoT Server 3.5.0 may keep hashed secrets to provide you with an added level of security. This
includes:
- Current password
@@ -157,15 +157,15 @@
You can request the administrator to delete your account. The administrator is the administrator of
the tenant you are registered under, or the super-administrator if you do not use the tenant
feature.
- Additionally, you can request to anonymize all traces of your activities that Entgra IoT Server 3.4.0
+
Additionally, you can request to anonymize all traces of your activities that Entgra IoT Server 3.5.0
may have retained in logs, databases or analytical storage.
More information
Changes to this policy
- Upgraded versions of Entgra IoT Server 3.4.0 may contain changes to this policy. Revisions to this
+
Upgraded versions of Entgra IoT Server 3.5.0 may contain changes to this policy. Revisions to this
policy will be packaged within such upgrades and would only apply to users who choose to use upgraded
versions.
Your choices
- If you are already have an user account within Entgra IoT Server 3.4.0 ; you have the right to
+
If you are already have an user account within Entgra IoT Server 3.5.0 ; you have the right to
deactivate your account if you find that this privacy policy is unacceptable to you.
If you do not have an account and you do not agree with our privacy policy, you can chose not to
create one.
@@ -174,19 +174,19 @@
https://entgra.io.com/contact/
Disclaimer
Entgra, its employees, partners, and affiliates do not have access to and do not require, store,
- process or control any of the data, including personal data contained in Entgra IoT Server 3.4.0. All
+ process or control any of the data, including personal data contained in Entgra IoT Server 3.5.0. All
data, including personal data is controlled and processed by the entity or individual running Entgra
- IoT Server 3.4.0. Entgra, its employees partners and affiliates are not a data processor or a data
+ IoT Server 3.5.0. Entgra, its employees partners and affiliates are not a data processor or a data
controller within the meaning of any data privacy regulations. Entgra does not provide any warranties
or undertake any responsibility or liability in connection with the lawfulness or the manner and
- purposes for which Entgra IoT Server 3.4.0 is used by such entities or persons.
+ purposes for which Entgra IoT Server 3.5.0 is used by such entities or persons.
This privacy policy is for the informational purposes of the entity or persons running Entgra IoT
- Server 3.4.0 and sets out the processes and functionality contained within Entgra IoT Server 3.4.0
+ Server 3.5.0 and sets out the processes and functionality contained within Entgra IoT Server 3.5.0
regarding personal data protection. It is the responsibility of entities and persons running Entgra IoT
- Server 3.4.0 to create and administer its own rules and processes governing users’ personal data,
+ Server 3.5.0 to create and administer its own rules and processes governing users’ personal data,
Please note that the creation of such rules and processes may change the use, storage and disclosure
policies contained herein. Therefore users should consult the entity or persons running Entgra IoT
- Server 3.4.0 for its own privacy policy for details governing users’ personal data.
+ Server 3.5.0 for its own privacy policy for details governing users’ personal data.
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.footer/footer.hbs b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.footer/footer.hbs
index 26c2fb0eb3..5d639f1191 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.footer/footer.hbs
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.footer/footer.hbs
@@ -17,7 +17,7 @@
}}
{{#zone "footer"}}
- Entgra IoT Server{{#unless isCloud}} 3.4.0{{/unless}}
+ Entgra IoT Server{{#unless isCloud}} 3.5.0{{/unless}}
Entgra IoT Server{{#unless isCloud}} 3.5.0{{/unless}} | © ,
Entgra. All Rights Reserved.
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/css/theme-wso2.css b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/css/theme-wso2.css
index 0b3167f64c..5dfa7a7c55 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/css/theme-wso2.css
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/css/theme-wso2.css
@@ -7353,7 +7353,7 @@ body.inverse .fade-edge:after {
height: 100%;
overflow-y: auto;
background: #FFFFFF;
- color: #ffffff;
+ color: rgba(0,0,0, 0.65);
-webkit-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml
index 0184e24d07..f4b47c1a73 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml
@@ -23,7 +23,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml
index d241e40857..799efc3bf8 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml
@@ -22,7 +22,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/UserManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/UserManagementService.java
index d161259aa3..3167ff572f 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/UserManagementService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/UserManagementService.java
@@ -25,8 +25,6 @@ import io.swagger.annotations.ExtensionProperty;
import io.swagger.annotations.Extension;
import io.swagger.annotations.Tag;
import io.swagger.annotations.Api;
-import io.swagger.annotations.AuthorizationScope;
-import io.swagger.annotations.Authorization;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
@@ -35,6 +33,7 @@ import io.swagger.annotations.ResponseHeader;
import org.apache.axis2.transport.http.HTTPConstants;
import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.apimgt.annotations.api.Scope;
+import org.wso2.carbon.device.mgt.jaxrs.beans.ActivityList;
import org.wso2.carbon.device.mgt.jaxrs.beans.BasicUserInfo;
import org.wso2.carbon.device.mgt.jaxrs.beans.BasicUserInfoList;
import org.wso2.carbon.device.mgt.jaxrs.beans.EnrollmentInvitation;
@@ -806,4 +805,80 @@ public interface UserManagementService {
value = "List of email address of recipients",
required = true)
@Valid EnrollmentInvitation enrollmentInvitation);
+
+ @GET
+ @Path("/device/activities")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Getting Activity Details",
+ notes = "Get the details of the operations/activities executed by the server on the devices registered" +
+ " with WSO2 EMM, during a defined time period.",
+ tags = "Activity Info Provider",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:get-activity")
+ })
+ }
+ )
+ @ApiResponses(value = {
+ @ApiResponse(
+ code = 200,
+ message = "OK. \n Successfully fetched the activity details.",
+ response = ActivityList.class,
+ responseHeaders = {
+ @ResponseHeader(
+ name = "Content-Type",
+ description = "The content type of the body"),
+ @ResponseHeader(
+ name = "ETag",
+ description = "Entity Tag of the response resource.\n" +
+ "Used by caches, or in conditional requests."),
+ @ResponseHeader(
+ name = "Last-Modified",
+ description = "Date and time the resource was last modified.\n" +
+ "Used by caches, or in conditional requests."),
+ }),
+ @ApiResponse(
+ code = 304,
+ message = "Not Modified. \n Empty body because the client already has the latest version of the" +
+ " requested resource.\n"),
+ @ApiResponse(
+ code = 401,
+ message = "Unauthorized. \n Unauthorized request."),
+ @ApiResponse(
+ code = 404,
+ message = "Not Found. \n No activities found.",
+ response = ErrorResponse.class),
+ @ApiResponse(
+ code = 406,
+ message = "Not Acceptable.\n The requested media type is not supported"),
+ @ApiResponse(
+ code = 500,
+ message = "Internal Server Error. \n Server error occurred while fetching the activity data.",
+ response = ErrorResponse.class)
+ })
+ Response getActivities(
+ @ApiParam(
+ name = "since",
+ value = "Checks if the requested variant was created since the specified date-time.\n" +
+ "Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z.\n" +
+ "Example: Mon, 05 Jan 2014 15:10:00 +0200")
+ @QueryParam("since") String since,
+ @ApiParam(
+ name = "offset",
+ value = "The starting pagination index for the complete list of qualified items.",
+ defaultValue = "0")
+ @QueryParam("offset") int offset,
+ @ApiParam(
+ name = "limit",
+ value = "Provide how many activity details you require from the starting pagination index/offset.",
+ defaultValue = "5")
+ @QueryParam("limit") int limit,
+ @ApiParam(
+ name = "If-Modified-Since",
+ value = "Checks if the requested variant was modified, since the specified date-time\n." +
+ "Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z\n." +
+ "Example: Mon, 05 Jan 2014 15:10:00 +0200")
+ @HeaderParam("If-Modified-Since") String ifModifiedSince);
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java
index 3a89b9c522..6a9ff80640 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java
@@ -33,6 +33,7 @@ import io.swagger.annotations.ResponseHeader;
import org.wso2.carbon.apimgt.annotations.api.Scope;
import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.device.mgt.common.Device;
+import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceList;
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
import org.wso2.carbon.device.mgt.jaxrs.util.Constants;
@@ -40,6 +41,7 @@ import javax.validation.constraints.Size;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import java.util.List;
@SwaggerDefinition(
info = @Info(
@@ -168,4 +170,54 @@ public interface DeviceManagementAdminService {
required = false,
defaultValue = "5")
@QueryParam("limit") int limit);
+
+ @PUT
+ @Path("/device-owner")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "PUT",
+ value = "Update the device owner",
+ notes = "Update enrollment owner for given device Identifiers.",
+ tags = "Device Management",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:admin:devices:update-enrollment")
+ })
+ }
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK. \n Successfully update the owner of devices.",
+ response = DeviceList.class,
+ responseHeaders = {
+ @ResponseHeader(
+ name = "Content-Type",
+ description = "The content type of the body"),
+ @ResponseHeader(
+ name = "ETag",
+ description = "Entity Tag of the response resource.\n" +
+ "Used by caches, or in conditional requests."),
+ @ResponseHeader(
+ name = "Last-Modified",
+ description = "Date and time the resource was last modified.\n" +
+ "Used by caches, or in conditional requests."),
+ }),
+ @ApiResponse(
+ code = 400,
+ message = "The incoming request has more than one selection criteria defined via the query parameters.",
+ response = ErrorResponse.class),
+ @ApiResponse(
+ code = 500,
+ message = "Internal Server Error. \n Server error occurred while fetching the device list.",
+ response = ErrorResponse.class)
+ }) Response updateEnrollOwner(
+ @ApiParam(
+ name = "Device Owner",
+ value = "The username that is going to use for the new device owner of given devices.",
+ required = true)
+ @QueryParam("owner") String owner,
+ @ApiParam(
+ name = "Device Identifiers",
+ value = "List of device identifiers.",
+ required = true)
+ List deviceIdentifiers);
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java
index adc7c41cf7..7d2a02fc31 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java
@@ -23,12 +23,16 @@ import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.wst.common.uriresolver.internal.util.URIEncoder;
+import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
+import org.wso2.carbon.device.mgt.common.operation.mgt.Activity;
+import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
import org.wso2.carbon.device.mgt.core.DeviceManagementConstants;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
import org.wso2.carbon.device.mgt.core.service.EmailMetaInfo;
+import org.wso2.carbon.device.mgt.jaxrs.beans.ActivityList;
import org.wso2.carbon.device.mgt.jaxrs.beans.BasicUserInfo;
import org.wso2.carbon.device.mgt.jaxrs.beans.BasicUserInfoList;
import org.wso2.carbon.device.mgt.jaxrs.beans.BasicUserInfoWrapper;
@@ -67,8 +71,11 @@ import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
import java.security.SecureRandom;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -635,6 +642,94 @@ public class UserManagementServiceImpl implements UserManagementService {
return Response.status(Response.Status.OK).entity("Invitation mails have been sent.").build();
}
+ @GET
+ @Override
+ @Path("/device/activities")
+ public Response getActivities(
+ @QueryParam("since") String since,
+ @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit,
+ @HeaderParam("If-Modified-Since") String ifModifiedSince) {
+ long ifModifiedSinceTimestamp;
+ long sinceTimestamp;
+ long timestamp = 0;
+ boolean isIfModifiedSinceSet = false;
+ String initiatedBy;
+ if (log.isDebugEnabled()) {
+ log.debug("getActivities since: " + since + " , offset: " + offset + " ,limit: " + limit + " ,"
+ + "ifModifiedSince: " + ifModifiedSince);
+ }
+ RequestValidationUtil.validatePaginationParameters(offset, limit);
+ if (ifModifiedSince != null && !ifModifiedSince.isEmpty()) {
+ Date ifSinceDate;
+ SimpleDateFormat format = new SimpleDateFormat(Constants.DEFAULT_SIMPLE_DATE_FORMAT);
+ try {
+ ifSinceDate = format.parse(ifModifiedSince);
+ } catch (ParseException e) {
+ return Response.status(400).entity(new ErrorResponse.ErrorResponseBuilder()
+ .setMessage("Invalid date string is provided in 'If-Modified-Since' header").build()).build();
+ }
+ ifModifiedSinceTimestamp = ifSinceDate.getTime();
+ isIfModifiedSinceSet = true;
+ timestamp = ifModifiedSinceTimestamp / 1000;
+ } else if (since != null && !since.isEmpty()) {
+ Date sinceDate;
+ SimpleDateFormat format = new SimpleDateFormat(Constants.DEFAULT_SIMPLE_DATE_FORMAT);
+ try {
+ sinceDate = format.parse(since);
+ } catch (ParseException e) {
+ return Response.status(400).entity(new ErrorResponse.ErrorResponseBuilder()
+ .setMessage("Invalid date string is provided in 'since' filter").build()).build();
+ }
+ sinceTimestamp = sinceDate.getTime();
+ timestamp = sinceTimestamp / 1000;
+ }
+
+ if (timestamp == 0) {
+ //If timestamp is not sent by the user, a default value is set, that is equal to current time-12 hours.
+ long time = System.currentTimeMillis() / 1000;
+ timestamp = time - 42300;
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("getActivities final timestamp " + timestamp);
+ }
+
+ List activities;
+ int count;
+ ActivityList activityList = new ActivityList();
+ DeviceManagementProviderService dmService;
+
+ initiatedBy = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername();
+ try {
+ if (log.isDebugEnabled()) {
+ log.debug("Calling database to get activities.");
+ }
+ dmService = DeviceMgtAPIUtils.getDeviceManagementService();
+ activities = dmService.getActivitiesUpdatedAfterByUser(timestamp, initiatedBy, limit, offset);
+ if (log.isDebugEnabled()) {
+ log.debug("Calling database to get activity count with timestamp and user.");
+ }
+ count = dmService.getActivityCountUpdatedAfterByUser(timestamp, initiatedBy);
+ if (log.isDebugEnabled()) {
+ log.debug("Activity count: " + count);
+ }
+
+ activityList.setList(activities);
+ activityList.setCount(count);
+ if ((activities == null || activities.isEmpty()) && isIfModifiedSinceSet) {
+ return Response.notModified().build();
+ }
+ return Response.ok().entity(activityList).build();
+ } catch (OperationManagementException e) {
+ String msg =
+ "Error Response occurred while fetching the activities updated after given time stamp for the user "
+ + initiatedBy + ".";
+ log.error(msg, e);
+ return Response.serverError().entity(new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build())
+ .build();
+ }
+ }
+
private Map buildDefaultUserClaims(String firstName, String lastName, String emailAddress) {
Map defaultUserClaims = new HashMap<>();
defaultUserClaims.put(Constants.USER_CLAIM_FIRST_NAME, firstName);
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/DeviceManagementAdminServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/DeviceManagementAdminServiceImpl.java
index 609e559784..7227f3cb0c 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/DeviceManagementAdminServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/DeviceManagementAdminServiceImpl.java
@@ -26,7 +26,9 @@ import org.wso2.carbon.context.CarbonContext;
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
+import org.wso2.carbon.device.mgt.common.InvalidDeviceException;
import org.wso2.carbon.device.mgt.common.PaginationRequest;
+import org.wso2.carbon.device.mgt.common.UserNotFoundException;
import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceList;
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
import org.wso2.carbon.device.mgt.jaxrs.service.api.admin.DeviceManagementAdminService;
@@ -88,4 +90,32 @@ public class DeviceManagementAdminServiceImpl implements DeviceManagementAdminSe
}
}
+ @PUT
+ @Override
+ @Path("/device-owner")
+ public Response updateEnrollOwner(
+ @QueryParam("owner") String owner,
+ List deviceIdentifiers){
+ try {
+ if (DeviceMgtAPIUtils.getDeviceManagementService().updateEnrollment(owner, deviceIdentifiers)){
+ String msg = "Device owner is updated successfully.";
+ return Response.status(Response.Status.OK).entity(msg).build();
+ }
+ String msg = "Device owner updating is failed.";
+ log.error(msg);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ } catch(InvalidDeviceException e){
+ String msg = "Invalid device identifiers are found with the request.";
+ log.error(msg);
+ return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
+ }catch (DeviceManagementException e) {
+ String msg = "Error occurred when updating the device owner.";
+ log.error(msg);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ } catch (UserNotFoundException e) {
+ String msg = "Couldn't found the owner in user store to update the owner of devices.";
+ log.error(msg);
+ return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
+ }
+ }
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/Constants.java b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/Constants.java
index 31a83cf03d..dd942c2aae 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/Constants.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/Constants.java
@@ -30,6 +30,7 @@ public class Constants {
public static final String DEFAULT_STREAM_VERSION = "1.0.0";
public static final String SCOPE = "scope";
public static final String JDBC_USERSTOREMANAGER = "org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager";
+ public static final String DEFAULT_SIMPLE_DATE_FORMAT = "EEE, d MMM yyyy HH:mm:ss Z";
public static final int DEFAULT_PAGE_LIMIT = 50;
diff --git a/components/device-mgt/pom.xml b/components/device-mgt/pom.xml
index de59715eb8..a54d067f5e 100644
--- a/components/device-mgt/pom.xml
+++ b/components/device-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
diff --git a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml
index 54e0c72923..b62e52c77a 100644
--- a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml
+++ b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
email-sender
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/email-sender/pom.xml b/components/email-sender/pom.xml
index 58357c54f9..a214bdee0e 100644
--- a/components/email-sender/pom.xml
+++ b/components/email-sender/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
diff --git a/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml b/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml
index 10d20aefbe..b034fb6f95 100644
--- a/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml
+++ b/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml
@@ -22,13 +22,13 @@
org.wso2.carbon.devicemgt
identity-extensions
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.oauth.extensions
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
bundle
WSO2 Carbon - OAuth Extensions
http://wso2.org
diff --git a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml
index b7295f96f7..4e3e14937f 100644
--- a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml
+++ b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml
@@ -21,7 +21,7 @@
identity-extensions
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
4.0.0
diff --git a/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml b/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml
index a7aad8f647..393eab4392 100644
--- a/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml
+++ b/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
identity-extensions
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/components/identity-extensions/pom.xml b/components/identity-extensions/pom.xml
index b592e7b25b..fb643bde49 100644
--- a/components/identity-extensions/pom.xml
+++ b/components/identity-extensions/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
diff --git a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml
index b9abcb388a..dcd65f81ff 100644
--- a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.complex.policy.decision.point
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
bundle
WSO2 Carbon - Policy Decision Point
WSO2 Carbon - Policy Decision Point
diff --git a/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml
index cf3e5a83ed..908f16c61b 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml
@@ -3,14 +3,14 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.policy.decision.point
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
bundle
WSO2 Carbon - Policy Decision Point
WSO2 Carbon - Policy Decision Point
diff --git a/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml
index e963815d4f..481cecdc9c 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml
@@ -3,7 +3,7 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
@@ -11,7 +11,7 @@
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.policy.information.point
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
bundle
WSO2 Carbon - Policy Information Point
WSO2 Carbon - Policy Information Point
diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml
index 2680098b23..4dc6e71631 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.policy.mgt.common
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
bundle
WSO2 Carbon - Policy Management Common
WSO2 Carbon - Policy Management Common
diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml
index af4b59efbf..0bf2dd3e29 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.policy.mgt.core
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
bundle
WSO2 Carbon - Policy Management Core
WSO2 Carbon - Policy Management Core
diff --git a/components/policy-mgt/pom.xml b/components/policy-mgt/pom.xml
index 96a4ae9225..12a0ef13c5 100644
--- a/components/policy-mgt/pom.xml
+++ b/components/policy-mgt/pom.xml
@@ -23,13 +23,13 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
4.0.0
policy-mgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
pom
WSO2 Carbon - Policy Management Component
http://wso2.org
diff --git a/components/test-coverage/pom.xml b/components/test-coverage/pom.xml
index e220ae2d99..b1fd8426e9 100644
--- a/components/test-coverage/pom.xml
+++ b/components/test-coverage/pom.xml
@@ -21,7 +21,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
4.0.0
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml
index ac2a068abc..67f722d94e 100644
--- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml
@@ -21,14 +21,14 @@
org.wso2.carbon.devicemgt
webapp-authenticator-framework
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.webapp.authenticator.framework
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
bundle
WSO2 Carbon - Web Application Authenticator Framework Bundle
WSO2 Carbon - Web Application Authenticator Framework Bundle
diff --git a/components/webapp-authenticator-framework/pom.xml b/components/webapp-authenticator-framework/pom.xml
index f3f1791864..05bef7fe41 100644
--- a/components/webapp-authenticator-framework/pom.xml
+++ b/components/webapp-authenticator-framework/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
webapp-authenticator-framework
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
pom
WSO2 Carbon - Webapp Authenticator Framework
http://wso2.org
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml
index 97c99cb75a..2560e0f229 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml
@@ -21,14 +21,14 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.application.extension.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - API Management Application Extension Feature
http://wso2.org
This feature contains an implementation of a api application registration, which takes care of subscription
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml
index b60eb35807..32df7e6471 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.handler.server.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - Device Management - APIM handler Server Feature
http://wso2.org
This feature contains the handler for the api authentications
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml
index a182f43d43..539f83a509 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml
@@ -21,13 +21,13 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.integration.client.feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
pom
WSO2 Carbon - APIM Integration Client Feature
http://wso2.org
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
index 2f4699f55b..989a8bf2bd 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
@@ -21,14 +21,14 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.webapp.publisher.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - API Management Webapp Publisher Feature
http://wso2.org
This feature contains an implementation of a Tomcat lifecycle listener, which takes care of publishing
diff --git a/features/apimgt-extensions/pom.xml b/features/apimgt-extensions/pom.xml
index 9815dbf168..e7b1aabaf9 100644
--- a/features/apimgt-extensions/pom.xml
+++ b/features/apimgt-extensions/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
pom
WSO2 Carbon - API Management Extensions Feature
http://wso2.org
diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml
index b41451fd74..b4cbc9f40c 100644
--- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml
+++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml
index 8660351f76..1275431f50 100644
--- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml
+++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml
index 69c50c2733..789e0a086a 100644
--- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml
+++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.certificate.mgt.server.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - Certificate Management Server Feature
http://wso2.org
This feature contains the core bundles required for back-end Certificate Management functionality
diff --git a/features/certificate-mgt/pom.xml b/features/certificate-mgt/pom.xml
index fdbd4929f4..37385a19dd 100644
--- a/features/certificate-mgt/pom.xml
+++ b/features/certificate-mgt/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
pom
WSO2 Carbon - Certificate Management Feature
http://wso2.org
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml
index 014b8951ab..31cbc563b5 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - Device Type Deployer Feature
http://wso2.org
WSO2 Carbon - Device Type Deployer Feature
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
index 1b4baa1b85..7f583da593 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - FCM Based Push Notification Provider Feature
http://wso2.org
WSO2 Carbon - MQTT Based Push Notification Provider Feature
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
index 054c90c751..7180fe41c1 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - MQTT Based Push Notification Provider Feature
http://wso2.org
WSO2 Carbon - MQTT Based Push Notification Provider Feature
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
index d2a3dd3067..69108c52c6 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - MQTT Based Push Notification Provider Feature
http://wso2.org
WSO2 Carbon - MQTT Based Push Notification Provider Feature
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
index 50adab2901..125edb16a5 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - XMPP Based Push Notification Provider Feature
http://wso2.org
WSO2 Carbon - XMPP Based Push Notification Provider Feature
diff --git a/features/device-mgt-extensions/pom.xml b/features/device-mgt-extensions/pom.xml
index bbec0d5bd5..cbf504932e 100644
--- a/features/device-mgt-extensions/pom.xml
+++ b/features/device-mgt-extensions/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml
index 1bb2f1788d..7ab57b525e 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.analytics.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - Device Management Server Feature
http://wso2.org
This feature contains bundles related to device analytics data publisher and ws proxy
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml
index c2ae6f756b..c6742d46ac 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/pom.xml
index 06a8b60c59..530474529f 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml
index 4981c2d8bc..a3b6acf944 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml
@@ -4,14 +4,14 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - Device Management Extensions Feature
http://wso2.org
This feature contains common extensions used by key device management functionalities
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml
index d3c5a221f9..20b89ca954 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml
index 85e0b7c720..ab1900950c 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.server.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - Device Management Server Feature
http://wso2.org
This feature contains the core bundles required for Back-end Device Management functionality
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml
index c85c0e585b..22843f6cb4 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/pom.xml b/features/device-mgt/pom.xml
index cfcfc5f3fd..a15b4187d2 100644
--- a/features/device-mgt/pom.xml
+++ b/features/device-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
diff --git a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml
index ab1972dae0..97be9df71f 100644
--- a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml
+++ b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
email-sender-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.email.sender.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - Email Sender Feature
http://wso2.org
This feature contains the core bundles required for email sender related functionality
diff --git a/features/email-sender/pom.xml b/features/email-sender/pom.xml
index 763b61629f..a10558e96d 100644
--- a/features/email-sender/pom.xml
+++ b/features/email-sender/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
email-sender-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
pom
WSO2 Carbon - Email Sender Feature
http://wso2.org
diff --git a/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml b/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml
index 6b2ba0c65b..3697089da4 100644
--- a/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml
+++ b/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml
@@ -23,14 +23,14 @@
org.wso2.carbon.devicemgt
jwt-client-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.identity.jwt.client.extension.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - JWT Client Feature
http://wso2.org
This feature contains jwt client implementation from which we can get a access token using the jwt
diff --git a/features/jwt-client/pom.xml b/features/jwt-client/pom.xml
index c6a2f112d5..fe40aa0ed2 100644
--- a/features/jwt-client/pom.xml
+++ b/features/jwt-client/pom.xml
@@ -23,13 +23,13 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
4.0.0
jwt-client-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
pom
WSO2 Carbon - JWT Client Extension Feature
http://wso2.org
diff --git a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml
index e8a2ad970d..9fa5dfbfa0 100644
--- a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml
+++ b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml
@@ -23,14 +23,14 @@
org.wso2.carbon.devicemgt
oauth-extensions-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.oauth.extensions.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - Device Mgt OAuth Extensions Feature
http://wso2.org
This feature contains devicemgt related OAuth extensions
diff --git a/features/oauth-extensions/pom.xml b/features/oauth-extensions/pom.xml
index bf19c63f4a..2080b5e073 100644
--- a/features/oauth-extensions/pom.xml
+++ b/features/oauth-extensions/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
oauth-extensions-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
pom
WSO2 Carbon - Device Management OAuth Extensions Feature
http://wso2.org
diff --git a/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml b/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml
index 2b8924cc8d..6c25977214 100644
--- a/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml
+++ b/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml
@@ -23,14 +23,14 @@
org.wso2.carbon.devicemgt
policy-mgt-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.policy.mgt.server.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - Policy Management Server Feature
http://wso2.org
This feature contains the core bundles required for Back-end Device Management functionality
diff --git a/features/policy-mgt/pom.xml b/features/policy-mgt/pom.xml
index 173a72b0fd..894d3df5af 100644
--- a/features/policy-mgt/pom.xml
+++ b/features/policy-mgt/pom.xml
@@ -23,14 +23,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
policy-mgt-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
pom
WSO2 Carbon - Policy Management Feature
http://wso2.org
diff --git a/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml b/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml
index 2876de7b8c..9a9ccec638 100644
--- a/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml
+++ b/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
webapp-authenticator-framework-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.webapp.authenticator.framework.server.feature
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - Webapp Authenticator Framework Server Feature
http://wso2.org
This feature contains the core bundles required for Back-end Device Management functionality
diff --git a/features/webapp-authenticator-framework/pom.xml b/features/webapp-authenticator-framework/pom.xml
index 6c3975786d..ff10a668d3 100644
--- a/features/webapp-authenticator-framework/pom.xml
+++ b/features/webapp-authenticator-framework/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
webapp-authenticator-framework-feature
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
pom
WSO2 Carbon - Webapp Authenticator Framework Feature
http://wso2.org
diff --git a/pom.xml b/pom.xml
index df6e475a5c..4ba1d0e215 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
pom
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
WSO2 Carbon - Device Management - Parent
http://wso2.org
WSO2 Connected Device Manager Components
@@ -1989,7 +1989,7 @@
1.2.11.wso2v10
- 3.2.3-SNAPSHOT
+ 3.2.5-SNAPSHOT
4.6.21