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 4de371b117..b058109588 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
@@ -46,7 +46,7 @@
maven-war-plugin
WEB-INF/lib/*cxf*.jar
- devicemgt_admin
+ api#device-mgt#v2.1
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Certificate.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Certificate.java
deleted file mode 100644
index b4efa5d985..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Certificate.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.*;
-import org.wso2.carbon.apimgt.annotations.api.API;
-import org.wso2.carbon.apimgt.annotations.api.Permission;
-import org.wso2.carbon.certificate.mgt.core.dto.CertificateResponse;
-import org.wso2.carbon.device.mgt.common.PaginationResult;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
-import org.wso2.carbon.device.mgt.jaxrs.beans.EnrollmentCertificate;
-
-import javax.ws.rs.*;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-/**
- * All the certificate related tasks such as saving certificates, can be done through this endpoint.
- */
-@API(name = "Certificate", version = "1.0.0", context = "/devicemgt_admin/certificates", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
-@Api(value = "Certificate", description = "Certificate related tasks such as saving certificates, " +
- "can be done through this API")
-@SuppressWarnings("NonJaxWsWebServices")
-@Path("/certificates")
-@Produces({ "application/json", "application/xml" })
-@Consumes({ "application/json", "application/xml" })
-public interface Certificate {
-
- /**
- * Save a list of certificates and relevant information in the database.
- *
- * @param enrollmentCertificates List of all the certificates which includes the tenant id, certificate as
- * a pem and a serial number.
- * @return Status of the data persist operation.
- */
- @POST
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "POST",
- value = "Adding an SSL Certificate",
- notes = "Add a new SSL certificate to the client end database")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "Added successfully"),
- @ApiResponse(code = 500, message = "Error occurred while saving the certificate")
- })
- @Permission(scope = "certificate-modify", permissions = {"/permission/admin/device-mgt/certificate/save"})
- Response saveCertificate(@HeaderParam("Accept") String acceptHeader,
- @ApiParam(name = "enrollmentCertificates", value = "certificate with serial, "
- + "pem and tenant id", required = true) EnrollmentCertificate[]
- enrollmentCertificates);
-
- /**
- * Get a certificate when the serial number is given.
- *
- * @param serialNumber serial of the certificate needed.
- * @return certificate response.
- */
- @GET
- @Path("{serialNumber}")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "GET",
- value = "Getting Details of an SSL Certificate",
- notes = "Get the client side SSL certificate details",
- response = CertificateResponse.class)
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "OK", response = CertificateResponse.class),
- @ApiResponse(code = 400, message = "Notification status updated successfully"),
- @ApiResponse(code = 500, message = "Error occurred while converting PEM file to X509Certificate")
- })
- @Permission(scope = "certificate-view", permissions = {"/permission/admin/device-mgt/certificate/view"})
- Response getCertificate(@HeaderParam("Accept") String acceptHeader,
- @ApiParam(name = "serialNumber", value = "Provide the serial number of the "
- + "certificate that you wish to get the details of", required = true)
- @PathParam("serialNumber") String serialNumber);
-
- /**
- * Get all certificates in a paginated manner.
- *
- * @param startIndex index of the first record to be fetched
- * @param length number of records to be fetched starting from the start index.
- * @return paginated result of certificate.
- * @throws MDMAPIException
- */
- @GET
- @Path("paginate")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "GET",
- value = "Getting the Certificate Details in a Paginated Manner",
- notes = "You will have many certificates used for mutual SSL. In a situation where you wish to "
- + "view all the certificate details, it is not feasible to show all the details on one "
- + "page therefore the details are paginated",
- response = PaginationResult.class)
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "OK", response = PaginationResult.class),
- @ApiResponse(code = 400, message = "Invalid start index"),
- @ApiResponse(code = 400, message = "Invalid length value"),
- @ApiResponse(code = 500, message = "Error occurred while fetching all certificates")
- })
- @Permission(scope = "certificate-view", permissions = {"/permission/admin/device-mgt/certificate/view"})
- Response getAllCertificates(@HeaderParam("Accept") String acceptHeader,
- @ApiParam(name = "start",
- value = "Provide the starting pagination index as the value", required = true)
- @QueryParam("start") int startIndex,
- @ApiParam(name = "length", value = "Provide how many certificate details you"
- + " require from the starting pagination index as the value",
- required = true) @QueryParam("length") int length) throws MDMAPIException;
-
- @DELETE
- @Path("{serialNumber}")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "DELETE",
- value = "Deleting an SSL Certificate",
- notes = "Delete an SSL certificate that's on the client end",
- response = boolean.class)
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "OK"),
- @ApiResponse(code = 400, message = "Invalid start index"),
- @ApiResponse(code = 500, message = "Error when deleting the certificate"
- ) })
- @Permission(scope = "certificate-modify", permissions = {"/permission/admin/device-mgt/certificate/remove"})
- Response removeCertificate(@HeaderParam("Accept") String acceptHeader,
- @ApiParam(name = "serialNumber", value = "Provide the serial number of the "
- + "certificate that you wish to delete", required = true)
- @PathParam("serialNumber") String serialNumber) throws MDMAPIException;
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Configuration.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Configuration.java
deleted file mode 100644
index b15c442786..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Configuration.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.*;
-import org.wso2.carbon.apimgt.annotations.api.*;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
-
-import javax.ws.rs.*;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-/**
- * General Tenant Configuration REST-API implementation.
- * All end points support JSON, XMl with content negotiation.
- */
-@API(name = "Configuration", version = "1.0.0", context = "/devicemgt_admin/configuration", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
-@Path("/configuration")
-@Api(value = "Configuration", description = "General Tenant Configuration management capabilities are exposed " +
- "through this API")
-@SuppressWarnings("NonJaxWsWebServices")
-@Produces({ "application/json", "application/xml" })
-@Consumes({ "application/json", "application/xml" })
-public interface Configuration {
-
- @POST
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "POST",
- value = "Configuring general platform settings",
- notes = "Configure the general platform settings using this REST API")
- @ApiResponses(value = {
- @ApiResponse(code = 201, message = "Tenant configuration saved successfully"),
- @ApiResponse(code = 500, message = "Error occurred while saving the tenant configuration")
- })
- @Permission(scope = "configuration-modify", permissions = {"/permission/admin/device-mgt/admin/platform-configs/modify"})
- Response saveTenantConfiguration(@ApiParam(name = "configuration", value = "The required properties to "
- + "update the platform configurations the as the value",
- required = true) TenantConfiguration configuration);
-
- @GET
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "GET",
- value = "Getting General Platform Configurations",
- notes = "Get the general platform level configuration details using this REST API",
- response = TenantConfiguration.class)
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "OK"),
- @ApiResponse(code = 500, message = "Error occurred while retrieving the tenant configuration")
- })
- @Permission(scope = "configuration-view", permissions = {"/permission/admin/device-mgt/admin/platform-configs/view"})
- Response getConfiguration();
-
- @PUT
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "PUT",
- value = "Updating General Platform Configurations",
- notes = "Update the notification frequency using this REST API")
- @ApiResponses(value = {
- @ApiResponse(code = 201, message = "Tenant configuration updated successfully"),
- @ApiResponse(code = 500, message = "Error occurred while updating the tenant configuration")
- })
- @Permission(scope = "configuration-modify", permissions = {"/permission/admin/device-mgt/admin/platform-configs/modify"})
- Response updateConfiguration(@ApiParam(name = "configuration", value = "The required properties to update"
- + " the platform configurations the as the value",
- required = true) TenantConfiguration configuration);
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Device.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Device.java
deleted file mode 100644
index 6756e863de..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Device.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.*;
-import org.wso2.carbon.apimgt.annotations.api.*;
-import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
-import org.wso2.carbon.device.mgt.core.dto.DeviceType;
-
-import javax.ws.rs.*;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-/**
- * Device related operations such as get all the available devices, etc.
- */
-@API(name = "Device", version = "1.0.0", context = "/devicemgt_admin/devices", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
-@Path("/devices")
-@Api(value = "Device", description = "Device related operations such as get all the available devices, etc.")
-@SuppressWarnings("NonJaxWsWebServices")
-public interface Device {
-
- /**
- * Get all devices. We have to use accept all the necessary query parameters sent by datatable.
- * Hence had to put lot of query params here.
- *
- * @return Device List
- */
- @GET
- @Path("devices")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Returns device list",
- notes = "Returns the set of devices that matches a given device type, user, role, "
- + "enrollment status, ownership type",
- response = org.wso2.carbon.device.mgt.common.Device.class,
- responseContainer = "List")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "List of Devices"),
- @ApiResponse(code = 500, message = "Error occurred while fetching the device list")
- })
- @Permission(scope = "device-list", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
- Response getAllDevices(@ApiParam(name = "type", value = "Provide the device type, such as ios, android or"
- + " windows", required = true) @QueryParam("type") String type,
- @ApiParam(name = "user", value = "Get the details of the devices registered to a "
- + "user by providing the user name", required = true) @QueryParam("user")
- String user,
- @ApiParam(name = "role", value = "Get the details of the devices registered to a "
- + "specific role by providing the role name", required = true)
- @QueryParam("role") String role,
- @ApiParam(name = "status", value = "Provide the device status details, such as "
- + "active or inactive", required = true) @QueryParam("status")
- EnrolmentInfo.Status status,
- @ApiParam(name = "start", value = "Provide the starting pagination index",
- required = true) @QueryParam("start") int startIdx,
- @ApiParam(name = "length", value = "Provide how many device details you require "
- + "from the starting pagination index", required = true)
- @QueryParam("length") int length,
- @ApiParam(name = "device-name", value = "Provide the name of a registered device "
- + "and receive the specified device details", required = true)
- @QueryParam("device-name") String deviceName,
- @ApiParam(name = "ownership", value = "Provide the device ownership type and "
- + "receive the specific device details", required = true)
- @QueryParam("ownership") EnrolmentInfo.OwnerShip ownership);
-
- /**
- * Fetch device details for a given device type and device Id.
- *
- * @return Device wrapped inside Response
- */
- @GET
- @Path("view")
- @Produces({ MediaType.APPLICATION_JSON })
- @Permission(scope = "device-view", permissions = {
- "/permission/admin/device-mgt/admin/devices/view",
- "/permission/admin/device-mgt/user/devices/view"})
- Response getDevice(@QueryParam("type") String type, @QueryParam("id") String id);
-
- /**
- * Fetch device details of a given user.
- *
- * @param user User Name
- * @return Device
- */
- @GET
- @Path("user/{user}")
- @Permission(scope = "device-view-own", permissions = {
- "/permission/admin/device-mgt/user/devices/list",
- "/permission/admin/device-mgt/admin/devices/list"})
- Response getDeviceOfUser(@PathParam("user") String user);
-
- /**
- * Fetch device count of a given user.
- *
- * @param user User Name
- * @return Device
- */
- @GET
- @Path("user/{user}/count")
- @Permission(scope = "device-count-own", permissions = {
- "/permission/admin/device-mgt/user/devices/list",
- "/permission/admin/device-mgt/admin/devices/list"})
- Response getDeviceCountOfUser(@PathParam("user") String user);
-
- /**
- * Get current device count
- *
- * @return device count
- */
- @GET
- @Path("count")
- @ApiOperation(
- httpMethod = "GET",
- value = "Getting the Device Count",
- notes = "Get the number of devices that are registered with WSO2 EMM.",
- response = int.class)
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "Device count"),
- @ApiResponse(code = 500, message = "Error occurred while fetching the device count")
- })
- @Permission(scope = "device-list", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
- Response getDeviceCount();
-
- /**
- * Get the list of devices that matches with the given name.
- *
- * @param deviceName Device name
- * @param tenantDomain Callee tenant domain
- * @return list of devices.
- */
- @GET
- @Path("name/{name}/{tenantDomain}")
-
- @ApiOperation(
- httpMethod = "GET",
- value = "Get the device details of a specific device via the REST API",
- notes = "Get the device details of a specific device",
- response = DeviceType.class,
- responseContainer = "List")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "List of devices"),
- @ApiResponse(code = 500, message = "Error occurred while fetching the devices list of device name")
- })
- @Permission(scope = "device-list", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
- Response getDevicesByName(@ApiParam(name = "name", value = "The name of the device or windows", required = true)
- @PathParam("name") String deviceName,
- @ApiParam(name = "tenantDomain", value = "Tenant domain name. The default "
- + "tenant domain of WSO2 EMM is carbon.super", required = true)
- @PathParam("tenantDomain") String tenantDomain);
-
- /**
- * Get the list of available device types.
- *
- * @return list of device types.
- */
- @GET
- @Path("types")
- @ApiOperation(
- httpMethod = "GET",
- value = "Getting Details of the Devices Supported via WSO2 EMM",
- notes = "You are able to register Android, iOS and Windows devices with WSO2 EMM. This API will "
- + "retrieve the device type details that can register with the EMM",
- response = DeviceType.class,
- responseContainer = "List")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "List of devices based on the type"),
- @ApiResponse(code = 500, message = "Error occurred while fetching the list of device types") })
- @Permission(scope = "device-list", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
- Response getDeviceTypes();
-
- /**
- * Update device.
- *
- * @return update status.
- */
- @PUT
- @Path("type/{type}/id/{deviceId}")
- @Permission(scope = "device-modify", permissions = {
- "/permission/admin/device-mgt/user/devices/modify", "/permission/admin/device-mgt/admin/devices/modify"})
- Response updateDevice(@PathParam("type") String deviceType, @PathParam("deviceId") String deviceId,
- org.wso2.carbon.device.mgt.common.Device updatedDevice);
-
- /**
- * disenroll device.
- *
- * @return disenrollment status.
- */
- @DELETE
- @Path("type/{type}/id/{deviceId}")
- @Permission(scope = "device-modify", permissions = {
- "/permission/admin/device-mgt/user/devices/modify", "/permission/admin/device-mgt/admin/devices/modify"})
- Response disenrollDevice(@PathParam("type") String deviceType, @PathParam("deviceId") String deviceId);
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceInformation.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceInformation.java
deleted file mode 100644
index b10412b516..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceInformation.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.*;
-import org.wso2.carbon.apimgt.annotations.api.*;
-import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
-import org.wso2.carbon.device.mgt.common.device.details.DeviceInfo;
-import org.wso2.carbon.device.mgt.common.device.details.DeviceLocation;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.util.List;
-
-/**
- * Device information related operations.
- */
-@API(name = "Device Information", version = "1.0.0", context = "/devicemgt_admin/information", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
-@Path("/information")
-@Api(value = "DeviceInformation", description = "Device information related operations can be found here.")
-@SuppressWarnings("NonJaxWsWebServices")
-public interface DeviceInformation {
-
- @GET
- @Path("{type}/{id}")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Get device information",
- notes = "This will return device information such as CPU usage, memory usage etc.",
- response = DeviceInfo.class)
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = ""),
- @ApiResponse(code = 400, message = ""),
- @ApiResponse(code = 400, message = ""),
- @ApiResponse(code = 500, message = "Internal Server Error")
- })
- @Permission(scope = "device-info", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
- Response getDeviceInfo(@ApiParam(name = "type", value = "Provide the device type, such as ios, android "
- + "or windows", required = true) @PathParam("type") String type,
- @ApiParam(name = "id", value = "Provide the device identifier", required = true)
- @PathParam("id") String id);
-
-
- @POST
- @Path("list")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "POST",
- value = "Get devices information from the supplied device identifies",
- notes = "This will return device information such as CPU usage, memory usage etc for supplied device " +
- "identifiers.",
- response = DeviceInfo.class,
- responseContainer = "List")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = ""),
- @ApiResponse(code = 400, message = ""),
- @ApiResponse(code = 400, message = ""),
- @ApiResponse(code = 500, message = "Internal Server Error")
- })
- @Permission(scope = "device-info", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
- Response getDevicesInfo(@ApiParam(name = "deviceIdentifiers", value = "List of device identifiers",
- required = true) List deviceIdentifiers);
-
- @GET
- @Path("location/{type}/{id}")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Get the device location",
- notes = "This will return the device location including latitude and longitude as well the "
- + "physical address",
- response = DeviceLocation.class)
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = ""),
- @ApiResponse(code = 400, message = ""),
- @ApiResponse(code = 400, message = ""),
- @ApiResponse(code = 500, message = "Internal Server Error")
- })
- @Permission(scope = "device-info", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
- Response getDeviceLocation(@ApiParam(name = "type", value = "Provide the device type, such as ios, "
- + "android or windows", required = true) @PathParam("type") String type,
- @ApiParam(name = "id", value = "Provide the device identifier",
- required = true) @PathParam("id") String id);
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceSearch.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceSearch.java
deleted file mode 100644
index 34790156a0..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceSearch.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.*;
-import org.wso2.carbon.apimgt.annotations.api.*;
-import org.wso2.carbon.device.mgt.common.device.details.DeviceWrapper;
-import org.wso2.carbon.device.mgt.common.search.SearchContext;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-/**
- * Device search related operations such as getting device information.
- */
-@API(name = "Device Search", version = "1.0.0", context = "/devicemgt_admin/search", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
-@Path("/search")
-@Api(value = "DeviceSearch", description = "Device searching related operations can be found here.")
-@SuppressWarnings("NonJaxWsWebServices")
-public interface DeviceSearch {
-
- @GET
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Advanced Search for Devices via the Console",
- notes = "Carry out an advanced search via the EMM console",
- response = DeviceWrapper.class,
- responseContainer = "List")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "OK", response = DeviceWrapper.class, responseContainer = "List"),
- @ApiResponse(code = 500, message = "Error occurred while searching the device information")
- })
- @Permission(scope = "device-search", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
- Response getDeviceInfo(@ApiParam(name = "enrollmentCertificates", value = "List of search conditions",
- required = true) SearchContext searchContext);
-
- @GET
- @Path("after/{time}")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Get devices information since a specified time.",
- notes = "Get devices information of devices updated since a specified time.",
- response = DeviceWrapper.class,
- responseContainer = "List")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "OK", response = DeviceWrapper.class, responseContainer = "List"),
- @ApiResponse(code = 500, message = "Error occurred while fetching the device information")
- })
- @Permission(scope = "device-search", permissions = {"/permission/admin/device-mgt/admin/devices/update-since-list"})
- Response getUpdatedDevices(@ApiParam(name = "time", value = "Time since the updated devices should be " +
- "fetched.", required = true)@PathParam("time") String time);
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Feature.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Feature.java
deleted file mode 100644
index 64a2b243c5..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Feature.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.*;
-import org.wso2.carbon.apimgt.annotations.api.*;
-
-import javax.ws.rs.*;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-/**
- * Features
- */
-@API(name = "Device Search", version = "1.0.0", context = "/devicemgt_admin/features", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
-@Api(value = "Feature", description = "Feature management related operations can be found here.")
-@SuppressWarnings("NonJaxWsWebServices")
-@Path("/features")
-@Produces({"application/json", "application/xml"})
-@Consumes({"application/json", "application/xml"})
-public interface Feature {
-
- /**
- * Get all features for Mobile Device Type
- *
- * @return Feature
- */
- @GET
- @Path("/{type}")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "GET",
- value = "Get Feature Details of a Device",
- notes = "WSO2 EMM features enable you to carry out many operations on a given device platform. " +
- "Using this REST API you can get the features that can be carried out on a preferred device type," +
- " such as iOS, Android or Windows.",
- response = org.wso2.carbon.device.mgt.common.Feature.class,
- responseContainer = "List")
- @ApiResponses(value = { @ApiResponse(code = 200, message = "List of Features"),
- @ApiResponse(code = 500, message = "Error occurred while retrieving the list of features" +
- ".") })
- @Permission(scope = "device-search", permissions = {"/permission/admin/device-mgt/admin/devices/view",
- "/permission/admin/device-mgt/user/devices/view"})
- Response getFeatures(@ApiParam(name = "type", value = "Provide the device type, such as ios, android or windows",
- required = true) @PathParam("type") String type);
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Group.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Group.java
deleted file mode 100644
index 20c5b2c9c8..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Group.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.Api;
-import org.wso2.carbon.apimgt.annotations.api.API;
-import org.wso2.carbon.apimgt.annotations.api.Permission;
-import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
-import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroup;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Response;
-import java.util.List;
-
-@API(name = "Group", version = "1.0.0", context = "/devicemgt_admin/groups", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
-@Path("/groups")
-@Api(value = "Group", description = "Group related operations such as get all the available groups, etc.")
-@SuppressWarnings("NonJaxWsWebServices")
-public interface Group {
-
- @GET
- @Produces("application/json")
- @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"})
- Response getGroups(@QueryParam("start") int startIndex, @QueryParam("length") int length);
-
- @POST
- @Consumes("application/json")
- @Permission(scope = "group-add", permissions = {"/permission/admin/device-mgt/user/groups/add"})
- Response createGroup(DeviceGroup group);
-
- @Path("/owner/{owner}/name/{groupName}")
- @GET
- @Produces("application/json")
- @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/view"})
- Response getGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner);
-
- @Path("/owner/{owner}/name/{groupName}")
- @PUT
- @Consumes("application/json")
- @Produces("application/json")
- @Permission(scope = "group-modify", permissions = {"/permission/admin/device-mgt/user/groups/update"})
- Response updateGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- DeviceGroup deviceGroup);
-
- @Path("/owner/{owner}/name/{groupName}")
- @DELETE
- @Permission(scope = "group-remove", permissions = {"/permission/admin/device-mgt/user/groups/remove"})
- Response deleteGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner);
-
-
-
- @Path("/all")
- @GET
- @Produces("application/json")
- @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"})
- Response getAllGroups();
-
- @Path("/user/{user}")
- @GET
- @Produces("application/json")
- @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"})
- Response getGroups(@PathParam("user") String userName, @QueryParam("start") int startIndex,
- @QueryParam("length") int length);
-
- @Path("/user/{user}/search")
- @GET
- @Produces("application/json")
- @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"})
- Response findGroups(@QueryParam("groupName") String groupName, @PathParam("user") String user);
-
- @Path("/user/{user}/all")
- @GET
- @Produces("application/json")
- @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"})
- Response getGroups(@PathParam("user") String userName, @QueryParam("permission") String permission);
-
- @Path("/count")
- @GET
- @Produces("application/json")
- @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"})
- Response getAllGroupCount();
-
- @Path("/user/{user}/count")
- @GET
- @Produces("application/json")
- @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"})
- Response getGroupCount(@PathParam("user") String userName);
-
- @Path("/owner/{owner}/name/{groupName}/share")
- @PUT
- @Produces("application/json")
- @Permission(scope = "group-share", permissions = {"/permission/admin/device-mgt/user/groups/share"})
- Response shareGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @FormParam("shareUser") String shareUser, @FormParam("roleName") String sharingRole);
-
- @Path("/owner/{owner}/name/{groupName}/unshare")
- @PUT
- @Produces("application/json")
- @Permission(scope = "group-share", permissions = {"/permission/admin/device-mgt/user/groups/unshare"})
- Response unShareGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @FormParam("unShareUser") String unShareUser,
- @FormParam("roleName") String sharingRole);
-
- @Path("/owner/{owner}/name/{groupName}/share/roles/{roleName}/permissions")
- @PUT
- @Produces("application/json")
- @Permission(scope = "group-add", permissions = {"/permission/admin/device-mgt/admin/groups/roles/permissions/add"})
- Response addSharing(@QueryParam("shareUser") String shareUser, @PathParam("groupName") String groupName,
- @PathParam("owner") String owner, @PathParam("roleName") String roleName, String[] permissions);
-
- @DELETE
- @Path("/owner/{owner}/name/{groupName}/share/roles/{roleName}/permissions")
- @Produces("application/json")
- @Permission(scope = "group-remove", permissions = {"/permission/admin/device-mgt/admin/groups/roles/permissions/remove"})
- Response removeSharing(@QueryParam("userName") String userName, @PathParam("groupName") String groupName,
- @PathParam("owner") String owner, @PathParam("roleName") String roleName);
-
- @GET
- @Path("/owner/{owner}/name/{groupName}/share/roles")
- @Produces("application/json")
- @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/admin/groups/roles"})
- Response getRoles(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @QueryParam("userName") String userName);
-
- @PUT
- @Path("/owner/{owner}/name/{groupName}/user/{userName}/share/roles")
- @Produces("application/json")
- @Permission(scope = "group-modify", permissions = {"/permission/admin/device-mgt/admin/groups/roles"})
- Response setRoles(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @PathParam("userName") String userName, List selectedRoles);
-
- @GET
- @Path("/owner/{owner}/name/{groupName}/users")
- @Produces("application/json")
- @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"})
- Response getUsers(@PathParam("groupName") String groupName, @PathParam("owner") String owner);
-
- @GET
- @Path("/owner/{owner}/name/{groupName}/devices")
- @Produces("application/json")
- @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/admin/groups/roles"})
- Response getDevices(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @QueryParam("start") int startIdx, @QueryParam("length") int length);
-
- @GET
- @Path("/owner/{owner}/name/{groupName}/devices/count")
- @Produces("application/json")
- @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/devices/count"})
- Response getDeviceCount(@PathParam("groupName") String groupName, @PathParam("owner") String owner);
-
- @POST
- @Path("/owner/{owner}/name/{groupName}/devices")
- @Produces("application/json")
- @Permission(scope = "group-add", permissions = {"/permission/admin/device-mgt/user/groups/devices/add"})
- Response addDevice(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- DeviceIdentifier deviceIdentifier);
-
- @DELETE
- @Path("/owner/{owner}/name/{groupName}/devices/{deviceType}/{deviceId}")
- @Produces("application/json")
- @Permission(scope = "group-remove", permissions = {"/permission/admin/device-mgt/user/groups/devices/remove"})
- Response removeDevice(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @PathParam("deviceId") String deviceId, @PathParam("deviceType") String deviceType);
-
- @GET
- @Path("/owner/{owner}/name/{groupName}/users/{userName}/permissions")
- @Produces("application/json")
- @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/roles/permissions"})
- Response getPermissions(@PathParam("userName") String userName, @PathParam("groupName") String groupName,
- @PathParam("owner") String owner);
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/License.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/License.java
deleted file mode 100644
index 738a3d4588..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/License.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.Api;
-import org.wso2.carbon.apimgt.annotations.api.*;
-
-import javax.ws.rs.*;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-/**
- * This class represents license related operations.
- */
-@API(name = "License", version = "1.0.0", context = "/devicemgt_admin/license", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
-@Api(value = "License")
-@Path("/license")
-@SuppressWarnings("NonJaxWsWebServices")
-public interface License {
-
- /**
- * This method returns the license text related to a given device type and language code.
- *
- * @param deviceType Device type, ex: android, ios
- * @param languageCode Language code, ex: en_US
- * @return Returns the license text
- */
- @GET
- @Path("{deviceType}/{languageCode}")
- @Produces({ MediaType.APPLICATION_JSON })
- @Permission(scope = "license-view", permissions = {"/permission/admin/device-mgt/admin/device/view",
- "/permission/admin/device-mgt/user/devices/view"})
- Response getLicense(@PathParam("deviceType") String deviceType,
- @PathParam("languageCode") String languageCode);
-
- /**
- * This method is used to add license to a specific device type.
- *
- * @param deviceType Device type, ex: android, ios
- * @param license License object
- * @return Returns the acknowledgement for the action
- */
- @POST
- @Path("{deviceType}")
- @Permission(scope = "license-add", permissions = {"/permission/admin/device-mgt/admin/devices/view"})
- Response addLicense(@PathParam("deviceType") String deviceType,
- org.wso2.carbon.device.mgt.common.license.mgt.License license);
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Operation.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Operation.java
deleted file mode 100644
index 3f49b5d318..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Operation.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.*;
-import org.wso2.carbon.apimgt.annotations.api.*;
-import org.wso2.carbon.device.mgt.common.app.mgt.Application;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
-import org.wso2.carbon.device.mgt.jaxrs.api.context.DeviceOperationContext;
-import org.wso2.carbon.device.mgt.jaxrs.beans.ApplicationWrapper;
-
-import javax.ws.rs.*;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-/**
- *
- */
-@API(name = "Operation", version = "1.0.0", context = "/devicemgt_admin/operations", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
-@Path("/operations")
-@Api(value = "Operation", description = "Operation management related operations can be found here.")
-public interface Operation {
-
- /* @deprecated */
- @GET
- @Permission(scope = "operation-view", permissions = {
- "/permission/admin/device-mgt/admin/devices/view",
- "/permission/admin/device-mgt/user/devices/view"})
- Response getAllOperations();
-
- @GET
- @Path("paginate/{type}/{id}")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "GET",
- value = "Getting Paginated Details for Operations on a Device.",
- notes = "You will carry out many operations on a device. In a situation where you wish to view the all" +
- " the operations carried out on a device it is not feasible to show all the details on one page" +
- " therefore the details are paginated." +
- " Example: You carry out 21 operations via a given device. When you wish to see the operations " +
- "carried out, the details of the 21 operations will be broken down into 3 pages with 10 operation" +
- " details per page.",
- response = org.wso2.carbon.device.mgt.common.operation.mgt.Operation.class)
- @ApiResponses(value = {@ApiResponse(code = 200, message = "List of Operations on a device."),
- @ApiResponse(code = 500, message = "Error occurred while fetching the operations for the " +
- "device.")})
- @Permission(scope = "operation-view", permissions = {
- "/permission/admin/device-mgt/admin/devices/view",
- "/permission/admin/device-mgt/user/devices/view"})
- Response getDeviceOperations(@ApiParam(name = "type", value = "Define the device type as the value for {type}. " +
- "Example: ios, android or windows.",
- required = true) @PathParam("type") String type,
- @ApiParam(name = "id", value = "Define the device ID",
- required = true) @PathParam("id") String id,
- @ApiParam(name = "start", value = "Provide the starting pagination index. Example 10",
- required = true) @QueryParam("start") int startIdx,
- @ApiParam(name = "length", value = "Provide how many device details you require from" +
- " the starting pagination index. For example if " +
- "you require the device details from the 10th " +
- "pagination index to the 15th, " +
- "you must define 10 as the value for start and 5 " +
- "as the value for length.",
- required = true) @QueryParam("length") int length,
- @QueryParam("search") String search);
-
- @GET
- @Path("{type}/{id}")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "GET",
- value = "Getting Device Operation Details.",
- responseContainer = "List",
- notes = "Get the details of operations carried out on a selected device.",
- response = org.wso2.carbon.device.mgt.common.operation.mgt.Operation.class)
- @ApiResponses(value = {@ApiResponse(code = 200, message = "List of Operations on a device."),
- @ApiResponse(code = 500, message = "Error occurred while fetching the operations for the " +
- "device.")})
- @Permission(scope = "operation-view", permissions = {
- "/permission/admin/device-mgt/admin/devices/view",
- "/permission/admin/device-mgt/user/devices/view"})
- Response getAllDeviceOperations(@ApiParam(name = "type", value = "Define the device type as the value for {type}. " +
- "Example: ios, android or windows.",
- required = true) @PathParam("type") String type,
- @ApiParam(name = "id", value = "Define the device ID",
- required = true) @PathParam("id") String id);
-
- /* @deprecated */
- @POST
- @Permission(scope = "operation-modify", permissions = {
- "/permission/admin/device-mgt/admin/devices/add"})
- Response addOperation(DeviceOperationContext operationContext);
-
- @GET
- @Path("{type}/{id}/apps")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "GET",
- value = "Getting Installed Application Details of a Device.",
- responseContainer = "List",
- notes = "Get the list of applications that a device has subscribed.",
- response = Application.class)
- @ApiResponses(value = {@ApiResponse(code = 200, message = "List of installed application details of a device.", response = Application.class, responseContainer = "List"),
- @ApiResponse(code = 500, message = "Error occurred while fetching the apps of the device" +
- ".")})
- @Permission(scope = "operation-view", permissions = {
- "/permission/admin/device-mgt/admin/devices/view",
- "/permission/admin/device-mgt/user/devices/view"})
- Response getInstalledApps(@ApiParam(name = "type", value = "Define the device type as the value for {type}. " +
- "Example: ios, android or windows.",
- required = true) @PathParam("type") String type,
- @ApiParam(name = "id", value = "Define the device ID",
- required = true) @PathParam("id") String id);
-
- @POST
- @Path("installApp/{tenantDomain}")
- @Permission(scope = "operation-install",
- permissions = {"/permission/admin/device-mgt/admin/operations/applications/install-applications"})
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "POST",
- value = "Installing an Application on a Device.",
- notes = "Install a selected application on a device.")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Operation was successfully added to the queue."),
- @ApiResponse(code = 500, message = "Error occurred while saving the operation.")})
- Response installApplication(@ApiParam(name = "applicationWrapper", value = "Details about the application and the" +
- " users and roles it should be " +
- "installed on.",
- required = true) ApplicationWrapper applicationWrapper,
- @ApiParam(name = "tenantDomain", value = "Provide the tenant domain as the value for " +
- "{tenantDomain}. The default tenant domain " +
- "of WSO2 EMM is carbon.super.",
- required = true) @PathParam("tenantDomain") String tenantDomain);
-
- @POST
- @Path("uninstallApp/{tenantDomain}")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "POST",
- value = "Uninstalling an Application from a Device.",
- notes = "Uninstall a selected application from a device.")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Operation was successfully added to the queue."),
- @ApiResponse(code = 500, message = "Error occurred while saving the operation.")})
- @Permission(scope = "operation-uninstall",
- permissions = {"/permission/admin/device-mgt/admin/operations/applications/uninstall-applications"})
- Response uninstallApplication(@ApiParam(name = "applicationWrapper", value = "Details about the application and" +
- " the users and roles it should be " +
- "uninstalled.",
- required = true) ApplicationWrapper applicationWrapper,
- @ApiParam(name = "tenantDomain", value = "Provide the tenant domain as the value for " +
- "{tenantDomain}. The default tenant domain " +
- "of WSO2 EMM is carbon.super.",
- required = true) @PathParam("tenantDomain") String tenantDomain);
-
-
- @GET
- @Path("activity/{id}")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "GET",
- value = "Retrieving the operation details.",
- notes = "This will return the operation details including the responses from the devices")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Activity details provided successfully.."),
- @ApiResponse(code = 500, message = "Error occurred while fetching the activity for the supplied id.")})
- @Permission(scope = "operation-view", permissions = {"/permission/admin/device-mgt/admin/devices/view"})
- Response getActivity(@ApiParam(name = "id", value = "Provide activity id {id} as ACTIVITY_(number)",
- required = true) @PathParam("id") String id)
- throws MDMAPIException;
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Policy.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Policy.java
deleted file mode 100644
index 5ee6e3633a..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Policy.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.*;
-import org.wso2.carbon.apimgt.annotations.api.*;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
-import org.wso2.carbon.device.mgt.jaxrs.beans.PolicyWrapper;
-import org.wso2.carbon.device.mgt.jaxrs.beans.PriorityUpdatedPolicyWrapper;
-
-import javax.ws.rs.*;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.util.List;
-
-@API(name = "Policy", version = "1.0.0", context = "/devicemgt_admin/policies", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
-@Path("/policies")
-@Api(value = "Policy", description = "Policy management related operations can be found here.")
-public interface Policy {
-
- @POST
- @Path("inactive-policy")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "POST",
- value = "Adding a Policy.",
- notes = "Add a policy using this REST API command. When adding a policy you will have the option of " +
- "saving the policy or saving and publishing the policy. Using the REST API command given below " +
- "you are able to save a created Policy and this policy will be in the inactive state")
- @ApiResponses(value = {@ApiResponse(code = 201, message = "Created the policy."),
- @ApiResponse(code = 500, message = "Policy Management related error occurred when " +
- "adding the policy")})
- @Permission(scope = "policy-modify", permissions = {"/permission/admin/device-mgt/admin/policies/add"})
- Response addPolicy(@ApiParam(name = "policyWrapper", value = "Policy details related to the operation.",
- required = true) PolicyWrapper policyWrapper);
-
- @POST
- @Path("active-policy")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "POST",
- value = "Adding an Active Policy.",
- notes = "Add a policy that is in the active state using the REST API command. When adding a policy you " +
- "will have the option of saving the policy or saving and publishing the policy. Using the REST " +
- "API command given below you are able to save and publish a created policy and this policy will " +
- "be in the active state.")
- @ApiResponses(value = {@ApiResponse(code = 201, message = "Created the policy."),
- @ApiResponse(code = 500, message = "Policy Management related error occurred when " +
- "adding the policy")})
- @Permission(scope = "policy-modify", permissions = {"/permission/admin/device-mgt/admin/policies/add"})
- Response addActivePolicy(@ApiParam(name = "policyWrapper", value = "Policy details related to the operation.",
- required = true) PolicyWrapper policyWrapper);
-
- @GET
- @Produces({MediaType.APPLICATION_JSON})
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Getting Details of Policies.",
- responseContainer = "List",
- notes = "Retrieve the details of all the policies that you have created in WSO2 EMM.",
- response = org.wso2.carbon.policy.mgt.common.Policy.class)
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Fetched all policies.",
- response = org.wso2.carbon.policy.mgt.common.Policy.class, responseContainer = "List"),
- @ApiResponse(code = 500, message = "Policy Management related error occurred when " +
- "fetching the policies.")})
- @Permission(scope = "policy-view", permissions = {"/permission/admin/device-mgt/admin/policies/list"})
- Response getAllPolicies();
-
- @GET
- @Produces({MediaType.APPLICATION_JSON})
- @Path("{id}")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Getting Details of a Policy.",
- notes = "Retrieve the details of a selected policy in WSO2 EMM.",
- response = org.wso2.carbon.policy.mgt.common.Policy.class)
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Fetched policy details."),
- @ApiResponse(code = 500, message = "Policy Management related error occurred when " +
- "fetching the policies.")})
- @Permission(scope = "policy-view", permissions = {"/permission/admin/device-mgt/admin/policies/list"})
- Response getPolicy(@ApiParam(name = "id", value = "Policy ID value to identify a policy uniquely.",
- required = true) @PathParam("id") int policyId);
-
- @GET
- @Path("count")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Getting the Policy Count.",
- notes = "Get the number of policies that are created in WSO2 EMM.",
- response = int.class)
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Fetched the policy count."),
- @ApiResponse(code = 500, message = "Error while Fetching the policy count.")})
- @Permission(scope = "policy-view", permissions = {"/permission/admin/device-mgt/admin/policies/list"})
- Response getPolicyCount();
-
- @PUT
- @Path("{id}")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "PUT",
- value = "Updating a Policy.",
- notes = "If you wish to make changes to an existing policy, you can do so by updating the policy using " +
- "this API")
- @ApiResponses(value = {@ApiResponse(code = 201, message = "Policy has been updated successfully."),
- @ApiResponse(code = 500, message = "Policy Management related exception in policy " +
- "update")})
- @Permission(scope = "policy-modify", permissions = {"/permission/admin/device-mgt/admin/policies/update"})
- Response updatePolicy(@ApiParam(name = "policyWrapper", value = "Policy details related to the operation.",
- required = true) PolicyWrapper policyWrapper,
- @ApiParam(name = "id", value = "Policy ID value to identify a policy uniquely.",
- required = true) @PathParam("id") int policyId);
-
- @PUT
- @Path("priorities")
- @Consumes({MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_JSON})
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "PUT",
- value = "Updating the Policy Priority.",
- notes = "If you wish to make changes to the existing policy priority order, " +
- "you can do so by updating the priority order using this API")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Policy Priorities successfully updated."),
- @ApiResponse(code = 400, message = "Policy priorities did not update."),
- @ApiResponse(code = 500, message = "Error in updating policy priorities.")})
- @Permission(scope = "policy-modify", permissions = {"/permission/admin/device-mgt/admin/policies/update"})
- Response updatePolicyPriorities(@ApiParam(name = "priorityUpdatedPolicies",
- value = "List of policy update details..",
- required = true) List priorityUpdatedPolicies);
-
- @POST
- @Path("bulk-remove")
- @Consumes("application/json")
- @Produces("application/json")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "POST",
- value = "Removing Multiple Policies.",
- notes = "In situations where you need to delete more than one policy you can do so using this API.")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Policies have been successfully deleted."),
- @ApiResponse(code = 400, message = "Policy does not exist."),
- @ApiResponse(code = 500, message = "Error in deleting policies.")})
- @Permission(scope = "policy-modify", permissions = {"/permission/admin/device-mgt/admin/policies/remove"})
- Response bulkRemovePolicy(@ApiParam(name = "policyIds", value = "Policy ID list to be deleted.",
- required = true) List policyIds);
-
- @PUT
- @Produces("application/json")
- @Path("activate")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "PUT",
- value = "Activating Policies.",
- notes = "Using the REST API command you are able to publish a policy in order to bring a policy that is " +
- "in the inactive state to the active state.")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Policies have been successfully activated."),
- @ApiResponse(code = 500, message = "Error in activating policies.")})
- @Permission(scope = "policy-modify", permissions = {
- "/permission/admin/device-mgt/admin/policies/update",
- "/permission/admin/device-mgt/admin/policies/add"})
- Response activatePolicy(@ApiParam(name = "policyIds", value = "Policy ID list to be activated.",
- required = true) List policyIds);
-
- @PUT
- @Produces("application/json")
- @Path("inactivate")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "PUT",
- value = "Deactivating Policies.",
- notes = "Using the REST API command you are able to unpublish a policy in order to bring a policy that " +
- "is in the active state to the inactive state.")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Policies have been successfully deactivated."),
- @ApiResponse(code = 500, message = "Error in deactivating policies.")})
- @Permission(scope = "policy-modify", permissions = {
- "/permission/admin/device-mgt/admin/policies/update",
- "/permission/admin/device-mgt/admin/policies/add"})
- Response inactivatePolicy(@ApiParam(name = "policyIds", value = "Policy ID list to be deactivated.",
- required = true) List policyIds) throws MDMAPIException;
-
- @PUT
- @Produces("application/json")
- @Path("apply-changes")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "PUT",
- value = "Applying Changes on Policies.",
- notes = "Policies in the active state will be applied to new device that register with WSO2 EMM based on" +
- " the policy enforcement criteria . In a situation where you need to make changes to existing" +
- " policies (removing, activating, deactivating and updating) or add new policies, the existing" +
- " devices will not receive these changes immediately. Once all the required changes are made" +
- " you need to apply the changes to push the policy changes to the existing devices.")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Changes have been successfully updated."),
- @ApiResponse(code = 500, message = "Error in updating policies.")})
- @Permission(scope = "policy-modify", permissions = {"/permission/admin/device-mgt/admin/policies/update"})
- Response applyChanges();
-
- @GET
- @Path("start-task/{milliseconds}")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Starting Policy Monitoring.",
- notes = "WSO2 EMM monitors the devices to identify any devices that have not complied to an enforced " +
- "policy. The policy monitoring task begins at the point WSO2 EMM has a a published policy. " +
- "It will monitor the device based on the policy monitoring frequency that you define in " +
- "milliseconds.Using this REST API to start the policy monitoring task is optional as " +
- "WSO2 EMM uses an OSGI call to start the monitoring task")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Policy monitoring service started successfully."),
- @ApiResponse(code = 500, message = "Policy Management related exception when starting " +
- "monitoring service.")})
- @Permission(scope = "policy-modify", permissions = {"/permission/admin/device-mgt/admin/policies/add"})
- Response startTaskService(@ApiParam(name = "milliseconds", value = "Policy monitoring frequency in milliseconds.",
- required = true) @PathParam("milliseconds") int monitoringFrequency);
-
- @GET
- @Path("update-task/{milliseconds}")
- @Permission(scope = "policy-modify", permissions = {"/permission/admin/device-mgt/admin/policies/add"})
- Response updateTaskService(@PathParam("milliseconds") int monitoringFrequency);
-
- @GET
- @Path("stop-task")
- @Permission(scope = "policy-modify", permissions = {"/permission/admin/device-mgt/admin/policies/add"})
- Response stopTaskService();
-
- @GET
- @Path("{type}/{id}")
- @Permission(scope = "policy-view", permissions = {"/permission/admin/device-mgt/admin/policies/list"})
- Response getComplianceDataOfDevice(@PathParam("type") String type, @PathParam("id") String id);
-
- @GET
- @Path("{type}/{id}/active-policy")
- @Permission(scope = "policy-view", permissions = {"/permission/admin/device-mgt/admin/policies/list"})
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Getting Policy Enforced Details of a Device.",
- notes = "When a device registers with WSO2 EMM a policy is enforced on the device. Initially the EMM " +
- "filters the policies based on the Platform (device type), filters based on the device ownership" +
- " type , filters based on the user role or name and finally the policy is enforced on the device.",
- response = org.wso2.carbon.policy.mgt.common.Policy.class)
- @ApiResponses(value = {@ApiResponse(code = 200, message = "Fetched current policy."),
- @ApiResponse(code = 500, message = "Error occurred while getting the current policy.")})
- Response getDeviceActivePolicy(@ApiParam(name = "type", value = "Define the device type as the value for {type}." +
- " Example: ios, android, windows..",
- required = true) @PathParam("type") String type,
- @ApiParam(name = "id", value = "Define the device ID as the value for {id}.",
- required = true) @PathParam("id") String id);
-
- //TODO: This API is still not in use, but will be needed when grouping is implemented.
- @GET
- @Path("/device-group/{user}")
- public Response getDeviceGroupsRelatedToPolicies(@PathParam("user") String userName);
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Profile.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Profile.java
deleted file mode 100644
index dcb2bf573d..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Profile.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.Api;
-import org.wso2.carbon.apimgt.annotations.api.*;
-
-import javax.ws.rs.DELETE;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.Response;
-
-/**
- * These end points provide profile related operations.
- */
-@API(name = "Profile", version = "1.0.0", context = "/devicemgt_admin/profiles", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
-@Api(value = "Profile")
-@Path("/profiles")
-@SuppressWarnings("NonJaxWsWebServices")
-public interface Profile {
-
- @POST
- @Permission(scope = "profile", permissions = {"/permission/admin/device-mgt/admin/policies/add"})
- Response addProfile(org.wso2.carbon.policy.mgt.common.Profile profile);
-
- @POST
- @Path("{id}")
- @Permission(scope = "profile", permissions = {"/permission/admin/device-mgt/admin/policies/update"})
- Response updateProfile(org.wso2.carbon.policy.mgt.common.Profile profile,
- @PathParam("id") String profileId);
-
- @DELETE
- @Path("{id}")
- @Permission(scope = "profile", permissions = {"/permission/admin/device-mgt/admin/policies/remove"})
- Response deleteProfile(@PathParam("id") int profileId);
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/User.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/User.java
deleted file mode 100644
index eef95c6b6b..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/User.java
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.*;
-import org.apache.axis2.databinding.types.soapencoding.Integer;
-import org.wso2.carbon.apimgt.annotations.api.*;
-import org.wso2.carbon.device.mgt.jaxrs.beans.UserCredentialWrapper;
-import org.wso2.carbon.device.mgt.jaxrs.beans.UserWrapper;
-
-import javax.ws.rs.*;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.util.List;
-
-/**
- * This represents the JAX-RS services of User related functionality.
- */
-@API(name = "User", version = "1.0.0", context = "/devicemgt_admin/users", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
-@Path("/users")
-@Api(value = "User", description = "User management related operations can be found here.")
-public interface User {
-
- @POST
- @Consumes({ MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_JSON})
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "POST",
- value = "Adding a User via the REST API",
- notes = "Adds a new user to WSO2 EMM using this REST API")
- @ApiResponses(value = {
- @ApiResponse(code = 201, message = "Created"),
- @ApiResponse(code = 500, message = "Exception in trying to add user by username: 'username'")
- })
- @Permission(scope = "user-modify", permissions = {"/permission/admin/device-mgt/admin/user/add"})
- Response addUser(@ApiParam(name = "userWrapper", value = "Includes the required properties to add a user"
- + " as the value", required = true) UserWrapper userWrapper);
-
- @GET
- @Path("view")
- @Produces({MediaType.APPLICATION_JSON})
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Getting Details of a User",
- notes = "If you wish to get the details of a specific user that is registered with WSO2 EMM,"
- + " you can do so using the REST API",
- response = UserWrapper.class)
- @ApiResponses(value = {
- @ApiResponse(code = 201, message = "User information was retrieved successfully"),
- @ApiResponse(code = 400, message = "User by username: 'username' does not exist"),
- @ApiResponse(code = 500, message = "Exception in trying to retrieve user by username: 'username'")
- })
- @Permission(scope = "user-view", permissions = {"/permission/admin/device-mgt/admin/user/view"})
- Response getUser(@ApiParam(name = "username", value = "Provide the name of the user you wish to get the"
- + " details of as the value", required = true)
- @QueryParam("username") String username);
-
- @PUT
- @Consumes({MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_JSON})
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
- httpMethod = "PUT",
- value = "Updating Details of a User",
- notes = "There will be situations where you will want to update the user details. In such "
- + "situation you can update the user details using this REST API")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "User by username: 'username' was successfully updated"),
- @ApiResponse(code = 409, message = "User by username: 'username' doesn't exists. Therefore, "
- + "request made to update user was refused"),
- @ApiResponse(code = 500, message = "Exception in trying to update user by username: 'username'")
- })
- @Permission(scope = "user-modify", permissions = {"/permission/admin/device-mgt/admin/user/update"})
- Response updateUser(@ApiParam(name = "userWrapper", value = "Provide the name of the user you wish to get"
- + " the details of as the value", required = true) UserWrapper userWrapper,
- @ApiParam(name = "username", value = "Provide the name of the user you wish to get "
- + "the details of as the value", required = true)
- @QueryParam("username") String username);
-
- @DELETE
- @Produces({MediaType.APPLICATION_JSON})
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "DELETE",
- value = "Deleting a User",
- notes = "In a situation where an employee leaves the organization you will need to remove the"
- + " user details from WSO2 EMM. In such situations you can use this REST API "
- + "to remove a user")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "User by username: 'username' was successfully removed"),
- @ApiResponse(code = 400, message = "User by username: 'username' does not exist for removal"),
- @ApiResponse(code = 500, message = "Exception in trying to remove user by username: 'username'")
- })
- @Permission(scope = "user-modify", permissions = {"/permission/admin/device-mgt/admin/user/remove"})
- Response removeUser(@ApiParam(name = "username", value = "Provide the name of the user you wish to delete"
- + " as the value for {username}", required = true)
- @QueryParam("username") String username);
-
- @GET
- @Path("roles")
- @Produces({MediaType.APPLICATION_JSON})
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Getting the Role Details of a User",
- notes = "A user can be assigned to one or more role in WSO2 EMM. Using this REST API you are "
- + "able to get the role/roles a user is assigned to",
- response = String.class,
- responseContainer = "List")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "User roles obtained for user : 'username'"),
- @ApiResponse(code = 400, message = "User by username: 'username' does not exist for role retrieval"),
- @ApiResponse(code = 500, message = "Exception in trying to retrieve roles for user by username: 'username'")
- })
- @Permission(scope = "user-view", permissions = {"/permission/admin/device-mgt/admin/user/view"})
- Response getRolesOfUser(@ApiParam(name = "username", value = "Provide the user name of the user you wish to get"
- + " the role details", required = true) @QueryParam("username") String username);
-
- @GET
- @Produces({MediaType.APPLICATION_JSON})
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Getting Details of Users",
- notes = "If you wish to get the details of all the user registered with WSO2 EMM, you can do so "
- + "using the REST API",
- response = UserWrapper.class,
- responseContainer = "List")
- @ApiResponses(value = {
- @ApiResponse(code = 201, message = "All users were successfully retrieved"),
- @ApiResponse(code = 500, message = "Error occurred while retrieving the list of users")
- })
- @Permission(scope = "user-view", permissions = {"/permission/admin/device-mgt/admin/user/list"})
- Response getAllUsers();
-
- @GET
- @Path("{filter}")
- @Produces({MediaType.APPLICATION_JSON})
- @Permission(scope = "user-view", permissions = {"/permission/admin/device-mgt/admin/user/list"})
- Response getMatchingUsers(@PathParam("filter") String filter);
-
- @GET
- @Path("view-users")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Getting User Details by Searching via the User Name",
- notes = "You will have 100+ users registered with WSO2 EMM. If you wish to retrieve the user "
- + "details of a specific user, and you only remember part of the user's username, "
- + "you are able to retrieve the user details by giving a character or a few characters "
- + "in the username",
- response = String.class,
- responseContainer = "List")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "All users by username were successfully retrieved. Obtained"
- + " user count: 'count'"),
- @ApiResponse(code = 500, message = "Error occurred while retrieving the list of users")
- })
- @Permission(scope = "user-view", permissions = {"/permission/admin/device-mgt/admin/user/list"})
- Response getAllUsersByUsername(@ApiParam(name = "username", value = "Provide any user detail of the user"
- + " as the value for {username} to retrieve the user details, such "
- + "as email address, first name or last name", required = true)
- @QueryParam("username") String userName);
-
- @GET
- @Path("users-by-username")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Searching for a User Name",
- notes = "You will have 100+ users registered with WSO2 EMM. Therefore if you are unsure of the "
- + "user name of a user and need to retrieve the details of a specific user, you can "
- + "search for that user by giving a character or a few characters in the username. "
- + "You will be given a list of users having the user name with the exact order of the "
- + "characters you provided",
- response = String.class,
- responseContainer = "List")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "All users by username were successfully retrieved. Obtained"
- + " user count: 'count'"),
- @ApiResponse(code = 500, message = "Error occurred while retrieving the list of users")
- })
- @Permission(scope = "user-view", permissions = {"/permission/admin/device-mgt/admin/user/list"})
- Response getAllUserNamesByUsername(@ApiParam(name = "username", value = "Provide a character or a few "
- + "character in the user name as the value for {username}",
- required = true) @QueryParam("username") String userName);
-
- @POST
- @Path("email-invitation")
- @Produces({MediaType.APPLICATION_JSON})
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "POST",
- value = "Sending Enrollment Invitations to Users",
- notes = "Send the users a mail inviting them to download the EMM mobile application on their "
- + "devices using this REST API")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "Email invitation was successfully sent to user"),
- @ApiResponse(code = 500, message = "Error occurred while retrieving the list of users")
- })
- @Permission(scope = "user-modify", permissions = {"/permission/admin/device-mgt/admin/users/invite"})
- Response inviteExistingUsersToEnrollDevice(@ApiParam(name = "usernames", value = "List of the users to be"
- + " invited as the ", required = true)
- List usernames);
-
- @GET
- @Produces({MediaType.APPLICATION_JSON})
- @Path("devices")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Getting Device Details of a User",
- notes = "If you wish to get the details of the devices enrolled by a specific user, you can do "
- + "so using this REST API",
- response = org.wso2.carbon.device.mgt.common.Device.class,
- responseContainer = "List")
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "OK"),
- @ApiResponse(code = 500, message = "Device management error")
- })
- @Permission(scope = "user-view", permissions = {
- "/permission/admin/device-mgt/user/devices/list",
- "/permission/admin/device-mgt/admin/devices/list"})
- Response getAllDeviceOfUser(@ApiParam(name = "username", value = "Provide the name of the user you wish "
- + "to get the details", required = true) @QueryParam("username")
- String username,
- @ApiParam(name = "start", value = "Provide the starting pagination index",
- required = true) @QueryParam("start") int startIdx,
- @ApiParam(name = "length", value = "Provide how many device details you "
- + "require from the starting pagination index", required = true)
- @QueryParam("length") int length);
-
- @GET
- @Path("count")
- @ApiOperation(
- httpMethod = "GET",
- value = "Getting the User Count",
- notes = "Get the number of users in WSO2 EMM",
- response = int.class)
- @ApiResponses(value = {
- @ApiResponse(code = 200, message = "OK"),
- @ApiResponse(code = 500, message = "Error occurred while retrieving the list of users that exist"
- + " within the current tenant")
- })
- @Permission(scope = "user-view", permissions = {"/permission/admin/device-mgt/admin/user/list"})
- Response getUserCount();
-
- @PUT
- @Path("{roleName}/users")
- @Produces({MediaType.APPLICATION_JSON})
- @Permission(scope = "user-modify", permissions = {"/permission/admin/device-mgt/admin/user/update"})
- Response updateRoles(@PathParam("roleName") String roleName, List userList);
-
- @POST
- @Path("change-password")
- @Consumes({MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_JSON})
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "POST",
- value = "Changing the User Password",
- notes = "A user is able to change the password to secure their EMM profile via this REST API")
- @ApiResponses(value = {
- @ApiResponse(code = 201, message = "UserImpl password by username: 'Username' was "
- + "successfully changed"),
- @ApiResponse(code = 400, message = "Old password does not match"),
- @ApiResponse(code = 400, message = "Could not change the password of the user: 'Username'. The"
- + " Character Encoding is not supported"),
- @ApiResponse(code = 500, message = "Internal Server Error")
- })
- @Permission(scope = "user-modify", permissions = {"/permission/admin/login"})
- Response resetPassword(@ApiParam(name = "credentials", value = "Include the required properties to change"
- + " the user password as value", required = true)
- UserCredentialWrapper credentials);
-
- @POST
- @Path("reset-password")
- @Consumes({MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_JSON})
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "POST",
- value = "Resetting the User Password",
- notes = "In a situation where you need to block a user from accessing their EMM profile, "
- + "the EMM administrator is able to reset the password. This will change the user's "
- + "password and the user will not be able to able to login to the account as he/she is "
- + "not aware of the new password.")
- @ApiResponses(value = {
- @ApiResponse(code = 201, message = "UserImpl password by username: 'Username' was "
- + "successfully changed"),
- @ApiResponse(code = 400, message = "Old password does not match"),
- @ApiResponse(code = 400, message = "Could not change the password of the user: 'Username'. The"
- + " Character Encoding is not supported"),
- @ApiResponse(code = 500, message = "Internal Server Error")
- })
- @Permission(scope = "user-modify", permissions = {"/permission/admin/device-mgt/admin/users/password-reset"})
- Response resetPasswordByAdmin(@ApiParam(name = "credentials", value = "Include the required properties "
- + "to change a user password as value",
- required = true) UserCredentialWrapper credentials);
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/common/MDMAPIException.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/common/MDMAPIException.java
deleted file mode 100644
index d858bb1e26..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/common/MDMAPIException.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api.common;
-
-/**
- * Custom exception class for handling CDM API related exceptions.
- */
-public class MDMAPIException extends Exception {
-
- private static final long serialVersionUID = 7950151650447893900L;
- private String errorMessage;
-
- public String getErrorMessage() {
- return errorMessage;
- }
-
- public void setErrorMessage(String errorMessage) {
- this.errorMessage = errorMessage;
- }
-
- public MDMAPIException(String msg, Exception e) {
- super(msg, e);
- setErrorMessage(msg);
- }
-
- public MDMAPIException(String msg, Throwable cause) {
- super(msg, cause);
- setErrorMessage(msg);
- }
-
- public MDMAPIException(String msg) {
- super(msg);
- setErrorMessage(msg);
- }
-
- public MDMAPIException() {
- super();
- }
-
- public MDMAPIException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/CertificateImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/CertificateImpl.java
deleted file mode 100644
index a4ebb4c831..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/CertificateImpl.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.certificate.mgt.core.dao.CertificateManagementDAOException;
-import org.wso2.carbon.certificate.mgt.core.dto.CertificateResponse;
-import org.wso2.carbon.certificate.mgt.core.exception.KeystoreException;
-import org.wso2.carbon.certificate.mgt.core.service.CertificateManagementService;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.device.mgt.jaxrs.api.Certificate;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
-import org.wso2.carbon.device.mgt.common.PaginationRequest;
-import org.wso2.carbon.device.mgt.common.PaginationResult;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.device.mgt.jaxrs.beans.EnrollmentCertificate;
-import org.wso2.carbon.device.mgt.jaxrs.exception.BadRequestException;
-import org.wso2.carbon.device.mgt.jaxrs.exception.Message;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * All the certificate related tasks such as saving certificates, can be done through this endpoint.
- */
-@SuppressWarnings("NonJaxWsWebServices")
-@Produces({"application/json", "application/xml"})
-@Consumes({ "application/json", "application/xml" })
-public class CertificateImpl implements Certificate {
-
- private static Log log = LogFactory.getLog(OperationImpl.class);
-
- /**
- * Save a list of certificates and relevant information in the database.
- *
- * @param enrollmentCertificates List of all the certificates which includes the tenant id, certificate as
- * a pem and a serial number.
- * @return Status of the data persist operation.
- */
- @POST
- public Response saveCertificate(@HeaderParam("Accept") String acceptHeader,
- EnrollmentCertificate[] enrollmentCertificates) {
- MediaType responseMediaType = DeviceMgtAPIUtils.getResponseMediaType(acceptHeader);
- CertificateManagementService certificateService;
- List certificates = new ArrayList<>();
- org.wso2.carbon.certificate.mgt.core.bean.Certificate certificate;
- certificateService = DeviceMgtAPIUtils.getCertificateManagementService();
- try {
- for (EnrollmentCertificate enrollmentCertificate : enrollmentCertificates) {
- certificate = new org.wso2.carbon.certificate.mgt.core.bean.Certificate();
- certificate.setTenantId(PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId());
- certificate.setSerial(enrollmentCertificate.getSerial());
- certificate.setCertificate(certificateService.pemToX509Certificate(enrollmentCertificate.getPem()));
- certificates.add(certificate);
- }
- certificateService.saveCertificate(certificates);
- return Response.status(Response.Status.CREATED).entity("Added successfully.").
- type(responseMediaType).build();
- } catch (KeystoreException e) {
- String msg = "Error occurred while converting PEM file to X509Certificate.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).type(responseMediaType).build();
- }
- }
-
- /**
- * Get a certificate when the serial number is given.
- *
- * @param serialNumber serial of the certificate needed.
- * @return certificate response.
- */
- @GET
- @Path("{serialNumber}")
- public Response getCertificate(@HeaderParam("Accept") String acceptHeader,
- @PathParam("serialNumber") String serialNumber) {
- MediaType responseMediaType = DeviceMgtAPIUtils.getResponseMediaType(acceptHeader);
- Message message = new Message();
-
- if (serialNumber == null || serialNumber.isEmpty()) {
- message.setErrorMessage("Invalid serial number");
- message.setDiscription("Serial number is missing or invalid.");
- return Response.status(Response.Status.BAD_REQUEST).entity(message).type(responseMediaType).build();
- }
-
- CertificateManagementService certificateService = DeviceMgtAPIUtils.getCertificateManagementService();
- List certificateResponse;
- try {
- certificateResponse = certificateService.searchCertificates(serialNumber);
- return Response.status(Response.Status.OK).entity(certificateResponse).type(responseMediaType).build();
- } catch (CertificateManagementDAOException e) {
- String msg = "Error occurred while converting PEM file to X509Certificate";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).type(responseMediaType).build();
- }
- }
-
- /**
- * Get all certificates in a paginated manner.
- *
- * @param startIndex index of the first record to be fetched
- * @param length number of records to be fetched starting from the start index.
- * @return paginated result of certificate.
- * @throws MDMAPIException
- */
- @GET
- @Path("paginate")
- public Response getAllCertificates(@HeaderParam("Accept") String acceptHeader,
- @QueryParam("start") int startIndex,
- @QueryParam("length") int length)
- throws MDMAPIException {
- MediaType responseMediaType = DeviceMgtAPIUtils.getResponseMediaType(acceptHeader);
- Message message = new Message();
-
- if (startIndex < 0) {
- message.setErrorMessage("Invalid start index.");
- message.setDiscription("Start index cannot be less that 0.");
- return Response.status(Response.Status.BAD_REQUEST).entity(message).type(responseMediaType).build();
- } else if (length <= 0) {
- message.setErrorMessage("Invalid length value.");
- message.setDiscription("Length should be a positive integer.");
- return Response.status(Response.Status.BAD_REQUEST).entity(message).type(responseMediaType).build();
- }
-
- CertificateManagementService certificateService = DeviceMgtAPIUtils.getCertificateManagementService();
- PaginationRequest paginationRequest = new PaginationRequest(startIndex, length);
- try {
- PaginationResult certificates = certificateService.getAllCertificates(paginationRequest);
- return Response.status(Response.Status.OK).entity(certificates).type(responseMediaType).build();
- } catch (CertificateManagementDAOException e) {
- String msg = "Error occurred while fetching all certificates.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).type(responseMediaType).build();
- }
- }
-
- /**
- * Get all certificates
- *
- * @return certificate details in an array.
- * @throws MDMAPIException
- */
- @GET
- public Response getAllCertificates(@HeaderParam("Accept") String acceptHeader)
- throws MDMAPIException {
- MediaType responseMediaType = DeviceMgtAPIUtils.getResponseMediaType(acceptHeader);
-
- CertificateManagementService certificateService = DeviceMgtAPIUtils.getCertificateManagementService();
- try {
- List certificates = certificateService.getCertificates();
- return Response.status(Response.Status.OK).entity(certificates).type(responseMediaType).build();
- } catch (CertificateManagementDAOException e) {
- String msg = "Error occurred while fetching all certificates.";
- log.error(msg, e);
- throw new MDMAPIException(msg, e);
- }
- }
-
- @DELETE
- @Path("{serialNumber}")
- public Response removeCertificate(@HeaderParam("Accept") String acceptHeader,
- @PathParam("serialNumber") String serialNumber) throws MDMAPIException {
- MediaType responseMediaType = DeviceMgtAPIUtils.getResponseMediaType(acceptHeader);
- Message message = new Message();
-
- if (serialNumber == null || serialNumber.isEmpty()) {
- message.setErrorMessage("Invalid serial number");
- message.setDiscription("Serial number is missing or invalid.");
- return Response.status(Response.Status.BAD_REQUEST).entity(message).type(responseMediaType).build();
- }
-
- CertificateManagementService certificateService = DeviceMgtAPIUtils.getCertificateManagementService();
- boolean deleted;
- try {
- deleted = certificateService.removeCertificate(serialNumber);
- if(deleted){
- return Response.status(Response.Status.OK).entity(deleted).type(responseMediaType).build();
- } else {
- return Response.status(Response.Status.GONE).entity(deleted).type(responseMediaType).build();
- }
- } catch (CertificateManagementDAOException e) {
- String msg = "Error occurred while converting PEM file to X509Certificate";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).type(responseMediaType).build();
- }
- }
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/ConfigurationImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/ConfigurationImpl.java
deleted file mode 100644
index 1d48daf31d..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/ConfigurationImpl.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
-import org.wso2.carbon.device.mgt.jaxrs.api.Configuration;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.MDMAppConstants;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload;
-import org.wso2.carbon.policy.mgt.core.util.PolicyManagerUtil;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * General Tenant Configuration REST-API implementation.
- * All end points support JSON, XMl with content negotiation.
- */
-@SuppressWarnings("NonJaxWsWebServices")
-@Produces({"application/json", "application/xml"})
-@Consumes({ "application/json", "application/xml" })
-public class ConfigurationImpl implements Configuration{
-
- private static Log log = LogFactory.getLog(ConfigurationImpl.class);
-
- @POST
- public Response saveTenantConfiguration(TenantConfiguration configuration) {
- ResponsePayload responseMsg = new ResponsePayload();
- try {
- DeviceMgtAPIUtils.getTenantConfigurationManagementService().saveConfiguration(configuration,
- MDMAppConstants.RegistryConstants.GENERAL_CONFIG_RESOURCE_PATH);
- //Schedule the task service
- DeviceMgtAPIUtils.scheduleTaskService(DeviceMgtAPIUtils.getNotifierFrequency(configuration));
- responseMsg.setMessageFromServer("Tenant configuration saved successfully.");
- responseMsg.setStatusCode(HttpStatus.SC_CREATED);
- return Response.status(Response.Status.CREATED).entity(responseMsg).build();
- } catch (ConfigurationManagementException e) {
- String msg = "Error occurred while saving the tenant configuration.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- @GET
- public Response getConfiguration() {
- String msg;
- try {
- TenantConfiguration tenantConfiguration = DeviceMgtAPIUtils.getTenantConfigurationManagementService().
- getConfiguration(MDMAppConstants.RegistryConstants.GENERAL_CONFIG_RESOURCE_PATH);
- ConfigurationEntry configurationEntry = new ConfigurationEntry();
- configurationEntry.setContentType("text");
- configurationEntry.setName("notifierFrequency");
- configurationEntry.setValue(PolicyManagerUtil.getMonitoringFequency());
- List configList = tenantConfiguration.getConfiguration();
- if (configList == null) {
- configList = new ArrayList<>();
- }
- configList.add(configurationEntry);
- tenantConfiguration.setConfiguration(configList);
- return Response.status(Response.Status.OK).entity(tenantConfiguration).build();
- } catch (ConfigurationManagementException e) {
- msg = "Error occurred while retrieving the tenant configuration.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- @PUT
- public Response updateConfiguration(TenantConfiguration configuration) {
- ResponsePayload responseMsg = new ResponsePayload();
- try {
- DeviceMgtAPIUtils.getTenantConfigurationManagementService().saveConfiguration(configuration,
- MDMAppConstants.RegistryConstants.GENERAL_CONFIG_RESOURCE_PATH);
- //Schedule the task service
- DeviceMgtAPIUtils.scheduleTaskService(DeviceMgtAPIUtils.getNotifierFrequency(configuration));
- responseMsg.setMessageFromServer("Tenant configuration updated successfully.");
- responseMsg.setStatusCode(HttpStatus.SC_CREATED);
- return Response.status(Response.Status.CREATED).entity(responseMsg).build();
- } catch (ConfigurationManagementException e) {
- String msg = "Error occurred while updating the tenant configuration.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceImpl.java
deleted file mode 100644
index 19ea361c08..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceImpl.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.jaxrs.api.Device;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload;
-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.PaginationRequest;
-import org.wso2.carbon.device.mgt.core.dto.DeviceType;
-import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
-
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.util.List;
-
-/**
- * Device related operations
- */
-@SuppressWarnings("NonJaxWsWebServices")
-public class DeviceImpl implements Device{
- private static Log log = LogFactory.getLog(DeviceImpl.class);
-
- /**
- * Get all devices. We have to use accept all the necessary query parameters sent by datatable.
- * Hence had to put lot of query params here.
- *
- * @return Device List
- */
- @GET
- public Response getAllDevices(@QueryParam("type") String type, @QueryParam("user") String user,
- @QueryParam("role") String role, @QueryParam("status") EnrolmentInfo.Status status,
- @QueryParam("start") int startIdx, @QueryParam("length") int length,
- @QueryParam("device-name") String deviceName,
- @QueryParam("ownership") EnrolmentInfo.OwnerShip ownership) {
- try {
- DeviceManagementProviderService service = DeviceMgtAPIUtils.getDeviceManagementService();
- //Length > 0 means this is a pagination request.
- if (length > 0) {
- PaginationRequest paginationRequest = new PaginationRequest(startIdx, length);
- paginationRequest.setDeviceName(deviceName);
- paginationRequest.setOwner(user);
- if (ownership != null) {
- paginationRequest.setOwnership(ownership.toString());
- }
- if (status != null) {
- paginationRequest.setStatus(status.toString());
- }
- paginationRequest.setDeviceType(type);
- return Response.status(Response.Status.OK).entity(service.getAllDevices(paginationRequest)).build();
- }
-
- List allDevices;
- if ((type != null) && !type.isEmpty()) {
- allDevices = service.getAllDevices(type);
- } else if ((user != null) && !user.isEmpty()) {
- allDevices = service.getDevicesOfUser(user);
- } else if ((role != null) && !role.isEmpty()) {
- allDevices = service.getAllDevicesOfRole(role);
- } else if (status != null) {
- allDevices = service.getDevicesByStatus(status);
- } else if (deviceName != null) {
- allDevices = service.getDevicesByName(deviceName);
- } else {
- allDevices = service.getAllDevices();
- }
- return Response.status(Response.Status.OK).entity(allDevices).build();
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while fetching the device list.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * Fetch device details for a given device type and device Id.
- *
- * @return Device wrapped inside Response
- */
- @GET
- @Path("view")
- @Produces({MediaType.APPLICATION_JSON})
- public Response getDevice(@QueryParam("type") String type,
- @QueryParam("id") String id) {
- DeviceIdentifier deviceIdentifier = DeviceMgtAPIUtils.instantiateDeviceIdentifier(type, id);
- DeviceManagementProviderService deviceManagementProviderService = DeviceMgtAPIUtils.getDeviceManagementService();
- org.wso2.carbon.device.mgt.common.Device device;
- try {
- device = deviceManagementProviderService.getDevice(deviceIdentifier);
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while fetching the device information.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- if (device == null) {
- responsePayload.setStatusCode(HttpStatus.SC_NOT_FOUND);
- responsePayload.setMessageFromServer("Requested device by type: " +
- type + " and id: " + id + " does not exist.");
- return Response.status(Response.Status.NOT_FOUND).entity(responsePayload).build();
- } else {
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("Sending Requested device by type: " + type + " and id: " + id + ".");
- responsePayload.setResponseContent(device);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
- }
-
- /**
- * Fetch device details of a given user.
- *
- * @param user User Name
- * @return Device
- */
- @GET
- @Path("user/{user}")
- public Response getDeviceOfUser(@PathParam("user") String user) {
- List devices;
- try {
- devices = DeviceMgtAPIUtils.getDeviceManagementService().getDevicesOfUser(user);
- if (devices == null) {
- return Response.status(Response.Status.NOT_FOUND).build();
- }
- return Response.status(Response.Status.OK).entity(devices).build();
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while fetching the devices list of given user.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * Fetch device count of a given user.
- *
- * @param user User Name
- * @return Device
- */
- @GET
- @Path("user/{user}/count")
- public Response getDeviceCountOfUser(@PathParam("user") String user) {
- try {
- Integer count = DeviceMgtAPIUtils.getDeviceManagementService().getDeviceCount(user);
- return Response.status(Response.Status.OK).entity(count).build();
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while fetching the devices list of given user.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * Get current device count
- *
- * @return device count
- */
- @GET
- @Path("count")
- public Response getDeviceCount() {
- try {
- Integer count = DeviceMgtAPIUtils.getDeviceManagementService().getDeviceCount();
- return Response.status(Response.Status.OK).entity(count).build();
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while fetching the device count.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * Get the list of devices that matches with the given name.
- *
- * @param deviceName Device name
- * @param tenantDomain Callee tenant domain
- * @return list of devices.
- */
- @GET
- @Path("name/{name}/{tenantDomain}")
- public Response getDevicesByName(@PathParam("name") String deviceName,
- @PathParam("tenantDomain") String tenantDomain) {
- List devices;
- try {
- devices = DeviceMgtAPIUtils.getDeviceManagementService().getDevicesByName(deviceName);
- return Response.status(Response.Status.OK).entity(devices).build();
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while fetching the devices list of device name.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * Get the list of available device types.
- *
- * @return list of device types.
- */
- @GET
- @Path("types")
- public Response getDeviceTypes() {
- List deviceTypes;
- try {
- deviceTypes = DeviceMgtAPIUtils.getDeviceManagementService().getAvailableDeviceTypes();
- return Response.status(Response.Status.OK).entity(deviceTypes).build();
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while fetching the list of device types.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * Update device.
- *
- * @return update status.
- */
- @PUT
- @Path("type/{type}/id/{deviceId}")
- public Response updateDevice(@PathParam("type") String deviceType, @PathParam("deviceId") String deviceId,
- org.wso2.carbon.device.mgt.common.Device updatedDevice) {
- try {
- DeviceManagementProviderService deviceManagementService = DeviceMgtAPIUtils.getDeviceManagementService();
- DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- deviceIdentifier.setType(deviceType);
- deviceIdentifier.setId(deviceId);
- org.wso2.carbon.device.mgt.common.Device device = deviceManagementService.getDevice(deviceIdentifier);
- device.setName(updatedDevice.getName());
- device.setDescription(updatedDevice.getDescription());
- Boolean response = deviceManagementService.modifyEnrollment(device);
- return Response.status(Response.Status.OK).entity(response).build();
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while fetching the list of device types.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * disenroll device.
- *
- * @return disenrollment status.
- */
- @DELETE
- @Path("type/{type}/id/{deviceId}")
- public Response disenrollDevice(@PathParam("type") String deviceType, @PathParam("deviceId") String deviceId) {
- try {
- DeviceManagementProviderService deviceManagementService = DeviceMgtAPIUtils.getDeviceManagementService();
- DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- deviceIdentifier.setType(deviceType);
- deviceIdentifier.setId(deviceId);
- Boolean response = deviceManagementService.disenrollDevice(deviceIdentifier);
- return Response.status(Response.Status.OK).entity(response).build();
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while fetching the list of device types.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceInformationImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceInformationImpl.java
deleted file mode 100644
index a59c81be54..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceInformationImpl.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
-import org.wso2.carbon.device.mgt.common.device.details.DeviceInfo;
-import org.wso2.carbon.device.mgt.common.device.details.DeviceLocation;
-import org.wso2.carbon.device.mgt.core.device.details.mgt.DeviceDetailsMgtException;
-import org.wso2.carbon.device.mgt.core.device.details.mgt.DeviceInformationManager;
-import org.wso2.carbon.device.mgt.jaxrs.api.DeviceInformation;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.Response;
-import java.util.List;
-
-@SuppressWarnings("NonJaxWsWebServices")
-public class DeviceInformationImpl implements DeviceInformation {
-
- private static Log log = LogFactory.getLog(DeviceInformationImpl.class);
-
- @GET
- @Path("{type}/{id}")
- public Response getDeviceInfo(@PathParam("type") String type, @PathParam("id") String id) {
- DeviceInformationManager informationManager;
- DeviceInfo deviceInfo;
- try {
- DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- deviceIdentifier.setId(id);
- deviceIdentifier.setType(type);
- informationManager = DeviceMgtAPIUtils.getDeviceInformationManagerService();
- deviceInfo = informationManager.getDeviceInfo(deviceIdentifier);
- } catch (DeviceDetailsMgtException e) {
- String msg = "Error occurred while getting the device information.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- return Response.status(Response.Status.OK).entity(deviceInfo).build();
- }
-
-
- @POST
- @Path("list")
- public Response getDevicesInfo(List deviceIdentifiers) {
- DeviceInformationManager informationManager;
- List deviceInfos;
- try {
- informationManager = DeviceMgtAPIUtils.getDeviceInformationManagerService();
- deviceInfos = informationManager.getDevicesInfo(deviceIdentifiers);
- } catch (DeviceDetailsMgtException e) {
- String msg = "Error occurred while getting the device information.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- return Response.status(Response.Status.OK).entity(deviceInfos).build();
- }
-
-
- @GET
- @Path("location/{type}/{id}")
- public Response getDeviceLocation(@PathParam("type") String type, @PathParam("id") String id) {
- DeviceInformationManager informationManager;
- DeviceLocation deviceLocation;
- try {
- DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- deviceIdentifier.setId(id);
- deviceIdentifier.setType(type);
- informationManager = DeviceMgtAPIUtils.getDeviceInformationManagerService();
- deviceLocation = informationManager.getDeviceLocation(deviceIdentifier);
- } catch (DeviceDetailsMgtException e) {
- String msg = "Error occurred while getting the device location.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- return Response.status(Response.Status.OK).entity(deviceLocation).build();
- }
-}
-
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceNotificationImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceNotificationImpl.java
deleted file mode 100644
index 3a4ece1a17..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceNotificationImpl.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.jaxrs.api.DeviceNotification;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.device.mgt.common.notification.mgt.Notification;
-import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-import java.util.List;
-
-/**
- * DeviceNotification management REST-API implementation.
- * All end points support JSON, XMl with content negotiation.
- */
-@SuppressWarnings("NonJaxWsWebServices")
-@Produces({"application/json", "application/xml"})
-@Consumes({ "application/json", "application/xml" })
-public class DeviceNotificationImpl implements DeviceNotification{
-
- private static Log log = LogFactory.getLog(ConfigurationImpl.class);
-
- @GET
- public Response getNotifications() {
- String msg;
- try {
- List notifications = DeviceMgtAPIUtils.getNotificationManagementService().getAllNotifications();
- return Response.status(Response.Status.OK).entity(notifications).build();
- } catch (NotificationManagementException e) {
- msg = "Error occurred while retrieving the notification list.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- @GET
- @Path("{status}")
- public Response getNotificationsByStatus(@PathParam("status") Notification.Status status) {
- String msg;
- try {
- List notifications = DeviceMgtAPIUtils.getNotificationManagementService().getNotificationsByStatus(status);
- return Response.status(Response.Status.OK).entity(notifications).build();
- } catch (NotificationManagementException e) {
- msg = "Error occurred while retrieving the notification list.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- @PUT
- @Path("{id}/{status}")
- public Response updateNotificationStatus(@PathParam("id") int id,
- @PathParam("status") Notification.Status status) {
- ResponsePayload responseMsg = new ResponsePayload();
- try {
- DeviceMgtAPIUtils.getNotificationManagementService().updateNotificationStatus(id, status);
- responseMsg.setMessageFromServer("Notification status updated successfully.");
- responseMsg.setStatusCode(HttpStatus.SC_ACCEPTED);
- return Response.status(Response.Status.ACCEPTED).entity(responseMsg).build();
- } catch (NotificationManagementException e) {
- String msg = "Error occurred while updating notification status.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- @POST
- public Response addNotification(Notification notification) {
- ResponsePayload responseMsg = new ResponsePayload();
- try {
- DeviceMgtAPIUtils.getNotificationManagementService().addNotification(notification);
- responseMsg.setMessageFromServer("Notification has added successfully.");
- responseMsg.setStatusCode(HttpStatus.SC_CREATED);
- return Response.status(Response.Status.CREATED).entity(responseMsg).build();
- } catch (NotificationManagementException e) {
- String msg = "Error occurred while updating notification status.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceSearchImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceSearchImpl.java
deleted file mode 100644
index 787ced531c..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DeviceSearchImpl.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import io.swagger.annotations.Api;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.common.device.details.DeviceWrapper;
-import org.wso2.carbon.device.mgt.common.search.SearchContext;
-import org.wso2.carbon.device.mgt.core.search.mgt.SearchManagerService;
-import org.wso2.carbon.device.mgt.core.search.mgt.SearchMgtException;
-import org.wso2.carbon.device.mgt.jaxrs.api.DeviceSearch;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.Response;
-import java.util.List;
-
-@Path("/search")
-@Api(value = "DeviceSearch", description = "Device searching related operations can be found here.")
-@SuppressWarnings("NonJaxWsWebServices")
-public class DeviceSearchImpl implements DeviceSearch {
-
- private static Log log = LogFactory.getLog(DeviceSearchImpl.class);
-
- @GET
- public Response getDeviceInfo(SearchContext searchContext) {
-
- SearchManagerService searchManagerService;
- List devices;
- try {
- searchManagerService = DeviceMgtAPIUtils.getSearchManagerService();
- devices = searchManagerService.search(searchContext);
-
- } catch (SearchMgtException e) {
- String msg = "Error occurred while searching the device information.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- return Response.status(Response.Status.OK).entity(devices).build();
- }
-
- @POST
- @Path("after/{time}")
- public Response getUpdatedDevices(@PathParam("time") String time){
-
- SearchManagerService searchManagerService;
- List devices;
- try {
- searchManagerService = DeviceMgtAPIUtils.getSearchManagerService();
- devices = searchManagerService.getUpdated(Long.parseLong(time));
-
- } catch (SearchMgtException e) {
- String msg = "Error occurred while retrieving the updated device information after the given time.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- return Response.status(Response.Status.OK).entity(devices).build();
-
- }
-
-}
-
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/FeatureImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/FeatureImpl.java
deleted file mode 100644
index 11734ae365..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/FeatureImpl.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.jaxrs.api.Feature;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.device.mgt.common.DeviceManagementException;
-import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-import java.util.List;
-
-/**
- * Features
- */
-@SuppressWarnings("NonJaxWsWebServices")
-@Produces({"application/json", "application/xml"})
-@Consumes({"application/json", "application/xml"})
-public class FeatureImpl implements Feature{
- private static Log log = LogFactory.getLog(FeatureImpl.class);
-
- /**
- * Get all features for Mobile Device Type
- *
- * @return Feature
- */
- @GET
- @Path("/{type}")
- public Response getFeatures(@PathParam("type") String type) {
- List features;
- DeviceManagementProviderService dmService;
- try {
- dmService = DeviceMgtAPIUtils.getDeviceManagementService();
- features = dmService.getFeatureManager(type).getFeatures();
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while retrieving the list of features";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- return Response.status(Response.Status.OK).entity(features).build();
- }
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/GroupImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/GroupImpl.java
deleted file mode 100644
index 14c6323818..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/GroupImpl.java
+++ /dev/null
@@ -1,513 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
-import org.wso2.carbon.device.mgt.common.PaginationResult;
-import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroup;
-import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroupConstants;
-import org.wso2.carbon.device.mgt.common.group.mgt.GroupAlreadyEixistException;
-import org.wso2.carbon.device.mgt.common.group.mgt.GroupManagementException;
-import org.wso2.carbon.device.mgt.common.group.mgt.GroupUser;
-import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService;
-import org.wso2.carbon.device.mgt.jaxrs.api.Group;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.user.core.multiplecredentials.UserDoesNotExistException;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Response;
-import java.util.Date;
-import java.util.List;
-
-@SuppressWarnings("NonJaxWsWebServices")
-public class GroupImpl implements Group {
-
- private static Log log = LogFactory.getLog(GroupImpl.class);
-
- @Override
- @POST
- @Consumes("application/json")
- public Response createGroup(DeviceGroup group) {
- String owner = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername();
- if (group == null) {
- return Response.status(Response.Status.BAD_REQUEST).build();
- }
- group.setOwner(owner);
- group.setDateOfCreation(new Date().getTime());
- group.setDateOfLastUpdate(new Date().getTime());
- try {
- GroupManagementProviderService groupManagementService = DeviceMgtAPIUtils.getGroupManagementProviderService();
- groupManagementService.createGroup(group, DeviceGroupConstants.Roles.DEFAULT_ADMIN_ROLE, DeviceGroupConstants.Permissions.DEFAULT_ADMIN_PERMISSIONS);
- groupManagementService.addGroupSharingRole(owner, group.getName(), owner,
- DeviceGroupConstants.Roles.DEFAULT_OPERATOR_ROLE,
- DeviceGroupConstants.Permissions.DEFAULT_OPERATOR_PERMISSIONS);
- groupManagementService.addGroupSharingRole(owner, group.getName(), owner, DeviceGroupConstants.Roles.DEFAULT_STATS_MONITOR_ROLE,
- DeviceGroupConstants.Permissions.DEFAULT_STATS_MONITOR_PERMISSIONS);
- groupManagementService.addGroupSharingRole(owner, group.getName(), owner, DeviceGroupConstants.Roles.DEFAULT_VIEW_POLICIES,
- DeviceGroupConstants.Permissions.DEFAULT_VIEW_POLICIES_PERMISSIONS);
- groupManagementService.addGroupSharingRole(owner, group.getName(), owner, DeviceGroupConstants.Roles.DEFAULT_MANAGE_POLICIES,
- DeviceGroupConstants.Permissions.DEFAULT_MANAGE_POLICIES_PERMISSIONS);
- groupManagementService.addGroupSharingRole(owner, group.getName(), owner, DeviceGroupConstants.Roles.DEFAULT_VIEW_EVENTS,
- DeviceGroupConstants.Permissions.DEFAULT_VIEW_EVENTS_PERMISSIONS);
- return Response.status(Response.Status.CREATED).build();
- } catch (GroupAlreadyEixistException e) {
- return Response.status(Response.Status.CONFLICT).entity(e.getMessage()).build();
- } catch (GroupManagementException e) {
- log.error(e.getErrorMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @Path("/owner/{owner}/name/{groupName}")
- @PUT
- @Consumes("application/json")
- @Produces("application/json")
- public Response updateGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- DeviceGroup deviceGroup) {
- try {
- DeviceMgtAPIUtils.getGroupManagementProviderService().updateGroup(deviceGroup, groupName, owner);
- return Response.status(Response.Status.OK).build();
- } catch (GroupManagementException e) {
- log.error(e.getErrorMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @Path("/owner/{owner}/name/{groupName}")
- @DELETE
- public Response deleteGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner) {
- try {
- DeviceMgtAPIUtils.getGroupManagementProviderService().deleteGroup(groupName, owner);
- return Response.status(Response.Status.OK).build();
- } catch (GroupManagementException e) {
- log.error(e.getMessage());
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @GET
- @Produces("application/json")
- public Response getGroups(@QueryParam("start") int startIndex, @QueryParam("length") int length) {
- try {
- PaginationResult paginationResult = DeviceMgtAPIUtils.getGroupManagementProviderService()
- .getGroups(startIndex, length);
- if (paginationResult.getRecordsTotal() > 0) {
- return Response.status(Response.Status.OK).entity(paginationResult).build();
- } else {
- return Response.status(Response.Status.NOT_FOUND).build();
- }
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @Path("/all")
- @GET
- @Produces("application/json")
- public Response getAllGroups() {
- try {
- GroupManagementProviderService groupManagementProviderService = DeviceMgtAPIUtils
- .getGroupManagementProviderService();
- PaginationResult paginationResult = groupManagementProviderService
- .getGroups(0, groupManagementProviderService.getGroupCount());
- if (paginationResult.getRecordsTotal() > 0) {
- return Response.status(Response.Status.OK).entity(paginationResult.getData()).build();
- } else {
- return Response.status(Response.Status.NOT_FOUND).build();
- }
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @Path("/user/{user}")
- @GET
- @Produces("application/json")
- public Response getGroups(@PathParam("user") String userName, @QueryParam("start") int startIndex,
- @QueryParam("length") int length) {
- try {
- PaginationResult paginationResult = DeviceMgtAPIUtils.getGroupManagementProviderService()
- .getGroups(userName, startIndex, length);
- if (paginationResult.getRecordsTotal() > 0) {
- return Response.status(Response.Status.OK).entity(paginationResult).build();
- } else {
- return Response.status(Response.Status.NOT_FOUND).build();
- }
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @Path("/owner/{owner}/name/{groupName}")
- @GET
- @Produces("application/json")
- public Response getGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner) {
- try {
- DeviceGroup deviceGroup = DeviceMgtAPIUtils.getGroupManagementProviderService().getGroup(groupName, owner);
- if (deviceGroup != null) {
- return Response.status(Response.Status.OK).entity(deviceGroup).build();
- } else {
- return Response.status(Response.Status.NOT_FOUND).build();
- }
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @Path("/user/{user}/search")
- @GET
- @Produces("application/json")
- public Response findGroups(@QueryParam("groupName") String groupName, @PathParam("user") String user) {
- try {
- List groups = DeviceMgtAPIUtils.getGroupManagementProviderService()
- .findInGroups(groupName, user);
- DeviceGroup[] deviceGroups = new DeviceGroup[groups.size()];
- groups.toArray(deviceGroups);
- return Response.status(Response.Status.OK).entity(deviceGroups).build();
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @Path("/user/{user}/all")
- @GET
- @Produces("application/json")
- public Response getGroups(@PathParam("user") String userName, @QueryParam("permission") String permission) {
- try {
- GroupManagementProviderService groupManagementService = DeviceMgtAPIUtils.getGroupManagementProviderService();
- List groups;
- if (permission != null) {
- groups = groupManagementService.getGroups(userName, permission);
- } else {
- groups = groupManagementService.getGroups(userName);
- }
- DeviceGroup[] deviceGroups = new DeviceGroup[groups.size()];
- groups.toArray(deviceGroups);
- return Response.status(Response.Status.OK).entity(deviceGroups).build();
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @Path("/count")
- @GET
- @Produces("application/json")
- public Response getAllGroupCount() {
- try {
- int count = DeviceMgtAPIUtils.getGroupManagementProviderService().getGroupCount();
- return Response.status(Response.Status.OK).entity(count).build();
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @Path("/user/{user}/count")
- @GET
- @Produces("application/json")
- public Response getGroupCount(@PathParam("user") String userName) {
- try {
- int count = DeviceMgtAPIUtils.getGroupManagementProviderService().getGroupCount(userName);
- return Response.status(Response.Status.OK).entity(count).build();
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @Path("/owner/{owner}/name/{groupName}/share")
- @PUT
- @Produces("application/json")
- public Response shareGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @FormParam("shareUser") String shareUser,
- @FormParam("roleName") String sharingRole) {
-
- try {
- boolean isShared = DeviceMgtAPIUtils.getGroupManagementProviderService().shareGroup(
- shareUser, groupName, owner, sharingRole);
- if (isShared) {
- return Response.status(Response.Status.OK).build();
- } else {
- return Response.status(Response.Status.NOT_FOUND).entity("Group not found").build();
- }
- } catch (UserDoesNotExistException e) {
- return Response.status(Response.Status.NOT_FOUND).entity(e.getMessage()).build();
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @Path("/owner/{owner}/name/{groupName}/unshare")
- @PUT
- @Produces("application/json")
- public Response unShareGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @FormParam("unShareUser") String unShareUser,
- @FormParam("roleName") String sharingRole) {
- try {
- boolean isUnShared = DeviceMgtAPIUtils.getGroupManagementProviderService().unshareGroup(
- unShareUser, groupName, owner, sharingRole);
- if (isUnShared) {
- return Response.status(Response.Status.OK).build();
- } else {
- return Response.status(Response.Status.NOT_FOUND).entity("Group not found").build();
- }
- } catch (UserDoesNotExistException e) {
- return Response.status(Response.Status.NOT_FOUND).entity(e.getMessage()).build();
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @Path("/owner/{owner}/name/{groupName}/share/roles/{roleName}/permissions")
- @PUT
- @Produces("application/json")
- public Response addSharing(@QueryParam("shareUser") String shareUser,
- @PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @PathParam("roleName") String roleName, String[] permissions) {
-
- try {
- boolean isAdded = DeviceMgtAPIUtils.getGroupManagementProviderService().addGroupSharingRole(
- shareUser, groupName, owner, roleName, permissions);
- if (isAdded) {
- return Response.status(Response.Status.OK).build();
- } else {
- return Response.status(Response.Status.NOT_FOUND).build();
- }
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @DELETE
- @Path("/owner/{owner}/name/{groupName}/share/roles/{roleName}/permissions")
- @Produces("application/json")
- public Response removeSharing(@QueryParam("userName") String userName,
- @PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @PathParam("roleName") String roleName) {
- try {
- boolean isRemoved = DeviceMgtAPIUtils.getGroupManagementProviderService().removeGroupSharingRole(
- groupName, owner, roleName);
- if (isRemoved) {
- return Response.status(Response.Status.OK).build();
- } else {
- return Response.status(Response.Status.NOT_FOUND).build();
- }
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @GET
- @Path("/owner/{owner}/name/{groupName}/share/roles")
- @Produces("application/json")
- public Response getRoles(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @QueryParam("userName") String userName) {
- try {
- List roles;
- if (userName != null && !userName.isEmpty()) {
- roles = DeviceMgtAPIUtils.getGroupManagementProviderService().getRoles(userName, groupName, owner);
- } else {
- roles = DeviceMgtAPIUtils.getGroupManagementProviderService().getRoles(groupName, owner);
- }
- String[] rolesArray = new String[roles.size()];
- roles.toArray(rolesArray);
- return Response.status(Response.Status.OK).entity(rolesArray).build();
- } catch (UserDoesNotExistException e) {
- return Response.status(Response.Status.NOT_FOUND).entity(e.getMessage()).build();
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @PUT
- @Path("/owner/{owner}/name/{groupName}/user/{userName}/share/roles")
- @Produces("application/json")
- public Response setRoles(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @PathParam("userName") String userName, List selectedRoles) {
- try {
- List allRoles = DeviceMgtAPIUtils.getGroupManagementProviderService().getRoles(groupName, owner);
- for (String role : allRoles) {
- if (selectedRoles.contains(role)) {
- DeviceMgtAPIUtils.getGroupManagementProviderService()
- .shareGroup(userName, groupName, owner, role);
- } else {
- DeviceMgtAPIUtils.getGroupManagementProviderService()
- .unshareGroup(userName, groupName, owner, role);
- }
- }
- return Response.status(Response.Status.OK).build();
- } catch (UserDoesNotExistException e) {
- return Response.status(Response.Status.NOT_FOUND).entity(e.getMessage()).build();
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @GET
- @Path("/owner/{owner}/name/{groupName}/users")
- @Produces("application/json")
- public Response getUsers(@PathParam("groupName") String groupName, @PathParam("owner") String owner) {
- try {
- List users = DeviceMgtAPIUtils.getGroupManagementProviderService().getUsers(
- groupName, owner);
- GroupUser[] usersArray = new GroupUser[users.size()];
- users.toArray(usersArray);
- return Response.status(Response.Status.OK).entity(usersArray).build();
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @GET
- @Path("/owner/{owner}/name/{groupName}/devices")
- @Produces("application/json")
- public Response getDevices(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @QueryParam("start") int startIdx, @QueryParam("length") int length) {
- try {
- PaginationResult paginationResult = DeviceMgtAPIUtils
- .getGroupManagementProviderService().getDevices(groupName, owner, startIdx, length);
- if (paginationResult.getRecordsTotal() > 0) {
- return Response.status(Response.Status.OK).entity(paginationResult).build();
- } else {
- return Response.status(Response.Status.NOT_FOUND).build();
- }
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @GET
- @Path("/owner/{owner}/name/{groupName}/devices/count")
- @Produces("application/json")
- public Response getDeviceCount(@PathParam("groupName") String groupName, @PathParam("owner") String owner) {
- try {
- int count = DeviceMgtAPIUtils.getGroupManagementProviderService().getDeviceCount(groupName, owner);
- return Response.status(Response.Status.OK).entity(count).build();
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @POST
- @Path("/owner/{owner}/name/{groupName}/devices")
- @Produces("application/json")
- public Response addDevice(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- DeviceIdentifier deviceIdentifier) {
- try {
- boolean isAdded = DeviceMgtAPIUtils.getGroupManagementProviderService().addDevice(
- deviceIdentifier, groupName, owner);
- if (isAdded) {
- return Response.status(Response.Status.OK).build();
- } else {
- return Response.status(Response.Status.NOT_FOUND).build();
- }
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @DELETE
- @Path("/owner/{owner}/name/{groupName}/devices/{deviceType}/{deviceId}")
- @Produces("application/json")
- public Response removeDevice(@PathParam("groupName") String groupName, @PathParam("owner") String owner,
- @PathParam("deviceId") String deviceId,
- @PathParam("deviceType") String deviceType) {
- try {
- DeviceIdentifier deviceIdentifier = new DeviceIdentifier(deviceId, deviceType);
- boolean isRemoved = DeviceMgtAPIUtils.getGroupManagementProviderService().removeDevice(
- deviceIdentifier, groupName, owner);
- if (isRemoved) {
- return Response.status(Response.Status.OK).build();
- } else {
- return Response.status(Response.Status.NOT_FOUND).build();
- }
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
- @Override
- @GET
- @Path("/owner/{owner}/name/{groupName}/users/{userName}/permissions")
- @Produces("application/json")
- public Response getPermissions(@PathParam("userName") String userName,
- @PathParam("groupName") String groupName, @PathParam("owner") String owner) {
- try {
- String[] permissions = DeviceMgtAPIUtils.getGroupManagementProviderService()
- .getPermissions(userName, groupName, owner);
- return Response.status(Response.Status.OK).entity(permissions).build();
- } catch (UserDoesNotExistException e) {
- return Response.status(Response.Status.NOT_FOUND).entity(e.getMessage()).build();
- } catch (GroupManagementException e) {
- log.error(e.getMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- }
- }
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/LicenseImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/LicenseImpl.java
deleted file mode 100644
index d4cf6ee5bc..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/LicenseImpl.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.jaxrs.api.License;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.device.mgt.common.DeviceManagementException;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-/**
- * This class represents license related operations.
- */
-@SuppressWarnings("NonJaxWsWebServices")
-public class LicenseImpl implements License {
-
- private static Log log = LogFactory.getLog(LicenseImpl.class);
-
- /**
- * This method returns the license text related to a given device type and language code.
- *
- * @param deviceType Device type, ex: android, ios
- * @param languageCode Language code, ex: en_US
- * @return Returns the license text
- */
- @GET
- @Path ("{deviceType}/{languageCode}")
- @Produces ({MediaType.APPLICATION_JSON})
- public Response getLicense(@PathParam ("deviceType") String deviceType,
- @PathParam("languageCode") String languageCode) {
-
- org.wso2.carbon.device.mgt.common.license.mgt.License license;
- ResponsePayload responsePayload;
- try {
- license = DeviceMgtAPIUtils.getDeviceManagementService().getLicense(deviceType, languageCode);
- if (license == null) {
- return Response.status(HttpStatus.SC_NOT_FOUND).build();
- }
- responsePayload = ResponsePayload.statusCode(HttpStatus.SC_OK).
- messageFromServer("License for '" + deviceType + "' was retrieved successfully").
- responseContent(license.getText()).
- build();
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while retrieving the license configured for '" + deviceType + "' device type";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- /**
- * This method is used to add license to a specific device type.
- *
- * @param deviceType Device type, ex: android, ios
- * @param license License object
- * @return Returns the acknowledgement for the action
- */
- @POST
- @Path ("{deviceType}")
- public Response addLicense(@PathParam ("deviceType") String deviceType,
- org.wso2.carbon.device.mgt.common.license.mgt.License license) {
-
- ResponsePayload responsePayload;
- try {
- DeviceMgtAPIUtils.getDeviceManagementService().addLicense(deviceType, license);
- responsePayload = ResponsePayload.statusCode(HttpStatus.SC_OK).
- messageFromServer("License added successfully for '" + deviceType + "' device type").
- build();
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while adding license for '" + deviceType + "' device type";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/OperationImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/OperationImpl.java
deleted file mode 100644
index 072ec2c666..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/OperationImpl.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.common.operation.mgt.Activity;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
-import org.wso2.carbon.device.mgt.jaxrs.api.context.DeviceOperationContext;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.MDMIOSOperationUtil;
-import org.wso2.carbon.device.mgt.jaxrs.beans.ApplicationWrapper;
-import org.wso2.carbon.device.mgt.jaxrs.beans.MobileApp;
-import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
-import org.wso2.carbon.device.mgt.common.PaginationRequest;
-import org.wso2.carbon.device.mgt.common.PaginationResult;
-import org.wso2.carbon.device.mgt.common.Platform;
-import org.wso2.carbon.device.mgt.common.app.mgt.Application;
-import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
-import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
-import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
-import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderService;
-import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.MDMAndroidOperationUtil;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Response;
-import java.util.List;
-
-/**
- * Operation related REST-API implementation.
- */
-@SuppressWarnings("NonJaxWsWebServices")
-@Produces({"application/json", "application/xml"})
-@Consumes({"application/json", "application/xml"})
-public class OperationImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Operation {
-
- private static Log log = LogFactory.getLog(OperationImpl.class);
-
- /* @deprecated */
- @Override
- @GET
- public Response getAllOperations() {
- List extends org.wso2.carbon.device.mgt.common.operation.mgt.Operation> operations;
- DeviceManagementProviderService dmService;
- try {
- dmService = DeviceMgtAPIUtils.getDeviceManagementService();
- operations = dmService.getOperations(null);
- } catch (OperationManagementException e) {
- String msg = "Error occurred while fetching the operations for the device.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- return Response.status(Response.Status.OK).entity(operations).build();
- }
-
- @Override
- @GET
- @Path("paginate/{type}/{id}")
- public Response getDeviceOperations(@PathParam("type") String type, @PathParam("id") String id,
- @QueryParam("start") int startIdx, @QueryParam("length") int length,
- @QueryParam("search") String search) {
- PaginationResult operations;
- DeviceManagementProviderService dmService;
- DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- PaginationRequest paginationRequest = new PaginationRequest(startIdx, length);
- try {
- deviceIdentifier.setType(type);
- deviceIdentifier.setId(id);
- dmService = DeviceMgtAPIUtils.getDeviceManagementService();
- operations = dmService.getOperations(deviceIdentifier, paginationRequest);
- } catch (OperationManagementException e) {
- String msg = "Error occurred while fetching the operations for the device.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- return Response.status(Response.Status.OK).entity(operations).build();
- }
-
- @Override
- @GET
- @Path("{type}/{id}")
- public Response getAllDeviceOperations(@PathParam("type") String type, @PathParam("id") String id) {
- List extends org.wso2.carbon.device.mgt.common.operation.mgt.Operation> operations;
- DeviceManagementProviderService dmService;
- DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- try {
- deviceIdentifier.setType(type);
- deviceIdentifier.setId(id);
- dmService = DeviceMgtAPIUtils.getDeviceManagementService();
- operations = dmService.getOperations(deviceIdentifier);
- } catch (OperationManagementException e) {
- String msg = "Error occurred while fetching the operations for the device.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- return Response.status(Response.Status.OK).entity(operations).build();
- }
-
- /* @deprecated */
- @Override
- @POST
- public Response addOperation(DeviceOperationContext operationContext) {
- DeviceManagementProviderService dmService;
- ResponsePayload responseMsg = new ResponsePayload();
- try {
- dmService = DeviceMgtAPIUtils.getDeviceManagementService();
-
- //TODO: Fix this properly later adding device type to be passed in when the task manage executes "addOperations()"
- String type = null;
- List deviceIdentifiers = operationContext.getDevices();
- if (deviceIdentifiers.size() > 0) {
- type = deviceIdentifiers.get(0).getType();
- }
- Activity activity = dmService.addOperation(type, operationContext.getOperation(), operationContext.getDevices());
- if (activity != null) {
- responseMsg.setStatusCode(HttpStatus.SC_CREATED);
- responseMsg.setMessageFromServer("Operation has added successfully.");
- }
- return Response.status(Response.Status.CREATED).entity(activity).build();
- } catch (OperationManagementException e) {
- String msg = "Error occurred while saving the operation";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- @Override
- @GET
- @Path("{type}/{id}/apps")
- public Response getInstalledApps(@PathParam("type") String type, @PathParam("id") String id) {
- List applications;
- ApplicationManagementProviderService appManagerConnector;
- DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- try {
- deviceIdentifier.setType(type);
- deviceIdentifier.setId(id);
- appManagerConnector = DeviceMgtAPIUtils.getAppManagementService();
- applications = appManagerConnector.getApplicationListForDevice(deviceIdentifier);
- } catch (ApplicationManagementException e) {
- String msg = "Error occurred while fetching the apps of the device.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- return Response.status(Response.Status.CREATED).entity(applications).build();
- }
-
- @Override
- @POST
- @Path("installApp/{tenantDomain}")
- public Response installApplication(ApplicationWrapper applicationWrapper,
- @PathParam("tenantDomain") String tenantDomain) {
- ResponsePayload responseMsg = new ResponsePayload();
- ApplicationManager appManagerConnector;
- org.wso2.carbon.device.mgt.common.operation.mgt.Operation operation = null;
- Activity activity = null;
- try {
- appManagerConnector = DeviceMgtAPIUtils.getAppManagementService();
- MobileApp mobileApp = applicationWrapper.getApplication();
-
- if (applicationWrapper.getDeviceIdentifiers() != null) {
- for (DeviceIdentifier deviceIdentifier : applicationWrapper.getDeviceIdentifiers()) {
- if (deviceIdentifier.getType().equals(Platform.android.toString())) {
- operation = MDMAndroidOperationUtil.createInstallAppOperation(mobileApp);
- } else if (deviceIdentifier.getType().equals(Platform.ios.toString())) {
- operation = MDMIOSOperationUtil.createInstallAppOperation(mobileApp);
- }
- }
- activity = appManagerConnector.installApplicationForDevices(operation, applicationWrapper.getDeviceIdentifiers());
- }
- responseMsg.setStatusCode(HttpStatus.SC_CREATED);
- responseMsg.setMessageFromServer("Authentication installation request has been sent to the device.");
- return Response.status(Response.Status.CREATED).entity(activity).build();
- } catch (ApplicationManagementException | MDMAPIException e) {
- String msg = "Error occurred while saving the operation";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- @Override
- @POST
- @Path("uninstallApp/{tenantDomain}")
- public Response uninstallApplication(ApplicationWrapper applicationWrapper,
- @PathParam("tenantDomain") String tenantDomain) {
- ResponsePayload responseMsg = new ResponsePayload();
- ApplicationManager appManagerConnector;
- org.wso2.carbon.device.mgt.common.operation.mgt.Operation operation = null;
- Activity activity = null;
- try {
- appManagerConnector = DeviceMgtAPIUtils.getAppManagementService();
- MobileApp mobileApp = applicationWrapper.getApplication();
-
- if (applicationWrapper.getDeviceIdentifiers() != null) {
- for (DeviceIdentifier deviceIdentifier : applicationWrapper.getDeviceIdentifiers()) {
- if (deviceIdentifier.getType().equals(Platform.android.toString())) {
- operation = MDMAndroidOperationUtil.createAppUninstallOperation(mobileApp);
- } else if (deviceIdentifier.getType().equals(Platform.ios.toString())) {
- operation = MDMIOSOperationUtil.createAppUninstallOperation(mobileApp);
- }
- }
- activity = appManagerConnector.installApplicationForDevices(operation, applicationWrapper.getDeviceIdentifiers());
- }
- responseMsg.setStatusCode(HttpStatus.SC_CREATED);
- responseMsg.setMessageFromServer("Authentication removal request has been sent to the device.");
- return Response.status(Response.Status.CREATED).entity(activity).build();
- } catch (ApplicationManagementException | MDMAPIException e) {
- String msg = "Error occurred while saving the operation";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- @Override
- @GET
- @Path("activity/{id}")
- public Response getActivity( @PathParam("id") String id)
- throws MDMAPIException {
- org.wso2.carbon.device.mgt.common.operation.mgt.Operation operation;
- DeviceManagementProviderService dmService;
- try {
- dmService = DeviceMgtAPIUtils.getDeviceManagementService();
- operation = dmService.getOperationByActivityId(id);
- } catch (OperationManagementException e) {
- String msg = "Error occurred while fetching the activity for the supplied id.";
- log.error(msg, e);
- throw new MDMAPIException(msg, e);
- }
- return Response.status(Response.Status.OK).entity(operation).build();
- }
-
-}
\ No newline at end of file
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/PolicyImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/PolicyImpl.java
deleted file mode 100644
index a06e986d12..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/PolicyImpl.java
+++ /dev/null
@@ -1,501 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.device.mgt.common.Device;
-import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationException;
-import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationService;
-import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroup;
-import org.wso2.carbon.device.mgt.common.group.mgt.GroupManagementException;
-import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
-import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.device.mgt.jaxrs.beans.PriorityUpdatedPolicyWrapper;
-import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtUtil;
-import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload;
-import org.wso2.carbon.device.mgt.jaxrs.beans.PolicyWrapper;
-import org.wso2.carbon.policy.mgt.common.DeviceGroupWrapper;
-import org.wso2.carbon.policy.mgt.common.PolicyAdministratorPoint;
-import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
-import org.wso2.carbon.policy.mgt.common.PolicyMonitoringTaskException;
-import org.wso2.carbon.policy.mgt.common.monitor.ComplianceData;
-import org.wso2.carbon.policy.mgt.common.monitor.PolicyComplianceException;
-import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
-import org.wso2.carbon.policy.mgt.core.task.TaskScheduleService;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.util.ArrayList;
-import java.util.List;
-
-@SuppressWarnings("NonJaxWsWebServices")
-public class PolicyImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Policy {
- private static Log log = LogFactory.getLog(PolicyImpl.class);
-
- @Override
- @POST
- @Path("inactive-policy")
- public Response addPolicy(PolicyWrapper policyWrapper) {
-
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- ResponsePayload responseMsg = new ResponsePayload();
- org.wso2.carbon.policy.mgt.common.Policy policy = new org.wso2.carbon.policy.mgt.common.Policy();
- policy.setPolicyName(policyWrapper.getPolicyName());
- policy.setProfileId(policyWrapper.getProfileId());
- policy.setDescription(policyWrapper.getDescription());
- policy.setProfile(DeviceMgtUtil.convertProfile(policyWrapper.getProfile()));
- policy.setOwnershipType(policyWrapper.getOwnershipType());
- policy.setRoles(policyWrapper.getRoles());
- policy.setUsers(policyWrapper.getUsers());
- policy.setTenantId(policyWrapper.getTenantId());
- policy.setCompliance(policyWrapper.getCompliance());
-
- return addPolicy(policyManagementService, responseMsg, policy);
- }
-
- @Override
- @POST
- @Path("active-policy")
- public Response addActivePolicy(PolicyWrapper policyWrapper) {
-
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- ResponsePayload responseMsg = new ResponsePayload();
- org.wso2.carbon.policy.mgt.common.Policy policy = new org.wso2.carbon.policy.mgt.common.Policy();
- policy.setPolicyName(policyWrapper.getPolicyName());
- policy.setProfileId(policyWrapper.getProfileId());
- policy.setDescription(policyWrapper.getDescription());
- policy.setProfile(DeviceMgtUtil.convertProfile(policyWrapper.getProfile()));
- policy.setOwnershipType(policyWrapper.getOwnershipType());
- policy.setRoles(policyWrapper.getRoles());
- policy.setUsers(policyWrapper.getUsers());
- policy.setTenantId(policyWrapper.getTenantId());
- policy.setCompliance(policyWrapper.getCompliance());
- policy.setActive(true);
-
- return addPolicy(policyManagementService, responseMsg, policy);
- }
-
- private Response addPolicy(PolicyManagerService policyManagementService, ResponsePayload responseMsg,
- org.wso2.carbon.policy.mgt.common.Policy policy) {
- List devices = policy.getDevices();
- if (devices != null && devices.size() == 1) {
- DeviceAccessAuthorizationService deviceAccessAuthorizationService = DeviceManagementDataHolder.getInstance().getDeviceAccessAuthorizationService();
- DeviceIdentifier deviceIdentifier = new DeviceIdentifier(devices.get(0).getDeviceIdentifier(), devices.get(0).getType());
- PrivilegedCarbonContext threadLocalCarbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
- String username = threadLocalCarbonContext.getUsername();
- try {
- if (!deviceAccessAuthorizationService.isUserAuthorized(deviceIdentifier, username)) {
- return Response.status(Response.Status.UNAUTHORIZED).build();
- }
- } catch (DeviceAccessAuthorizationException e) {
- String msg = "Device access authorization exception";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
- try {
- PolicyAdministratorPoint pap = policyManagementService.getPAP();
- pap.addPolicy(policy);
- responseMsg.setStatusCode(HttpStatus.SC_CREATED);
- responseMsg.setMessageFromServer("Policy has been added successfully.");
- return Response.status(Response.Status.CREATED).entity(responseMsg).build();
- } catch (PolicyManagementException e) {
- String msg = "Policy Management related exception";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- @Override
- @GET
- @Produces({MediaType.APPLICATION_JSON})
- public Response getAllPolicies() {
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- List policies;
- try {
- PolicyAdministratorPoint policyAdministratorPoint = policyManagementService.getPAP();
- policies = policyAdministratorPoint.getPolicies();
- } catch (PolicyManagementException e) {
- String msg = "Policy Management related exception";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("Sending all retrieved device policies.");
- responsePayload.setResponseContent(policies);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- @Override
- @GET
- @Produces({MediaType.APPLICATION_JSON})
- @Path("{id}")
- public Response getPolicy(@PathParam("id") int policyId) {
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- final org.wso2.carbon.policy.mgt.common.Policy policy;
- try {
- PolicyAdministratorPoint policyAdministratorPoint = policyManagementService.getPAP();
- policy = policyAdministratorPoint.getPolicy(policyId);
- } catch (PolicyManagementException e) {
- String msg = "Policy Management related exception";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- if (policy == null){
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_NOT_FOUND);
- responsePayload.setMessageFromServer("Policy for ID " + policyId + " not found.");
- return Response.status(Response.Status.NOT_FOUND).entity(responsePayload).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("Sending all retrieved device policies.");
- responsePayload.setResponseContent(policy);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- @Override
- @GET
- @Path("count")
- public Response getPolicyCount() {
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- try {
- PolicyAdministratorPoint policyAdministratorPoint = policyManagementService.getPAP();
- Integer count = policyAdministratorPoint.getPolicyCount();
- return Response.status(Response.Status.OK).entity(count).build();
- } catch (PolicyManagementException e) {
- String msg = "Policy Management related exception";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- @Override
- @PUT
- @Path("{id}")
- public Response updatePolicy(PolicyWrapper policyWrapper, @PathParam("id") int policyId) {
-
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- ResponsePayload responseMsg = new ResponsePayload();
- org.wso2.carbon.policy.mgt.common.Policy policy = new org.wso2.carbon.policy.mgt.common.Policy();
- policy.setPolicyName(policyWrapper.getPolicyName());
- policy.setId(policyId);
- policy.setProfileId(policyWrapper.getProfileId());
- policy.setDescription(policyWrapper.getDescription());
- policy.setProfile(DeviceMgtUtil.convertProfile(policyWrapper.getProfile()));
- policy.setOwnershipType(policyWrapper.getOwnershipType());
- policy.setRoles(policyWrapper.getRoles());
- policy.setUsers(policyWrapper.getUsers());
- policy.setTenantId(policyWrapper.getTenantId());
- policy.setCompliance(policyWrapper.getCompliance());
-
- try {
- PolicyAdministratorPoint pap = policyManagementService.getPAP();
- pap.updatePolicy(policy);
- responseMsg.setStatusCode(HttpStatus.SC_CREATED);
- responseMsg.setMessageFromServer("Policy has been updated successfully.");
- return Response.status(Response.Status.CREATED).entity(responseMsg).build();
- } catch (PolicyManagementException e) {
- String msg = "Policy Management related exception in policy update.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- @Override
- @PUT
- @Path("priorities")
- @Consumes({MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_JSON})
- public Response updatePolicyPriorities(List priorityUpdatedPolicies) {
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- List policiesToUpdate =
- new ArrayList<>(priorityUpdatedPolicies.size());
- int i;
- for (i = 0; i < priorityUpdatedPolicies.size(); i++) {
- org.wso2.carbon.policy.mgt.common.Policy policyObj = new org.wso2.carbon.policy.mgt.common.Policy();
- policyObj.setId(priorityUpdatedPolicies.get(i).getId());
- policyObj.setPriorityId(priorityUpdatedPolicies.get(i).getPriority());
- policiesToUpdate.add(policyObj);
- }
- boolean policiesUpdated;
- try {
- PolicyAdministratorPoint pap = policyManagementService.getPAP();
- policiesUpdated = pap.updatePolicyPriorities(policiesToUpdate);
- } catch (PolicyManagementException e) {
- String msg = "Exception in updating policy priorities.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- if (policiesUpdated) {
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("Policy Priorities successfully updated.");
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- } else {
- responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST);
- responsePayload.setMessageFromServer("Policy priorities did not update. Bad Request.");
- return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build();
- }
- }
-
- @Override
- @POST
- @Path("bulk-remove")
- @Consumes("application/json")
- @Produces("application/json")
- public Response bulkRemovePolicy(List policyIds) {
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- boolean policyDeleted = true;
- try {
- PolicyAdministratorPoint pap = policyManagementService.getPAP();
- for(int i : policyIds) {
- org.wso2.carbon.policy.mgt.common.Policy policy = pap.getPolicy(i);
- if(!pap.deletePolicy(policy)){
- policyDeleted = false;
- }
- }
- } catch (PolicyManagementException e) {
- String msg = "Exception in deleting policies.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- if (policyDeleted) {
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("Policies have been successfully deleted.");
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- } else {
- responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST);
- responsePayload.setMessageFromServer("Policy does not exist.");
- return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build();
- }
- }
-
- @Override
- @PUT
- @Produces("application/json")
- @Path("activate")
- public Response activatePolicy(List policyIds) {
- try {
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- PolicyAdministratorPoint pap = policyManagementService.getPAP();
- for(int i : policyIds) {
- pap.activatePolicy(i);
- }
- } catch (PolicyManagementException e) {
- String msg = "Exception in activating policies.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
-
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("Selected policies have been successfully activated.");
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- @Override
- @PUT
- @Produces("application/json")
- @Path("inactivate")
- public Response inactivatePolicy(List policyIds) throws MDMAPIException {
-
- try {
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- PolicyAdministratorPoint pap = policyManagementService.getPAP();
- for(int i : policyIds) {
- pap.inactivatePolicy(i);
- }
- } catch (PolicyManagementException e) {
- String msg = "Exception in inactivating policies.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("Selected policies have been successfully inactivated.");
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- @Override
- @PUT
- @Produces("application/json")
- @Path("apply-changes")
- public Response applyChanges() {
-
- try {
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- PolicyAdministratorPoint pap = policyManagementService.getPAP();
- pap.publishChanges();
-
-
- } catch (PolicyManagementException e) {
- String msg = "Exception in applying changes.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("Changes have been successfully updated.");
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- @Override
- @GET
- @Path("start-task/{milliseconds}")
- public Response startTaskService(@PathParam("milliseconds") int monitoringFrequency) {
-
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- try {
- TaskScheduleService taskScheduleService = policyManagementService.getTaskScheduleService();
- taskScheduleService.startTask(monitoringFrequency);
-
-
- } catch (PolicyMonitoringTaskException e) {
- String msg = "Policy Management related exception.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("Policy monitoring service started successfully.");
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- @Override
- @GET
- @Path("update-task/{milliseconds}")
- public Response updateTaskService(@PathParam("milliseconds") int monitoringFrequency) {
-
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- try {
- TaskScheduleService taskScheduleService = policyManagementService.getTaskScheduleService();
- taskScheduleService.updateTask(monitoringFrequency);
-
- } catch (PolicyMonitoringTaskException e) {
- String msg = "Policy Management related exception.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("Policy monitoring service updated successfully.");
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- @Override
- @GET
- @Path("stop-task")
- public Response stopTaskService() {
-
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- try {
- TaskScheduleService taskScheduleService = policyManagementService.getTaskScheduleService();
- taskScheduleService.stopTask();
-
- } catch (PolicyMonitoringTaskException e) {
- String msg = "Policy Management related exception.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("Policy monitoring service stopped successfully.");
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- @Override
- @GET
- @Path("{type}/{id}")
- public Response getComplianceDataOfDevice(@PathParam("type") String type, @PathParam("id") String id) {
- try {
- DeviceIdentifier deviceIdentifier = DeviceMgtAPIUtils.instantiateDeviceIdentifier(type, id);
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- ComplianceData complianceData = policyManagementService.getDeviceCompliance(deviceIdentifier);
- return Response.status(Response.Status.OK).entity(complianceData).build();
- } catch (PolicyComplianceException e) {
- String msg = "Error occurred while getting the compliance data.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- @Override
- @GET
- @Path("{type}/{id}/active-policy")
- public Response getDeviceActivePolicy(@PathParam("type") String type, @PathParam("id") String id) {
- try {
- DeviceIdentifier deviceIdentifier = DeviceMgtAPIUtils.instantiateDeviceIdentifier(type, id);
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- org.wso2.carbon.policy.mgt.common.Policy policy = policyManagementService
- .getAppliedPolicyToDevice(deviceIdentifier);
- return Response.status(Response.Status.OK).entity(policy).build();
- } catch (PolicyManagementException e) {
- String msg = "Error occurred while getting the current policy.";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- @GET
- @Path("/device-group/{user}")
- public Response getDeviceGroupsRelatedToPolicies(@PathParam("user") String userName) {
- try {
- List groupWrappers = new ArrayList<>();
- GroupManagementProviderService service = DeviceMgtAPIUtils.getGroupManagementProviderService();
- List deviceGroups = service.getGroups(userName);
- int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
- for (DeviceGroup dg : deviceGroups) {
- DeviceGroupWrapper gw = new DeviceGroupWrapper();
- gw.setId(dg.getId());
- gw.setOwner(dg.getOwner());
- gw.setName(dg.getName());
- gw.setTenantId(tenantId);
- groupWrappers.add(gw);
- }
-
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("Sending all retrieved device groups.");
- responsePayload.setResponseContent(groupWrappers);
- return Response.status(HttpStatus.SC_OK).entity(groupWrappers).build();
-
- } catch (GroupManagementException e) {
- String error = "Error occurred while getting the groups related to users for policy.";
- log.error(error, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(error).build();
- }
- }
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/ProfileImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/ProfileImpl.java
deleted file mode 100644
index 80fa8c1349..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/ProfileImpl.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.jaxrs.api.Profile;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload;
-import org.wso2.carbon.policy.mgt.common.PolicyAdministratorPoint;
-import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
-import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
-
-import javax.ws.rs.DELETE;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.Response;
-
-@SuppressWarnings("NonJaxWsWebServices")
-public class ProfileImpl implements Profile{
- private static Log log = LogFactory.getLog(ProfileImpl.class);
-
- @POST
- public Response addProfile(org.wso2.carbon.policy.mgt.common.Profile profile) {
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- try {
- PolicyAdministratorPoint pap = policyManagementService.getPAP();
- profile = pap.addProfile(profile);
- return Response.status(Response.Status.OK).entity(profile).build();
- } catch (PolicyManagementException e) {
- String msg = "Policy Management related exception";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
- @POST
- @Path("{id}")
- public Response updateProfile(org.wso2.carbon.policy.mgt.common.Profile profile,
- @PathParam("id") String profileId) {
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- ResponsePayload responseMsg = new ResponsePayload();
- try {
- PolicyAdministratorPoint pap = policyManagementService.getPAP();
- pap.updateProfile(profile);
- responseMsg.setMessageFromServer("Profile has been updated successfully.");
- return Response.status(Response.Status.OK).entity(responseMsg).build();
- } catch (PolicyManagementException e) {
- String msg = "Policy Management related exception";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
- @DELETE
- @Path("{id}")
- public Response deleteProfile(@PathParam("id") int profileId) {
- PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
- ResponsePayload responseMsg = new ResponsePayload();
- try {
- PolicyAdministratorPoint pap = policyManagementService.getPAP();
- org.wso2.carbon.policy.mgt.common.Profile profile = pap.getProfile(profileId);
- pap.deleteProfile(profile);
- responseMsg.setMessageFromServer("Profile has been deleted successfully.");
- return Response.status(Response.Status.OK).entity(responseMsg).build();
- } catch (PolicyManagementException e) {
- String msg = "Policy Management related exception";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/UserImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/UserImpl.java
deleted file mode 100644
index 9d70f40848..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/UserImpl.java
+++ /dev/null
@@ -1,763 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.context.CarbonContext;
-import org.wso2.carbon.device.mgt.common.DeviceManagementException;
-import org.wso2.carbon.device.mgt.common.PaginationRequest;
-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.api.common.MDMAPIException;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.CredentialManagementResponseBuilder;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload;
-import org.wso2.carbon.device.mgt.jaxrs.beans.UserCredentialWrapper;
-import org.wso2.carbon.device.mgt.jaxrs.beans.UserWrapper;
-import org.wso2.carbon.device.mgt.jaxrs.util.Constants;
-import org.wso2.carbon.device.mgt.jaxrs.util.SetReferenceTransformer;
-import org.wso2.carbon.user.api.UserStoreException;
-import org.wso2.carbon.user.api.UserStoreManager;
-import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Random;
-
-/**
- * This class represents the JAX-RS services of User related functionality.
- */
-@SuppressWarnings("NonJaxWsWebServices")
-public class UserImpl implements org.wso2.carbon.device.mgt.jaxrs.api.User {
-
- private static final String ROLE_EVERYONE = "Internal/everyone";
- private static Log log = LogFactory.getLog(UserImpl.class);
-
- /**
- * Method to add user to emm-user-store.
- *
- * @param userWrapper Wrapper object representing input json payload
- * @return {Response} Status of the request wrapped inside Response object
- */
- @Override
- @POST
- @Consumes({MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_JSON})
- public Response addUser(UserWrapper userWrapper) {
- ResponsePayload responsePayload = new ResponsePayload();
- try {
- UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- if (userStoreManager.isExistingUser(userWrapper.getUsername())) {
- // if user already exists
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + userWrapper.getUsername() +
- " already exists. Therefore, request made to add user was refused.");
- }
- // returning response with bad request state
- responsePayload.setStatusCode(HttpStatus.SC_CONFLICT);
- responsePayload.
- setMessageFromServer("User by username: " + userWrapper.getUsername() +
- " already exists. Therefore, request made to add user was refused.");
- return Response.status(Response.Status.CONFLICT).entity(responsePayload).build();
- } else {
- String initialUserPassword = generateInitialUserPassword();
- Map defaultUserClaims =
- buildDefaultUserClaims(userWrapper.getFirstname(), userWrapper.getLastname(),
- userWrapper.getEmailAddress());
- // calling addUser method of carbon user api
- userStoreManager.addUser(userWrapper.getUsername(), initialUserPassword,
- userWrapper.getRoles(), defaultUserClaims, null);
- // invite newly added user to enroll device
- inviteNewlyAddedUserToEnrollDevice(userWrapper.getUsername(), initialUserPassword);
- // Outputting debug message upon successful addition of user
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + userWrapper.getUsername() + " was successfully added.");
- }
- // returning response with success state
- responsePayload.setStatusCode(HttpStatus.SC_CREATED);
- responsePayload.setMessageFromServer("User by username: " + userWrapper.getUsername() +
- " was successfully added.");
- return Response.status(Response.Status.CREATED).entity(responsePayload).build();
- }
- } catch (UserStoreException | MDMAPIException e) {
- String msg = "Exception in trying to add user by username: " + userWrapper.getUsername();
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * Method to get user information from emm-user-store.
- *
- * @param username User-name of the user
- * @return {Response} Status of the request wrapped inside Response object.
- */
- @Override
- @GET
- @Path("view")
- @Produces({MediaType.APPLICATION_JSON})
- public Response getUser(@QueryParam("username") String username) {
- ResponsePayload responsePayload = new ResponsePayload();
- try {
- UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- if (userStoreManager.isExistingUser(username)) {
- UserWrapper user = new UserWrapper();
- user.setUsername(username);
- user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS));
- user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME));
- user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME));
- // Outputting debug message upon successful retrieval of user
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + username + " was found.");
- }
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("User information was retrieved successfully.");
- responsePayload.setResponseContent(user);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- } else {
- // Outputting debug message upon trying to remove non-existing user
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + username + " does not exist.");
- }
- // returning response with bad request state
- responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST);
- responsePayload.setMessageFromServer(
- "User by username: " + username + " does not exist.");
- return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build();
- }
- } catch (UserStoreException | MDMAPIException e) {
- String msg = "Exception in trying to retrieve user by username: " + username;
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * Update user in user store
- *
- * @param userWrapper Wrapper object representing input json payload
- * @return {Response} Status of the request wrapped inside Response object.
- */
- @Override
- @PUT
- @Consumes({MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_JSON})
- public Response updateUser(UserWrapper userWrapper, @QueryParam("username") String username) {
- ResponsePayload responsePayload = new ResponsePayload();
- try {
- UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- if (userStoreManager.isExistingUser(userWrapper.getUsername())) {
- Map defaultUserClaims =
- buildDefaultUserClaims(userWrapper.getFirstname(), userWrapper.getLastname(),
- userWrapper.getEmailAddress());
- if (StringUtils.isNotEmpty(userWrapper.getPassword())) {
- // Decoding Base64 encoded password
- byte[] decodedBytes = Base64.decodeBase64(userWrapper.getPassword());
- userStoreManager.updateCredentialByAdmin(userWrapper.getUsername(),
- new String(decodedBytes, "UTF-8"));
- log.debug("User credential of username: " + userWrapper.getUsername() + " has been changed");
- }
- List currentRoles = getFilteredRoles(userStoreManager, userWrapper.getUsername());
- List newRoles = Arrays.asList(userWrapper.getRoles());
-
- List rolesToAdd = new ArrayList<>(newRoles);
- List rolesToDelete = new ArrayList<>();
-
- for (String role : currentRoles) {
- if (newRoles.contains(role)) {
- rolesToAdd.remove(role);
- } else {
- rolesToDelete.add(role);
- }
- }
- rolesToDelete.remove(ROLE_EVERYONE);
- userStoreManager.updateRoleListOfUser(userWrapper.getUsername(),
- rolesToDelete.toArray(new String[rolesToDelete.size()]),
- rolesToAdd.toArray(new String[rolesToAdd.size()]));
- userStoreManager.setUserClaimValues(userWrapper.getUsername(), defaultUserClaims, null);
- // Outputting debug message upon successful addition of user
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + userWrapper.getUsername() + " was successfully updated.");
- }
- // returning response with success state
- responsePayload.setStatusCode(HttpStatus.SC_CREATED);
- responsePayload.setMessageFromServer("User by username: " + userWrapper.getUsername() +
- " was successfully updated.");
- return Response.status(Response.Status.CREATED).entity(responsePayload).build();
- } else {
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + userWrapper.getUsername() +
- " doesn't exists. Therefore, request made to update user was refused.");
- }
- // returning response with bad request state
- responsePayload.setStatusCode(HttpStatus.SC_CONFLICT);
- responsePayload.
- setMessageFromServer("User by username: " + userWrapper.getUsername() +
- " doesn't exists. Therefore, request made to update user was refused.");
- return Response.status(Response.Status.CONFLICT).entity(responsePayload).build();
- }
- } catch (UserStoreException | UnsupportedEncodingException | MDMAPIException e) {
- String msg = "Exception in trying to update user by username: " + userWrapper.getUsername();
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * Private method to be used by addUser() to
- * generate an initial user password for a user.
- * This will be the password used by a user for his initial login to the system.
- *
- * @return {string} Initial User Password
- */
- private String generateInitialUserPassword() {
- int passwordLength = 6;
- //defining the pool of characters to be used for initial password generation
- String lowerCaseCharset = "abcdefghijklmnopqrstuvwxyz";
- String upperCaseCharset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- String numericCharset = "0123456789";
- Random randomGenerator = new Random();
- String totalCharset = lowerCaseCharset + upperCaseCharset + numericCharset;
- int totalCharsetLength = totalCharset.length();
- StringBuilder initialUserPassword = new StringBuilder();
- for (int i = 0; i < passwordLength; i++) {
- initialUserPassword
- .append(totalCharset.charAt(randomGenerator.nextInt(totalCharsetLength)));
- }
- if (log.isDebugEnabled()) {
- log.debug("Initial user password is created for new user: " + initialUserPassword);
- }
- return initialUserPassword.toString();
- }
-
- /**
- * Method to build default user claims.
- *
- * @param firstname First name of the user
- * @param lastname Last name of the user
- * @param emailAddress Email address of the user
- * @return {Object} Default user claims to be provided
- */
- private Map buildDefaultUserClaims(String firstname, String lastname, String emailAddress) {
- Map defaultUserClaims = new HashMap<>();
- defaultUserClaims.put(Constants.USER_CLAIM_FIRST_NAME, firstname);
- defaultUserClaims.put(Constants.USER_CLAIM_LAST_NAME, lastname);
- defaultUserClaims.put(Constants.USER_CLAIM_EMAIL_ADDRESS, emailAddress);
- if (log.isDebugEnabled()) {
- log.debug("Default claim map is created for new user: " + defaultUserClaims.toString());
- }
- return defaultUserClaims;
- }
-
- /**
- * Method to remove user from emm-user-store.
- *
- * @param username Username of the user
- * @return {Response} Status of the request wrapped inside Response object.
- */
- @Override
- @DELETE
- @Produces({MediaType.APPLICATION_JSON})
- public Response removeUser(@QueryParam("username") String username) {
- ResponsePayload responsePayload = new ResponsePayload();
- try {
- UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- if (userStoreManager.isExistingUser(username)) {
- // if user already exists, trying to remove user
- userStoreManager.deleteUser(username);
- // Outputting debug message upon successful removal of user
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + username + " was successfully removed.");
- }
- // returning response with success state
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer(
- "User by username: " + username + " was successfully removed.");
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- } else {
- // Outputting debug message upon trying to remove non-existing user
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + username + " does not exist for removal.");
- }
- // returning response with bad request state
- responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST);
- responsePayload.setMessageFromServer(
- "User by username: " + username + " does not exist for removal.");
- return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build();
- }
- } catch (UserStoreException | MDMAPIException e) {
- String msg = "Exception in trying to remove user by username: " + username;
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * get all the roles except for the internal/xxx and application/xxx
- *
- * @param userStoreManager User Store Manager associated with the currently logged in user
- * @param username Username of the currently logged in user
- * @return the list of filtered roles
- */
- private List getFilteredRoles(UserStoreManager userStoreManager, String username) {
- String[] roleListOfUser = new String[0];
- try {
- roleListOfUser = userStoreManager.getRoleListOfUser(username);
- } catch (UserStoreException e) {
- e.printStackTrace();
- }
- List filteredRoles = new ArrayList<>();
- for (String role : roleListOfUser) {
- if (!(role.startsWith("Internal/") || role.startsWith("Authentication/"))) {
- filteredRoles.add(role);
- }
- }
- return filteredRoles;
- }
-
- /**
- * Get user's roles by username
- *
- * @param username Username of the user
- * @return {Response} Status of the request wrapped inside Response object.
- */
- @Override
- @GET
- @Path("roles")
- @Produces({MediaType.APPLICATION_JSON})
- public Response getRolesOfUser(@QueryParam("username") String username) {
- ResponsePayload responsePayload = new ResponsePayload();
- try {
- UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- if (userStoreManager.isExistingUser(username)) {
- responsePayload.setResponseContent(Collections.singletonList(getFilteredRoles(userStoreManager, username)));
- // Outputting debug message upon successful removal of user
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + username + " was successfully removed.");
- }
- // returning response with success state
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer(
- "User roles obtained for user " + username);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- } else {
- // Outputting debug message upon trying to remove non-existing user
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + username + " does not exist for role retrieval.");
- }
- // returning response with bad request state
- responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST);
- responsePayload.setMessageFromServer(
- "User by username: " + username + " does not exist for role retrieval.");
- return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build();
- }
- } catch (UserStoreException | MDMAPIException e) {
- String msg = "Exception in trying to retrieve roles for user by username: " + username;
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * Get the list of all users with all user-related info.
- *
- * @return A list of users
- */
- @Override
- @GET
- @Produces({MediaType.APPLICATION_JSON})
- public Response getAllUsers() {
- if (log.isDebugEnabled()) {
- log.debug("Getting the list of users with all user-related information");
- }
- List userList;
- try {
- UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- String[] users = userStoreManager.listUsers("*", -1);
- userList = new ArrayList<>(users.length);
- UserWrapper user;
- for (String username : users) {
- user = new UserWrapper();
- user.setUsername(username);
- user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS));
- user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME));
- user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME));
- userList.add(user);
- }
- } catch (UserStoreException | MDMAPIException e) {
- String msg = "Error occurred while retrieving the list of users";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- int count;
- count = userList.size();
- responsePayload.setMessageFromServer("All users were successfully retrieved. " +
- "Obtained user count: " + count);
- responsePayload.setResponseContent(userList);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- /**
- * Get the list of all users with all user-related info.
- *
- * @return A list of users
- */
- @Override
- @GET
- @Path("{filter}")
- @Produces({MediaType.APPLICATION_JSON})
- public Response getMatchingUsers(@PathParam("filter") String filter) {
- if (log.isDebugEnabled()) {
- log.debug("Getting the list of users with all user-related information using the filter : " + filter);
- }
- List userList;
- try {
- UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- String[] users = userStoreManager.listUsers(filter + "*", -1);
- userList = new ArrayList<>(users.length);
- UserWrapper user;
- for (String username : users) {
- user = new UserWrapper();
- user.setUsername(username);
- user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS));
- user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME));
- user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME));
- userList.add(user);
- }
- } catch (UserStoreException | MDMAPIException e) {
- String msg = "Error occurred while retrieving the list of users using the filter : " + filter;
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- int count;
- count = userList.size();
- responsePayload.setMessageFromServer("All users were successfully retrieved. " +
- "Obtained user count: " + count);
- responsePayload.setResponseContent(userList);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- /**
- * Get the list of user names in the system.
- *
- * @return A list of user names.
- */
- @Override
- @GET
- @Path("view-users")
- public Response getAllUsersByUsername(@QueryParam("username") String userName) {
- if (log.isDebugEnabled()) {
- log.debug("Getting the list of users by name");
- }
- List userList;
- try {
- UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- String[] users = userStoreManager.listUsers("*" + userName + "*", -1);
- userList = new ArrayList<>(users.length);
- UserWrapper user;
- for (String username : users) {
- user = new UserWrapper();
- user.setUsername(username);
- user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS));
- user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME));
- user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME));
- userList.add(user);
- }
- } catch (UserStoreException | MDMAPIException e) {
- String msg = "Error occurred while retrieving the list of users";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- int count;
- count = userList.size();
- responsePayload.setMessageFromServer("All users by username were successfully retrieved. " +
- "Obtained user count: " + count);
- responsePayload.setResponseContent(userList);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- /**
- * Get the list of user names in the system.
- *
- * @return A list of user names.
- */
- @Override
- @GET
- @Path("users-by-username")
- public Response getAllUserNamesByUsername(@QueryParam("username") String userName) {
- if (log.isDebugEnabled()) {
- log.debug("Getting the list of users by name");
- }
- List userList;
- try {
- UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- String[] users = userStoreManager.listUsers("*" + userName + "*", -1);
- userList = new ArrayList<>(users.length);
- Collections.addAll(userList, users);
- } catch (UserStoreException | MDMAPIException e) {
- String msg = "Error occurred while retrieving the list of users";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- int count;
- count = userList.size();
- responsePayload.setMessageFromServer("All users by username were successfully retrieved. " +
- "Obtained user count: " + count);
- responsePayload.setResponseContent(userList);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- /**
- * Gets a claim-value from user-store.
- *
- * @param username Username of the user
- * @param claimUri required ClaimUri
- * @return claim value
- */
- private String getClaimValue(String username, String claimUri) throws MDMAPIException {
- UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- try {
- return userStoreManager.getUserClaimValue(username, claimUri, null);
- } catch (UserStoreException e) {
- throw new MDMAPIException("Error occurred while retrieving value assigned to the claim '" +
- claimUri + "'", e);
- }
- }
-
- /**
- * Method used to send an invitation email to a new user to enroll a device.
- *
- * @param username Username of the user
- */
- private void inviteNewlyAddedUserToEnrollDevice(String username, String password) throws MDMAPIException {
- if (log.isDebugEnabled()) {
- log.debug("Sending invitation mail to user by username: " + username);
- }
- String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
- if (MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equalsIgnoreCase(tenantDomain)) {
- tenantDomain = "";
- }
- if (!username.contains("/")) {
- username = "/" + username;
- }
- String[] usernameBits = username.split("/");
- DeviceManagementProviderService deviceManagementProviderService = DeviceMgtAPIUtils.getDeviceManagementService();
-
- Properties props = new Properties();
- props.setProperty("username", usernameBits[1]);
- props.setProperty("domain-name", tenantDomain);
- props.setProperty("first-name", getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME));
- props.setProperty("password", password);
-
- String recipient = getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS);
-
- EmailMetaInfo metaInfo = new EmailMetaInfo(recipient, props);
- try {
- deviceManagementProviderService.sendRegistrationEmail(metaInfo);
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while sending registration email to user '" + username + "'";
- log.error(msg, e);
- throw new MDMAPIException(msg, e);
- }
- }
-
- /**
- * Method used to send an invitation email to a existing user to enroll a device.
- *
- * @param usernames Username list of the users to be invited
- */
- @Override
- @POST
- @Path("email-invitation")
- @Produces({MediaType.APPLICATION_JSON})
- public Response inviteExistingUsersToEnrollDevice(List usernames) {
- if (log.isDebugEnabled()) {
- log.debug("Sending enrollment invitation mail to existing user.");
- }
- DeviceManagementProviderService deviceManagementProviderService = DeviceMgtAPIUtils.getDeviceManagementService();
- try {
- for (String username : usernames) {
- String recipient = getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS);
-
- Properties props = new Properties();
- props.setProperty("first-name", getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME));
- props.setProperty("username", username);
-
- EmailMetaInfo metaInfo = new EmailMetaInfo(recipient, props);
- deviceManagementProviderService.sendEnrolmentInvitation(metaInfo);
- }
- } catch (DeviceManagementException | MDMAPIException e) {
- String msg = "Error occurred while inviting user to enrol their device";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("Email invitation was successfully sent to user.");
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- }
-
- /**
- * Get a list of devices based on the username.
- *
- * @param username Username of the device owner
- * @return A list of devices
- */
- @Override
- @GET
- @Produces({MediaType.APPLICATION_JSON})
- @Path("devices")
- public Response getAllDeviceOfUser(@QueryParam("username") String username,
- @QueryParam("start") int startIdx, @QueryParam("length") int length) {
- DeviceManagementProviderService dmService;
- try {
- dmService = DeviceMgtAPIUtils.getDeviceManagementService();
- if (length > 0) {
- PaginationRequest request = new PaginationRequest(startIdx, length);
- request.setOwner(username);
- return Response.status(Response.Status.OK).entity(dmService.getDevicesOfUser(request)).build();
- }
- return Response.status(Response.Status.OK).entity(dmService.getDevicesOfUser(username)).build();
- } catch (DeviceManagementException e) {
- String msg = "Device management error";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * This method is used to retrieve the user count of the system.
- *
- * @return returns the count.
- * @
- */
- @Override
- @GET
- @Path("count")
- public Response getUserCount() {
- try {
- String[] users = DeviceMgtAPIUtils.getUserStoreManager().listUsers("*", -1);
- Integer count = 0;
- if (users != null) {
- count = users.length;
- }
- return Response.status(Response.Status.OK).entity(count).build();
- } catch (UserStoreException | MDMAPIException e) {
- String msg =
- "Error occurred while retrieving the list of users that exist within the current tenant";
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- }
-
- /**
- * API is used to update roles of a user
- *
- * @param username
- * @param userList
- * @return
- * @
- */
- @Override
- @PUT
- @Path("{roleName}/users")
- @Produces({MediaType.APPLICATION_JSON})
- public Response updateRoles(@PathParam("roleName") String username, List userList) {
- try {
- final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- if (log.isDebugEnabled()) {
- log.debug("Updating the roles of a user");
- }
- SetReferenceTransformer transformer = new SetReferenceTransformer<>();
- transformer.transform(Arrays.asList(userStoreManager.getRoleListOfUser(username)),
- userList);
- final String[] rolesToAdd = transformer.getObjectsToAdd().toArray(new String[transformer.getObjectsToAdd().size()]);
- final String[] rolesToDelete = transformer.getObjectsToRemove().toArray(new String[transformer.getObjectsToRemove().size()]);
-
- userStoreManager.updateRoleListOfUser(username, rolesToDelete, rolesToAdd);
- } catch (UserStoreException | MDMAPIException e) {
- String msg = "Error occurred while saving the roles for user: " + username;
- log.error(msg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
- }
- return Response.status(Response.Status.OK).build();
- }
-
- /**
- * Method to change the user password.
- *
- * @param credentials Wrapper object representing user credentials.
- * @return {Response} Status of the request wrapped inside Response object.
- * @
- */
- @Override
- @POST
- @Path("change-password")
- @Consumes({MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_JSON})
- public Response resetPassword(UserCredentialWrapper credentials) {
- return CredentialManagementResponseBuilder.buildChangePasswordResponse(credentials);
- }
-
- /**
- * Method to change the user password.
- *
- * @param credentials Wrapper object representing user credentials.
- * @return {Response} Status of the request wrapped inside Response object.
- * @
- */
- @Override
- @POST
- @Path("reset-password")
- @Consumes({MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_JSON})
- public Response resetPasswordByAdmin(UserCredentialWrapper credentials) {
- return CredentialManagementResponseBuilder.buildResetPasswordResponse(credentials);
- }
-
-}
\ No newline at end of file
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/MDMIOSOperationUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/MDMIOSOperationUtil.java
deleted file mode 100644
index 0d9f031162..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/MDMIOSOperationUtil.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.api.util;
-
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
-import org.wso2.carbon.device.mgt.jaxrs.beans.MobileApp;
-import org.wso2.carbon.device.mgt.jaxrs.beans.ios.AppStoreApplication;
-import org.wso2.carbon.device.mgt.jaxrs.beans.ios.EnterpriseApplication;
-import org.wso2.carbon.device.mgt.jaxrs.beans.ios.RemoveApplication;
-import org.wso2.carbon.device.mgt.jaxrs.beans.ios.WebClip;
-import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
-import org.wso2.carbon.device.mgt.core.operation.mgt.ProfileOperation;
-
-import java.util.Properties;
-
-/**
- * This class contains the all the operations related to IOS.
- */
-public class MDMIOSOperationUtil {
-
- /**
- * This method is used to create Install Authentication operation.
- *
- * @param application MobileApp application
- * @return operation
- * @throws MDMAPIException
- *
- */
- public static Operation createInstallAppOperation(MobileApp application) throws MDMAPIException {
-
- ProfileOperation operation = new ProfileOperation();
-
- switch (application.getType()) {
- case ENTERPRISE:
- EnterpriseApplication enterpriseApplication =
- new EnterpriseApplication();
- enterpriseApplication.setBundleId(application.getId());
- enterpriseApplication.setIdentifier(application.getIdentifier());
- enterpriseApplication.setManifestURL(application.getLocation());
-
- Properties properties = application.getProperties();
- enterpriseApplication.setPreventBackupOfAppData((Boolean) properties.
- get(MDMAppConstants.IOSConstants.IS_PREVENT_BACKUP));
- enterpriseApplication.setRemoveAppUponMDMProfileRemoval((Boolean) properties.
- get(MDMAppConstants.IOSConstants.IS_REMOVE_APP));
- operation.setCode(MDMAppConstants.IOSConstants.OPCODE_INSTALL_ENTERPRISE_APPLICATION);
- operation.setPayLoad(enterpriseApplication.toJSON());
- operation.setType(Operation.Type.COMMAND);
- break;
- case PUBLIC:
- AppStoreApplication appStoreApplication =
- new AppStoreApplication();
- appStoreApplication.setRemoveAppUponMDMProfileRemoval((Boolean) application.getProperties().
- get(MDMAppConstants.IOSConstants.IS_REMOVE_APP));
- appStoreApplication.setIdentifier(application.getIdentifier());
- appStoreApplication.setPreventBackupOfAppData((Boolean) application.getProperties().
- get(MDMAppConstants.IOSConstants.IS_PREVENT_BACKUP));
- appStoreApplication.setBundleId(application.getId());
- appStoreApplication.setiTunesStoreID((Integer) application.getProperties().
- get(MDMAppConstants.IOSConstants.I_TUNES_ID));
- operation.setCode(MDMAppConstants.IOSConstants.OPCODE_INSTALL_STORE_APPLICATION);
- operation.setType(Operation.Type.COMMAND);
- operation.setPayLoad(appStoreApplication.toJSON());
- break;
- case WEBAPP:
- WebClip webClip = new WebClip();
- webClip.setIcon(application.getIconImage());
- webClip.setIsRemovable(application.getProperties().
- getProperty(MDMAppConstants.IOSConstants.IS_REMOVE_APP));
- webClip.setLabel(application.getProperties().
- getProperty(MDMAppConstants.IOSConstants.LABEL));
- webClip.setURL(application.getLocation());
-
- operation.setCode(MDMAppConstants.IOSConstants.OPCODE_INSTALL_WEB_APPLICATION);
- operation.setType(Operation.Type.PROFILE);
- operation.setPayLoad(webClip.toJSON());
- break;
- }
- return operation;
- }
-
- public static Operation createAppUninstallOperation(MobileApp application) throws MDMAPIException{
-
- ProfileOperation operation = new ProfileOperation();
- operation.setCode(MDMAppConstants.IOSConstants.OPCODE_REMOVE_APPLICATION);
- operation.setType(Operation.Type.PROFILE);
-
- RemoveApplication removeApplication =
- new RemoveApplication();
- removeApplication.setBundleId(application.getIdentifier());
- operation.setPayLoad(removeApplication.toJSON());
-
- return operation;
- }
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/android/AppStoreApplication.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/android/AppStoreApplication.java
index 6d89673b85..951ab365e2 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/android/AppStoreApplication.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/android/AppStoreApplication.java
@@ -19,7 +19,6 @@
package org.wso2.carbon.device.mgt.jaxrs.beans.android;
import com.google.gson.Gson;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
import java.io.Serializable;
@@ -47,8 +46,9 @@ public class AppStoreApplication implements Serializable {
this.appIdentifier = appIdentifier;
}
- public String toJSON() throws MDMAPIException {
+ public String toJSON() {
Gson gson = new Gson();
return gson.toJson(this);
}
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/android/EnterpriseApplication.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/android/EnterpriseApplication.java
index 17592bc112..2bd8633d92 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/android/EnterpriseApplication.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/android/EnterpriseApplication.java
@@ -19,7 +19,6 @@
package org.wso2.carbon.device.mgt.jaxrs.beans.android;
import com.google.gson.Gson;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
import java.io.Serializable;
@@ -28,36 +27,37 @@ import java.io.Serializable;
*/
public class EnterpriseApplication implements Serializable {
- private String type;
- private String url;
- private String appIdentifier;
+ private String type;
+ private String url;
+ private String appIdentifier;
- public String getAppIdentifier() {
- return appIdentifier;
- }
+ public String getAppIdentifier() {
+ return appIdentifier;
+ }
- public void setAppIdentifier(String appIdentifier) {
- this.appIdentifier = appIdentifier;
- }
+ public void setAppIdentifier(String appIdentifier) {
+ this.appIdentifier = appIdentifier;
+ }
- public String getType() {
- return type;
- }
+ public String getType() {
+ return type;
+ }
- public void setType(String type) {
- this.type = type;
- }
+ public void setType(String type) {
+ this.type = type;
+ }
- public String getUrl() {
- return url;
- }
+ public String getUrl() {
+ return url;
+ }
- public void setUrl(String url) {
- this.url = url;
- }
+ public void setUrl(String url) {
+ this.url = url;
+ }
- public String toJSON() throws MDMAPIException {
+ public String toJSON() {
Gson gson = new Gson();
return gson.toJson(this);
- }
+ }
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/android/WebApplication.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/android/WebApplication.java
index e646d5bba0..7cb7243753 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/android/WebApplication.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/android/WebApplication.java
@@ -19,7 +19,6 @@
package org.wso2.carbon.device.mgt.jaxrs.beans.android;
import com.google.gson.Gson;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
import java.io.Serializable;
@@ -56,8 +55,9 @@ public class WebApplication implements Serializable {
this.type = type;
}
- public String toJSON() throws MDMAPIException {
+ public String toJSON() {
Gson gson = new Gson();
return gson.toJson(this);
}
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/AppStoreApplication.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/AppStoreApplication.java
index dc00e924b8..1925d6db77 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/AppStoreApplication.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/AppStoreApplication.java
@@ -19,7 +19,6 @@
package org.wso2.carbon.device.mgt.jaxrs.beans.ios;
import com.google.gson.Gson;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
import java.io.Serializable;
@@ -80,8 +79,9 @@ public class AppStoreApplication implements Serializable {
this.bundleId = bundleId;
}
- public String toJSON() throws MDMAPIException {
+ public String toJSON() {
Gson gson = new Gson();
return gson.toJson(this);
}
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/EnterpriseApplication.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/EnterpriseApplication.java
index b33039f299..2ac2879b74 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/EnterpriseApplication.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/EnterpriseApplication.java
@@ -19,7 +19,6 @@
package org.wso2.carbon.device.mgt.jaxrs.beans.ios;
import com.google.gson.Gson;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
import java.io.Serializable;
@@ -76,7 +75,7 @@ public class EnterpriseApplication implements Serializable {
this.bundleId = bundleId;
}
- public String toJSON() throws MDMAPIException {
+ public String toJSON() {
Gson gson = new Gson();
return gson.toJson(this);
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/RemoveApplication.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/RemoveApplication.java
index 08312523e7..95f85984a0 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/RemoveApplication.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/RemoveApplication.java
@@ -19,7 +19,6 @@
package org.wso2.carbon.device.mgt.jaxrs.beans.ios;
import com.google.gson.Gson;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
import java.io.Serializable;
@@ -35,8 +34,9 @@ public class RemoveApplication implements Serializable {
this.bundleId = bundleId;
}
- public String toJSON() throws MDMAPIException {
+ public String toJSON() {
Gson gson = new Gson();
return gson.toJson(this);
}
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/WebClip.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/WebClip.java
index 257c7663a0..3e73197d08 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/WebClip.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/ios/WebClip.java
@@ -19,7 +19,6 @@
package org.wso2.carbon.device.mgt.jaxrs.beans.ios;
import com.google.gson.Gson;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
public class WebClip {
@@ -69,7 +68,7 @@ public class WebClip {
this.isRemovable = isRemovable;
}
- public String toJSON() throws MDMAPIException {
+ public String toJSON() {
Gson gson = new Gson();
return gson.toJson(this);
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/common/ErrorHandler.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/common/ErrorHandler.java
similarity index 68%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/common/ErrorHandler.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/common/ErrorHandler.java
index 886572c303..1300b639d9 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/common/ErrorHandler.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/common/ErrorHandler.java
@@ -16,18 +16,17 @@
* under the License.
*/
-package org.wso2.carbon.device.mgt.jaxrs.api.common;
+package org.wso2.carbon.device.mgt.jaxrs.common;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
-@Produces({ "application/json", "application/xml" })
-public class ErrorHandler implements ExceptionMapper {
+@Produces({ "application/json" })
+public class ErrorHandler implements ExceptionMapper {
- public Response toResponse(MDMAPIException exception) {
- ErrorMessage errorMessage = new ErrorMessage();
- errorMessage.setErrorMessage(exception.getErrorMessage());
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMessage).build();
+ public Response toResponse(Throwable e) {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
}
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/common/ErrorMessage.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/common/ErrorMessage.java
similarity index 95%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/common/ErrorMessage.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/common/ErrorMessage.java
index e457484254..67654b4450 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/common/ErrorMessage.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/common/ErrorMessage.java
@@ -16,7 +16,7 @@
* under the License.
*/
-package org.wso2.carbon.device.mgt.jaxrs.api.common;
+package org.wso2.carbon.device.mgt.jaxrs.common;
public class ErrorMessage {
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/context/DeviceOperationContext.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/context/DeviceOperationContext.java
similarity index 96%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/context/DeviceOperationContext.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/context/DeviceOperationContext.java
index d35e9dacd1..461ce5f83d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/context/DeviceOperationContext.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/context/DeviceOperationContext.java
@@ -16,7 +16,7 @@
* under the License.
*/
-package org.wso2.carbon.device.mgt.jaxrs.api.context;
+package org.wso2.carbon.device.mgt.jaxrs.context;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/exception/BadRequestException.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/exception/BadRequestException.java
deleted file mode 100644
index 6ce60ffda3..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/exception/BadRequestException.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.jaxrs.exception;
-
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-public class BadRequestException extends WebApplicationException {
-
- public BadRequestException(Message message, MediaType mediaType) {
- super(Response.status(Response.Status.BAD_REQUEST).entity(message).type(mediaType).build());
- }
-
-}
\ No newline at end of file
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/exception/UnknownApplicationTypeException.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/exception/UnknownApplicationTypeException.java
new file mode 100644
index 0000000000..459335abd8
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/exception/UnknownApplicationTypeException.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.exception;
+
+public class UnknownApplicationTypeException extends Exception {
+
+ private static final long serialVersionUID = -3151279311929080299L;
+
+ public UnknownApplicationTypeException(String msg, Exception nestedEx) {
+ super(msg, nestedEx);
+ }
+
+ public UnknownApplicationTypeException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public UnknownApplicationTypeException(String msg) {
+ super(msg);
+ }
+
+ public UnknownApplicationTypeException() {
+ super();
+ }
+
+ public UnknownApplicationTypeException(Throwable cause) {
+ super(cause);
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/ActivityInfoProviderService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/ActivityInfoProviderService.java
new file mode 100644
index 0000000000..ab024ceabe
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/ActivityInfoProviderService.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.api;
+
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.wso2.carbon.apimgt.annotations.api.Permission;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/activities")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface ActivityInfoProviderService {
+
+ @GET
+ @Path("/{id}")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ httpMethod = "POST",
+ value = "Retrieving the operation details.",
+ notes = "This will return the operation details including the responses from the devices")
+ @ApiResponses(value = {@ApiResponse(code = 200, message = "Activity details provided successfully.."),
+ @ApiResponse(code = 500, message = "Error occurred while fetching the activity for the supplied id.")})
+ @Permission(scope = "operation-view", permissions = {"/permission/admin/device-mgt/admin/devices/view"})
+ Response getActivity(
+ @ApiParam(name = "id", value = "Provide activity id {id} as ACTIVITY_(number)",
+ required = true) @PathParam("id") String id);
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Dashboard.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/Dashboard.java
similarity index 98%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Dashboard.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/Dashboard.java
index 12a1d97796..8dbf6bf3c5 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Dashboard.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/Dashboard.java
@@ -1,4 +1,4 @@
-package org.wso2.carbon.device.mgt.jaxrs.api;
+package org.wso2.carbon.device.mgt.jaxrs.service.api;
import io.swagger.annotations.Api;
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java
new file mode 100644
index 0000000000..a53fa98743
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java
@@ -0,0 +1,270 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.api;
+
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.joda.time.DateTime;
+import org.wso2.carbon.apimgt.annotations.api.Permission;
+import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
+import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
+import org.wso2.carbon.device.mgt.common.app.mgt.Application;
+import org.wso2.carbon.device.mgt.common.device.details.DeviceInfo;
+import org.wso2.carbon.device.mgt.common.device.details.DeviceLocation;
+import org.wso2.carbon.device.mgt.common.device.details.DeviceWrapper;
+import org.wso2.carbon.device.mgt.common.search.SearchContext;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.util.Date;
+import java.util.List;
+
+@Path("/devices")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface DeviceManagementService {
+
+ @GET
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Returns device list",
+ notes = "Returns all devices enrolled with the system",
+ response = org.wso2.carbon.device.mgt.common.Device.class,
+ responseContainer = "List")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "List of Devices"),
+ @ApiResponse(code = 500, message = "Error occurred while fetching the device list")
+ })
+ @Permission(scope = "device-list", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
+ Response getDevices(@QueryParam("offset") int offset, @QueryParam("limit") int limit);
+
+ Response getDevices(@HeaderParam("If-Modified-Since") Date timestamp, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit);
+
+ @GET
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Returns device list",
+ notes = "Returns all devices enrolled with the system",
+ response = org.wso2.carbon.device.mgt.common.Device.class,
+ responseContainer = "List")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "List of Devices"),
+ @ApiResponse(code = 500, message = "Error occurred while fetching the device list")
+ })
+ @Permission(scope = "device-list", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
+ Response getDevices(@QueryParam("type") String type, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit);
+
+ @POST
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Get devices information from the supplied device identifies",
+ notes = "This will return device information such as CPU usage, memory usage etc for supplied device " +
+ "identifiers.",
+ response = DeviceInfo.class,
+ responseContainer = "List")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = ""),
+ @ApiResponse(code = 400, message = ""),
+ @ApiResponse(code = 400, message = ""),
+ @ApiResponse(code = 500, message = "Internal Server Error")
+ })
+ @Permission(scope = "device-info", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
+ Response getDevices(List deviceIds);
+
+ @GET
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Returns device list",
+ notes = "Returns the set of devices that matches a given username",
+ response = org.wso2.carbon.device.mgt.common.Device.class,
+ responseContainer = "List")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "List of Devices"),
+ @ApiResponse(code = 500, message = "Error occurred while fetching the device list")
+ })
+ @Permission(scope = "device-list", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
+ Response getDeviceByUsername(@QueryParam("user") String user, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit);
+
+ @GET
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Returns device list",
+ notes = "Returns the set of devices that matches a given role",
+ response = org.wso2.carbon.device.mgt.common.Device.class,
+ responseContainer = "List")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "List of Devices"),
+ @ApiResponse(code = 500, message = "Error occurred while fetching the device list")
+ })
+ @Permission(scope = "device-list", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
+ Response getDevicesByRole(@QueryParam("roleName") String roleName, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit);
+
+ @GET
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Returns device list",
+ notes = "Returns the set of devices that matches a given ownership scheme",
+ response = org.wso2.carbon.device.mgt.common.Device.class,
+ responseContainer = "List")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "List of Devices"),
+ @ApiResponse(code = 500, message = "Error occurred while fetching the device list")
+ })
+ @Permission(scope = "device-list", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
+ Response getDevicesByOwnership(@QueryParam("ownership") EnrolmentInfo.OwnerShip ownership,
+ @QueryParam("offset") int offset, @QueryParam("limit") int limit);
+
+ @GET
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Returns device list",
+ notes = "Returns the set of devices that matches a given enrollment status",
+ response = org.wso2.carbon.device.mgt.common.Device.class,
+ responseContainer = "List")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "List of Devices"),
+ @ApiResponse(code = 500, message = "Error occurred while fetching the device list")
+ })
+ @Permission(scope = "device-list", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
+ Response getDevicesByEnrollmentStatus(@QueryParam("status") EnrolmentInfo.Status status,
+ @QueryParam("offset") int offset, @QueryParam("limit") int limit);
+
+ @GET
+ @Permission(scope = "device-view", permissions = {
+ "/permission/admin/device-mgt/admin/devices/view",
+ "/permission/admin/device-mgt/user/devices/view"})
+ Response getDevice(@QueryParam("type") String type, @QueryParam("id") String id);
+
+ @GET
+ @Path("/{type}/{id}/location")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Get the device location",
+ notes = "This will return the device location including latitude and longitude as well the "
+ + "physical address",
+ response = DeviceLocation.class)
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = ""),
+ @ApiResponse(code = 400, message = ""),
+ @ApiResponse(code = 400, message = ""),
+ @ApiResponse(code = 500, message = "Internal Server Error")
+ })
+ @Permission(scope = "device-info", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
+ Response getDeviceLocation(@PathParam("type") String type, @PathParam("id") String id);
+
+ @GET
+ @Path("/{type}/{id}/features")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ httpMethod = "GET",
+ value = "Get Feature Details of a Device",
+ notes = "WSO2 EMM features enable you to carry out many operations on a given device platform. " +
+ "Using this REST API you can get the features that can be carried out on a preferred device type," +
+ " such as iOS, Android or Windows.",
+ response = org.wso2.carbon.device.mgt.common.Feature.class,
+ responseContainer = "List")
+ @ApiResponses(value = { @ApiResponse(code = 200, message = "List of Features"),
+ @ApiResponse(code = 500, message = "Error occurred while retrieving the list of features" +
+ ".") })
+ @Permission(scope = "device-search", permissions = {"/permission/admin/device-mgt/admin/devices/view",
+ "/permission/admin/device-mgt/user/devices/view"})
+ Response getFeaturesOfDevice(@PathParam("type") String type, @PathParam("id") String id);
+
+ @POST
+ @Path("/search-devices")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Advanced Search for Devices via the Console",
+ notes = "Carry out an advanced search via the EMM console",
+ response = DeviceWrapper.class,
+ responseContainer = "List")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = DeviceWrapper.class, responseContainer = "List"),
+ @ApiResponse(code = 500, message = "Error occurred while searching the device information")
+ })
+ @Permission(scope = "device-search", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
+ Response searchDevices(@ApiParam(name = "filtering rules", value = "List of search conditions",
+ required = true) SearchContext searchContext);
+
+ @GET
+ @Path("/{type}/{id}/applications")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ httpMethod = "GET",
+ value = "Getting Installed Application Details of a Device.",
+ responseContainer = "List",
+ notes = "Get the list of applications that a device has subscribed.",
+ response = Application.class)
+ @ApiResponses(value = {@ApiResponse(code = 200, message = "List of installed application details of a device.", response = Application.class, responseContainer = "List"),
+ @ApiResponse(code = 500, message = "Error occurred while fetching the apps of the device" +
+ ".")})
+ @Permission(scope = "operation-view", permissions = {
+ "/permission/admin/device-mgt/admin/devices/view",
+ "/permission/admin/device-mgt/user/devices/view"})
+ Response getInstalledApplications(
+ @ApiParam(name = "type", value = "Define the device type as the value for {type}. " +
+ "Example: ios, android or windows.", required = true)
+ @PathParam("type") String type, @ApiParam(name = "id", value = "Define the device ID",
+ required = true) @PathParam("id") String id);
+
+
+ @GET
+ @Path("/{type}/{id}/operations")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ httpMethod = "GET",
+ value = "Getting Paginated Details for Operations on a Device.",
+ notes = "You will carry out many operations on a device. In a situation where you wish to view the all" +
+ " the operations carried out on a device it is not feasible to show all the details on one page" +
+ " therefore the details are paginated." +
+ " Example: You carry out 21 operations via a given device. When you wish to see the operations " +
+ "carried out, the details of the 21 operations will be broken down into 3 pages with 10 operation" +
+ " details per page.",
+ response = org.wso2.carbon.device.mgt.common.operation.mgt.Operation.class)
+ @ApiResponses(value = {@ApiResponse(code = 200, message = "List of Operations on a device."),
+ @ApiResponse(code = 500, message = "Error occurred while fetching the operations for the " +
+ "device.")})
+ @Permission(scope = "operation-view", permissions = {
+ "/permission/admin/device-mgt/admin/devices/view",
+ "/permission/admin/device-mgt/user/devices/view"})
+ Response getDeviceOperations(@QueryParam("offset") int offset, @QueryParam("limit") int limit,
+ @PathParam("type") String type, @PathParam("id") String id);
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceTypeManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceTypeManagementService.java
new file mode 100644
index 0000000000..cf4ef4e08d
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceTypeManagementService.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.api;
+
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.wso2.carbon.apimgt.annotations.api.Permission;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
+import org.wso2.carbon.device.mgt.core.dto.DeviceType;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/device-types")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface DeviceTypeManagementService {
+
+ @GET
+ @ApiOperation(
+ httpMethod = "GET",
+ value = "Getting Details of the Devices Supported via WSO2 EMM",
+ notes = "You are able to register Android, iOS and Windows devices with WSO2 EMM. This API will "
+ + "retrieve the device type details that can register with the EMM",
+ response = DeviceType.class,
+ responseContainer = "List")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "List of devices based on the type"),
+ @ApiResponse(code = 500, message = "Error occurred while fetching the list of device types") })
+ @Permission(scope = "device-list", permissions = {"/permission/admin/device-mgt/admin/devices/list"})
+ Response getTypes();
+
+ @POST
+ @Path("/{type}/configuration")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ httpMethod = "POST",
+ value = "Configuring general platform settings",
+ notes = "Configure the general platform settings using this REST API")
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Tenant configuration saved successfully"),
+ @ApiResponse(code = 500, message = "Error occurred while saving the tenant configuration")
+ })
+ @Permission(scope = "configuration-modify", permissions = {"/permission/admin/device-mgt/admin/platform-configs/modify"})
+ Response saveConfiguration(@PathParam("type") String type, PlatformConfiguration config);
+
+ @GET
+ @Path("/{type}/configuration")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ httpMethod = "GET",
+ value = "Getting General Platform Configurations",
+ notes = "Get the general platform level configuration details using this REST API",
+ response = PlatformConfiguration.class)
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK"),
+ @ApiResponse(code = 500, message = "Error occurred while retrieving the tenant configuration")
+ })
+ @Permission(scope = "configuration-view", permissions = {"/permission/admin/device-mgt/admin/platform-configs/view"})
+ Response getConfiguration(@PathParam("type") String type);
+
+ @PUT
+ @Path("/{type}/configuration")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ httpMethod = "PUT",
+ value = "Updating General Platform Configurations",
+ notes = "Update the notification frequency using this REST API")
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Tenant configuration updated successfully"),
+ @ApiResponse(code = 500, message = "Error occurred while updating the tenant configuration")
+ })
+ @Permission(scope = "configuration-modify", permissions = {"/permission/admin/device-mgt/admin/platform-configs/modify"})
+ Response updateConfiguration(@PathParam("type") String type, PlatformConfiguration config);
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/GroupManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/GroupManagementService.java
new file mode 100644
index 0000000000..f6cc90d559
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/GroupManagementService.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.api;
+
+import org.wso2.carbon.apimgt.annotations.api.Permission;
+import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
+import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroup;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/groups")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface GroupManagementService {
+
+ @GET
+ @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"})
+ Response getGroups(@QueryParam("offset") int offset, @QueryParam("limit") int limit);
+
+ @POST
+ @Permission(scope = "group-add", permissions = {"/permission/admin/device-mgt/user/groups/add"})
+ Response createGroup(DeviceGroup group);
+
+ @Path("/{groupName}")
+ @GET
+ @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/view"})
+ Response getGroup(@PathParam("groupName") String groupName);
+
+ @Path("/{groupName}")
+ @PUT
+ @Permission(scope = "group-modify", permissions = {"/permission/admin/device-mgt/user/groups/update"})
+ Response updateGroup(@PathParam("groupName") String groupName, DeviceGroup deviceGroup);
+
+ @Path("/{groupName}")
+ @DELETE
+ @Permission(scope = "group-remove", permissions = {"/permission/admin/device-mgt/user/groups/remove"})
+ Response deleteGroup(@PathParam("groupName") String groupName);
+
+ @Path("/share-group-with-user")
+ @POST
+ @Permission(scope = "group-share", permissions = {"/permission/admin/device-mgt/user/groups/share"})
+ Response shareGroupWithUser(String groupName, String targetUser);
+
+ @Path("/share-group-with-role")
+ @POST
+ @Permission(scope = "group-share", permissions = {"/permission/admin/device-mgt/user/groups/share"})
+ Response shareGroupWithRole(String groupName, String targetRole);
+
+ @Path("/remove-share-with-user")
+ @POST
+ @Permission(scope = "group-share", permissions = {"/permission/admin/device-mgt/user/groups/unshare"})
+ Response removeShareWithUser(@PathParam("groupName") String groupName, @QueryParam("username") String targetUser);
+
+ @Path("/remove-share-with-role")
+ @POST
+ @Permission(scope = "group-share", permissions = {"/permission/admin/device-mgt/user/groups/unshare"})
+ Response removeShareWithRole(@PathParam("groupName") String groupName, @QueryParam("roleName") String targetUser);
+
+ @GET
+ @Path("/{groupName}/users")
+ @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"})
+ Response getUsersOfGroup(@PathParam("groupName") String groupName);
+
+ @GET
+ @Path("/{groupName}/devices")
+ @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/admin/groups/roles"})
+ Response getDevicesOfGroup(@PathParam("groupName") String groupName, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit);
+
+ @POST
+ @Path("/{groupName}/devices")
+ @Produces("application/json")
+ @Permission(scope = "group-add", permissions = {"/permission/admin/device-mgt/user/groups/devices/add"})
+ Response addDeviceToGroup(@PathParam("groupName") String groupName, DeviceIdentifier deviceIdentifier);
+
+ @DELETE
+ @Path("/{groupName}/devices")
+ @Permission(scope = "group-remove", permissions = {"/permission/admin/device-mgt/user/groups/devices/remove"})
+ Response removeDeviceFromGroup(@PathParam("groupName") String groupName, @QueryParam("type") String type,
+ @QueryParam("id") String id);
+
+ @GET
+ Response getGroupsByUser(@QueryParam("user") String user);
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceNotification.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/NotificationManagementService.java
similarity index 64%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceNotification.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/NotificationManagementService.java
index c2c5c99f81..bc1dcdf324 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/DeviceNotification.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/NotificationManagementService.java
@@ -1,44 +1,37 @@
/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * 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.
*
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
*/
+package org.wso2.carbon.device.mgt.jaxrs.service.api;
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.*;
-import org.wso2.carbon.apimgt.annotations.api.*;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.wso2.carbon.apimgt.annotations.api.Permission;
import org.wso2.carbon.device.mgt.common.notification.mgt.Notification;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-/**
- * DeviceNotification management REST-API implementation.
- * All end points support JSON, XMl with content negotiation.
- */
-@API(name = "Device Notification", version = "1.0.0", context = "/devicemgt_admin/notifications", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
-@Api(value = "DeviceNotification", description = "Device notification related operations can be found here.")
-@SuppressWarnings("NonJaxWsWebServices")
@Path("/notifications")
-@Produces({"application/json", "application/xml"})
-@Consumes({"application/json", "application/xml"})
-public interface DeviceNotification {
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface NotificationManagementService {
@GET
@ApiOperation(
@@ -58,10 +51,9 @@ public interface DeviceNotification {
@Permission(scope = "device-notification-view", permissions = {
"/permission/admin/device-mgt/admin/notifications/view",
"/permission/admin/device-mgt/user/notifications/view"})
- Response getNotifications();
+ Response getNotifications(@QueryParam("offset") int offset, @QueryParam("limit") int limit);
@GET
- @Path("{status}")
@ApiOperation(
consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
@@ -79,12 +71,11 @@ public interface DeviceNotification {
@Permission(scope = "device-notification-view", permissions = {
"/permission/admin/device-mgt/admin/notifications/view",
"/permission/admin/device-mgt/user/notifications/view"})
- Response getNotificationsByStatus(@ApiParam(name = "status", value = "Provide the notification status as"
- + " the value for {status}", required = true)
- @PathParam("status") Notification.Status status);
+ Response getNotificationsByStatus(@QueryParam("status") Notification.Status status,
+ @QueryParam("offset") int offset, @QueryParam("limit") int limit);
@PUT
- @Path("{id}/{status}")
+ @Path("/{id}/status")
@ApiOperation(
consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
@@ -98,11 +89,7 @@ public interface DeviceNotification {
})
@Permission(scope = "device-notification-modify",
permissions = {"/permission/admin/device-mgt/admin/notifications/modify"})
- Response updateNotificationStatus(@ApiParam(name = "id", value = "Provide the ID of the notification"
- + " you wish you update", required = true) @PathParam("id") int id,
- @ApiParam(name = "status", value = "Provide the notification status as"
- + " the value", required = true) @PathParam("status")
- Notification.Status status);
+ Response updateNotificationStatus(@PathParam("id") int id, Notification.Status status);
@POST
@ApiOperation(
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/PolicyManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/PolicyManagementService.java
new file mode 100644
index 0000000000..e5ef3071e2
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/PolicyManagementService.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.api;
+
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.wso2.carbon.apimgt.annotations.api.Permission;
+import org.wso2.carbon.device.mgt.jaxrs.beans.PolicyWrapper;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.util.List;
+
+@Path("/policies")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface PolicyManagementService {
+
+ @POST
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Adding a Policy.",
+ notes = "Add a policy using this REST API command. When adding a policy you will have the option of " +
+ "saving the policy or saving and publishing the policy. Using the REST API command given below " +
+ "you are able to save a created Policy and this policy will be in the inactive state")
+ @ApiResponses(value = {@ApiResponse(code = 201, message = "Created the policy."),
+ @ApiResponse(code = 500, message = "Policy Management related error occurred when " +
+ "adding the policy")})
+ @Permission(scope = "policy-modify", permissions = {"/permission/admin/device-mgt/admin/policies/add"})
+ Response addPolicy(PolicyWrapper policy);
+
+ @GET
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Getting Details of Policies.",
+ responseContainer = "List",
+ notes = "Retrieve the details of all the policies that you have created in WSO2 EMM.",
+ response = org.wso2.carbon.policy.mgt.common.Policy.class)
+ @ApiResponses(value = {@ApiResponse(code = 200, message = "Fetched all policies.",
+ response = org.wso2.carbon.policy.mgt.common.Policy.class, responseContainer = "List"),
+ @ApiResponse(code = 500, message = "Policy Management related error occurred when " +
+ "fetching the policies.")})
+ @Permission(scope = "policy-view", permissions = {"/permission/admin/device-mgt/admin/policies/list"})
+ Response getPolicies(@QueryParam("offset") int offset, @QueryParam("limit") int limit);
+
+ @GET
+ @Path("/{id}")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Getting Details of a Policy.",
+ notes = "Retrieve the details of a selected policy in WSO2 EMM.",
+ response = org.wso2.carbon.policy.mgt.common.Policy.class)
+ @ApiResponses(value = {@ApiResponse(code = 200, message = "Fetched policy details."),
+ @ApiResponse(code = 500, message = "Policy Management related error occurred when " +
+ "fetching the policies.")})
+ @Permission(scope = "policy-view", permissions = {"/permission/admin/device-mgt/admin/policies/list"})
+ Response getPolicy(@PathParam("id") int id);
+
+ @PUT
+ @Path("/{id}")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "PUT",
+ value = "Updating a Policy.",
+ notes = "If you wish to make changes to an existing policy, you can do so by updating the policy using " +
+ "this API")
+ @ApiResponses(value = {@ApiResponse(code = 201, message = "Policy has been updated successfully."),
+ @ApiResponse(code = 500, message = "Policy Management related exception in policy " +
+ "update")})
+ @Permission(scope = "policy-modify", permissions = {"/permission/admin/device-mgt/admin/policies/update"})
+ Response updatePolicy(@PathParam("id") int id, PolicyWrapper policyWrapper);
+
+ @POST
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Removing Multiple Policies.",
+ notes = "In situations where you need to delete more than one policy you can do so using this API.")
+ @ApiResponses(value = {@ApiResponse(code = 200, message = "Policies have been successfully deleted."),
+ @ApiResponse(code = 400, message = "Policy does not exist."),
+ @ApiResponse(code = 500, message = "Error in deleting policies.")})
+ @Permission(scope = "policy-modify", permissions = {"/permission/admin/device-mgt/admin/policies/remove"})
+ Response removePolicies(List policyIds);
+
+ @POST
+ @Path("/activate-policy")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "PUT",
+ value = "Activating Policies.",
+ notes = "Using the REST API command you are able to publish a policy in order to bring a policy that is " +
+ "in the inactive state to the active state.")
+ @ApiResponses(value = {@ApiResponse(code = 200, message = "Policies have been successfully activated."),
+ @ApiResponse(code = 500, message = "Error in activating policies.")})
+ @Permission(scope = "policy-modify", permissions = {
+ "/permission/admin/device-mgt/admin/policies/update",
+ "/permission/admin/device-mgt/admin/policies/add"})
+ Response activatePolicies(List policyIds);
+
+ @POST
+ @Path("/deactivate-policy")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "PUT",
+ value = "Deactivating Policies.",
+ notes = "Using the REST API command you are able to unpublish a policy in order to bring a policy that " +
+ "is in the active state to the inactive state.")
+ @ApiResponses(value = {@ApiResponse(code = 200, message = "Policies have been successfully deactivated."),
+ @ApiResponse(code = 500, message = "Error in deactivating policies.")})
+ @Permission(scope = "policy-modify", permissions = {
+ "/permission/admin/device-mgt/admin/policies/update",
+ "/permission/admin/device-mgt/admin/policies/add"})
+ Response deactivatePolicies(List policyIds);
+
+ @GET
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Getting Policy Enforced Details of a Device.",
+ notes = "When a device registers with WSO2 EMM a policy is enforced on the device. Initially the EMM " +
+ "filters the policies based on the Platform (device type), filters based on the device ownership" +
+ " type , filters based on the user role or name and finally the policy is enforced on the device.",
+ response = org.wso2.carbon.policy.mgt.common.Policy.class)
+ @ApiResponses(value = {@ApiResponse(code = 200, message = "Fetched current policy."),
+ @ApiResponse(code = 500, message = "Error occurred while getting the current policy.")})
+ Response getEffectivePolicyOfDevice(@QueryParam("device-type") String type,
+ @QueryParam("device-id") String deviceId);
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Role.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/RoleManagementService.java
similarity index 53%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Role.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/RoleManagementService.java
index 735e4cfaf8..13adac844e 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/Role.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/RoleManagementService.java
@@ -1,25 +1,27 @@
/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * 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.
*
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
*/
+package org.wso2.carbon.device.mgt.jaxrs.service.api;
-package org.wso2.carbon.device.mgt.jaxrs.api;
-
-import io.swagger.annotations.*;
-import org.wso2.carbon.apimgt.annotations.api.*;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.wso2.carbon.apimgt.annotations.api.Permission;
import org.wso2.carbon.device.mgt.jaxrs.beans.RoleWrapper;
import org.wso2.carbon.user.mgt.common.UIPermissionNode;
@@ -28,15 +30,12 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.util.List;
-@API(name = "Role", version = "1.0.0", context = "/devicemgt_admin/roles", tags = {"devicemgt_admin"})
-
-// Below Api is for swagger annotations
@Path("/roles")
-@Api(value = "Role", description = "Role management related operations can be found here.")
-public interface Role {
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface RoleManagementService {
@GET
- @Produces({ MediaType.APPLICATION_JSON})
@ApiOperation(
consumes = MediaType.APPLICATION_JSON,
produces = MediaType.APPLICATION_JSON,
@@ -46,17 +45,15 @@ public interface Role {
notes = "If you wish to get the details of all the roles in WSO2 EMM, you can do so using this REST API.",
response = String.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "List of available roles"),
- @ApiResponse(code = 500, message = "Error occurred while fetching the role list.") })
+ @ApiResponse(code = 500, message = "Error occurred while fetching the role list.") })
@Permission(scope = "roles-view", permissions = {
"/permission/admin/device-mgt/admin/roles/list",
"/permission/admin/device-mgt/admin/users/view",
"/permission/admin/device-mgt/admin/policies/add",
"/permission/admin/device-mgt/admin/policies/update"})
- Response getAllRoles();
+ Response getRoles(@QueryParam("offset") int offset, @QueryParam("limit") int limit);
@GET
- @Path("{userStore}")
- @Produces({MediaType.APPLICATION_JSON})
@ApiOperation(
consumes = MediaType.APPLICATION_JSON,
produces = MediaType.APPLICATION_JSON,
@@ -66,17 +63,14 @@ public interface Role {
notes = "If you wish to get the details of all the roles in WSO2 EMM, you can do so using this REST API.",
response = String.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "List of available roles"),
- @ApiResponse(code = 500, message = "Error occurred while fetching the role list.") })
+ @ApiResponse(code = 500, message = "Error occurred while fetching the role list.") })
@Permission(scope = "roles-view", permissions = {
"/permission/admin/device-mgt/admin/users/add",
"/permission/admin/device-mgt/admin/roles/list"})
- Response getRolesOfUserStore(@ApiParam(name = "userStore", value = "Provide the name of the UserStore you wish to get the" +
- " details from ",
- required = true) @PathParam("userStore") String userStore);
+ Response getRoles(@QueryParam("user-store") String userStoreName, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit);
@GET
- @Path("search")
- @Produces({MediaType.APPLICATION_JSON})
@ApiOperation(
consumes = MediaType.APPLICATION_JSON,
produces = MediaType.APPLICATION_JSON,
@@ -89,18 +83,16 @@ public interface Role {
" have the name in the exact order of the characters you provided.",
response = String.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "List of matching roles"),
- @ApiResponse(code = 500, message = "Error occurred while fetching the matching role list" +
- ".") })
+ @ApiResponse(code = 500, message = "Error occurred while fetching the matching role list" +
+ ".") })
@Permission(scope = "roles-view", permissions = {
"/permission/admin/device-mgt/admin/users/add",
"/permission/admin/device-mgt/admin/roles/list"})
- Response getMatchingRoles(@ApiParam(name = "filter", value = "Provide a character or a few characters in the" +
- " role name.",
- required = true) @QueryParam("filter") String filter);
+ Response searchRoles(@QueryParam("filter") String filter, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit);
@GET
- @Path("permissions")
- @Produces({MediaType.APPLICATION_JSON})
+ @Path("/{roleName}/permissions")
@ApiOperation(
consumes = MediaType.APPLICATION_JSON,
produces = MediaType.APPLICATION_JSON,
@@ -112,16 +104,13 @@ public interface Role {
"so using this REST API.",
response = UIPermissionNode.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "Permission details of a role"),
- @ApiResponse(code = 500, message = "Error occurred while fetching the permission " +
- "details of a role.") })
+ @ApiResponse(code = 500, message = "Error occurred while fetching the permission " +
+ "details of a role.") })
@Permission(scope = "roles-view", permissions = {"/permission/admin/device-mgt/admin/roles/list"})
- Response getPermissions(@ApiParam(name = "rolename", value = "Provide the name of the role you wish to get the " +
- "permission details.",
- required = true) @QueryParam("rolename") String roleName);
+ Response getPermissionsOfRole(@PathParam("roleName") String roleName);
@GET
- @Path("role")
- @Produces({MediaType.APPLICATION_JSON})
+ @Path("/{roleName}")
@ApiOperation(
consumes = MediaType.APPLICATION_JSON,
produces = MediaType.APPLICATION_JSON,
@@ -130,14 +119,11 @@ public interface Role {
notes = "If you wish to get the details of a role in WSO2 EMM, you can do so using this REST API.",
response = RoleWrapper.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "Details of a role."),
- @ApiResponse(code = 500, message = "Error occurred while retrieving the user role.") })
+ @ApiResponse(code = 500, message = "Error occurred while retrieving the user role.") })
@Permission(scope = "roles-view", permissions = {"/permission/admin/device-mgt/admin/roles/list"})
- Response getRole(@ApiParam(name = "rolename", value = "Provide the name of the role you wish to get the " +
- "details.",
- required = true) @QueryParam("rolename") String roleName);
+ Response getRole(@PathParam("roleName") String roleName);
@POST
- @Produces({MediaType.APPLICATION_JSON})
@ApiOperation(
consumes = MediaType.APPLICATION_JSON,
produces = MediaType.APPLICATION_JSON,
@@ -145,13 +131,12 @@ public interface Role {
value = "Adding a Role.",
notes = "You are able to add a new role to WSO2 EMM using the REST API.")
@ApiResponses(value = { @ApiResponse(code = 200, message = "Added the role."),
- @ApiResponse(code = 500, message = "Error occurred while adding the user role.") })
+ @ApiResponse(code = 500, message = "Error occurred while adding the user role.") })
@Permission(scope = "roles-modify", permissions = {"/permission/admin/device-mgt/admin/roles/add"})
- Response addRole(@ApiParam(name = "roleWrapper", value = "Role and permission details.",
- required = true) RoleWrapper roleWrapper);
+ Response addRole(RoleWrapper role);
@PUT
- @Produces({MediaType.APPLICATION_JSON})
+ @Path("/{roleName}")
@ApiOperation(
consumes = MediaType.APPLICATION_JSON,
produces = MediaType.APPLICATION_JSON,
@@ -160,16 +145,13 @@ public interface Role {
notes = "There will be situations where you will need to update the role details, such as the permissions" +
" or the role name. In such situation you can update the role details.")
@ApiResponses(value = { @ApiResponse(code = 200, message = "Updated the role."),
- @ApiResponse(code = 500, message = "Error occurred while updating the user role details" +
- ".") })
+ @ApiResponse(code = 500, message = "Error occurred while updating the user role details" +
+ ".") })
@Permission(scope = "roles-modify", permissions = {"/permission/admin/device-mgt/admin/roles/update"})
- Response updateRole(@ApiParam(name = "rolename", value = "Provide the name of the role you wish to update.",
- required = true) @QueryParam("rolename") String roleName,
- @ApiParam(name = "roleWrapper", value = "Role and permission details.",
- required = true) RoleWrapper roleWrapper);
+ Response updateRole(@PathParam("roleName") String roleName, RoleWrapper role);
@DELETE
- @Produces({MediaType.APPLICATION_JSON})
+ @Path("/{roleName}")
@ApiOperation(
consumes = MediaType.APPLICATION_JSON,
produces = MediaType.APPLICATION_JSON,
@@ -178,15 +160,13 @@ public interface Role {
notes = "In a situation when your Organization identifies that a specific role is no longer required you " +
"will need to remove the role details from WSO2 EMM.")
@ApiResponses(value = { @ApiResponse(code = 200, message = "Deleted the role."),
- @ApiResponse(code = 500, message = "Error occurred while deleting the user role details" +
- ".") })
+ @ApiResponse(code = 500, message = "Error occurred while deleting the user role details" +
+ ".") })
@Permission(scope = "roles-modify", permissions = {"/permission/admin/device-mgt/admin/roles/remove"})
- Response deleteRole(@ApiParam(name = "rolename", value = "Provide the name of the role you wish to delete.",
- required = true) @QueryParam("rolename") String roleName);
+ Response deleteRole(@PathParam("roleName") String roleName);
- @PUT
- @Path("users")
- @Produces({MediaType.APPLICATION_JSON})
+ @POST
+ @Path("/{roleName}/users")
@ApiOperation(
consumes = MediaType.APPLICATION_JSON,
produces = MediaType.APPLICATION_JSON,
@@ -199,25 +179,8 @@ public interface Role {
"be cumbersome, therefore you can define all the new employees that belong to the engineering " +
"role using this API.")
@ApiResponses(value = { @ApiResponse(code = 200, message = "Added Users to a Role."),
- @ApiResponse(code = 500, message = "Error occurred while saving the users of the role.") })
+ @ApiResponse(code = 500, message = "Error occurred while saving the users of the role.") })
@Permission(scope = "roles-modify", permissions = {"/permission/admin/device-mgt/admin/roles/update"})
- Response updateUsers(@ApiParam(name = "rolename", value = "Provide the name of the role you wish to update.",
- required = true) @QueryParam("rolename") String roleName,
- @ApiParam(name = "userList", value = "Provide the names of the users you will to update.",
- required = true) List userList);
-
- @GET
- @Path("count")
- @ApiOperation(
- consumes = MediaType.APPLICATION_JSON,
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Getting the Role Count.",
- response = int.class,
- notes = "Get the number of roles in WSO2 EMM.")
- @ApiResponses(value = { @ApiResponse(code = 200, message = "Retrieved the role count."),
- @ApiResponse(code = 500, message = "Error occurred while retrieving the role count.") })
- @Permission(scope = "roles-modify", permissions = {"/permission/admin/device-mgt/admin/roles/list"})
- Response getRoleCount();
+ Response updateUsersOfRole(@PathParam("roleName") String roleName, List users);
}
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
new file mode 100644
index 0000000000..8b2da1a339
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/UserManagementService.java
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.api;
+
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.wso2.carbon.apimgt.annotations.api.Permission;
+import org.wso2.carbon.device.mgt.jaxrs.beans.UserCredentialWrapper;
+import org.wso2.carbon.device.mgt.jaxrs.beans.UserWrapper;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/users")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface UserManagementService {
+
+ @POST
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Adding a User via the REST API",
+ notes = "Adds a new user to WSO2 EMM using this REST API")
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Created"),
+ @ApiResponse(code = 500, message = "Exception in trying to add user by username: 'username'")
+ })
+ @Permission(scope = "user-modify", permissions = {"/permission/admin/device-mgt/admin/user/add"})
+ Response addUser(UserWrapper user);
+
+ @GET
+ @Path("/{username}")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Getting Details of a User",
+ notes = "If you wish to get the details of a specific user that is registered with WSO2 EMM,"
+ + " you can do so using the REST API",
+ response = UserWrapper.class)
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "User information was retrieved successfully"),
+ @ApiResponse(code = 400, message = "User by username: 'username' does not exist"),
+ @ApiResponse(code = 500, message = "Exception in trying to retrieve user by username: 'username'")
+ })
+ @Permission(scope = "user-view", permissions = {"/permission/admin/device-mgt/admin/user/view"})
+ Response getUser(@PathParam("username") String username);
+
+ @PUT
+ @Path("/{username}")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ produces = MediaType.APPLICATION_JSON + ", " + MediaType.APPLICATION_XML,
+ httpMethod = "PUT",
+ value = "Updating Details of a User",
+ notes = "There will be situations where you will want to update the user details. In such "
+ + "situation you can update the user details using this REST API")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "User by username: 'username' was successfully updated"),
+ @ApiResponse(code = 409, message = "User by username: 'username' doesn't exists. Therefore, "
+ + "request made to update user was refused"),
+ @ApiResponse(code = 500, message = "Exception in trying to update user by username: 'username'")
+ })
+ @Permission(scope = "user-modify", permissions = {"/permission/admin/device-mgt/admin/user/update"})
+ Response updateUser(@PathParam("username") String username, UserWrapper user);
+
+ @DELETE
+ @Path("/{username}")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "DELETE",
+ value = "Deleting a User",
+ notes = "In a situation where an employee leaves the organization you will need to remove the"
+ + " user details from WSO2 EMM. In such situations you can use this REST API "
+ + "to remove a user")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "User by username: 'username' was successfully removed"),
+ @ApiResponse(code = 400, message = "User by username: 'username' does not exist for removal"),
+ @ApiResponse(code = 500, message = "Exception in trying to remove user by username: 'username'")
+ })
+ @Permission(scope = "user-modify", permissions = {"/permission/admin/device-mgt/admin/user/remove"})
+ Response removeUser(@PathParam("username") String username);
+
+ @POST
+ @Path("/{username}/roles")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Getting the Role Details of a User",
+ notes = "A user can be assigned to one or more role in WSO2 EMM. Using this REST API you are "
+ + "able to get the role/roles a user is assigned to",
+ response = String.class,
+ responseContainer = "List")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "User roles obtained for user : 'username'"),
+ @ApiResponse(code = 400, message = "User by username: 'username' does not exist for role retrieval"),
+ @ApiResponse(code = 500, message = "Exception in trying to retrieve roles for user by username: 'username'")
+ })
+ @Permission(scope = "user-view", permissions = {"/permission/admin/device-mgt/admin/user/view"})
+ Response getRolesOfUser(@PathParam("username") String username);
+
+ @GET
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Getting Details of Users",
+ notes = "If you wish to get the details of all the user registered with WSO2 EMM, you can do so "
+ + "using the REST API",
+ response = UserWrapper.class,
+ responseContainer = "List")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "All users were successfully retrieved"),
+ @ApiResponse(code = 500, message = "Error occurred while retrieving the list of users")
+ })
+ @Permission(scope = "user-view", permissions = {"/permission/admin/device-mgt/admin/user/list"})
+ Response getUsers(@QueryParam("filter") String filter, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit);
+
+ @GET
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Searching for a User Name",
+ notes = "You will have 100+ users registered with WSO2 EMM. Therefore if you are unsure of the "
+ + "user name of a user and need to retrieve the details of a specific user, you can "
+ + "search for that user by giving a character or a few characters in the username. "
+ + "You will be given a list of users having the user name with the exact order of the "
+ + "characters you provided",
+ response = String.class,
+ responseContainer = "List")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "All users by username were successfully retrieved. Obtained"
+ + " user count: 'count'"),
+ @ApiResponse(code = 500, message = "Error occurred while retrieving the list of users")
+ })
+ @Permission(scope = "user-view", permissions = {"/permission/admin/device-mgt/admin/user/list"})
+ Response getUserNames(@QueryParam("filter") String filter, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit);
+
+ @PUT
+ @Path("/{username}/credentials")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Changing the User Password",
+ notes = "A user is able to change the password to secure their EMM profile via this REST API")
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "UserImpl password by username: 'Username' was "
+ + "successfully changed"),
+ @ApiResponse(code = 400, message = "Old password does not match"),
+ @ApiResponse(code = 400, message = "Could not change the password of the user: 'Username'. The"
+ + " Character Encoding is not supported"),
+ @ApiResponse(code = 500, message = "Internal Server Error")
+ })
+ @Permission(scope = "user-modify", permissions = {"/permission/admin/login"})
+ Response resetPassword(@PathParam("username") String username, UserCredentialWrapper credentials);
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/ApplicationManagementAdminService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/ApplicationManagementAdminService.java
new file mode 100644
index 0000000000..2d4e4cc781
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/ApplicationManagementAdminService.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.api.admin;
+
+import org.wso2.carbon.device.mgt.jaxrs.beans.ApplicationWrapper;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/applications")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface ApplicationManagementAdminService {
+
+ @POST
+ @Path("/install-application")
+ Response installApplication(ApplicationWrapper applicationWrapper);
+
+ @POST
+ @Path("/uninstall-application")
+ Response uninstallApplication(ApplicationWrapper applicationWrapper);
+
+}
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
new file mode 100644
index 0000000000..8bba985eec
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.api.admin;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/devices")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface DeviceManagementAdminService {
+
+ Response getDevicesByName(@QueryParam("name") String name, @QueryParam("tenant-domain") String tenantDomain);
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/GroupManagementAdminService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/GroupManagementAdminService.java
new file mode 100644
index 0000000000..7d8d9846f8
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/GroupManagementAdminService.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.api.admin;
+
+import org.wso2.carbon.apimgt.annotations.api.Permission;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/groups")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface GroupManagementAdminService {
+
+ @GET
+ @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"})
+ Response getGroupsOfUser(@QueryParam("username") String username, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit);
+
+
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/UserManagementAdminService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/UserManagementAdminService.java
new file mode 100644
index 0000000000..fd7b8f8534
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/UserManagementAdminService.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.api.admin;
+
+import org.wso2.carbon.device.mgt.jaxrs.beans.UserCredentialWrapper;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/users")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public interface UserManagementAdminService {
+
+ @POST
+ @Path("/{username}/credentials")
+ Response resetPassword(@PathParam("username") String user, UserCredentialWrapper credentials);
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/ActivityProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/ActivityProviderServiceImpl.java
new file mode 100644
index 0000000000..5a22ce0563
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/ActivityProviderServiceImpl.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.impl;
+
+import io.swagger.annotations.ApiParam;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
+import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
+import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
+import org.wso2.carbon.device.mgt.jaxrs.service.api.ActivityInfoProviderService;
+import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
+
+import javax.ws.rs.PathParam;
+import javax.ws.rs.core.Response;
+
+public class ActivityProviderServiceImpl implements ActivityInfoProviderService {
+
+ private static final Log log = LogFactory.getLog(ActivityProviderServiceImpl.class);
+
+ @Override
+ public Response getActivity(@ApiParam(name = "id", value = "Provide activity id {id} as ACTIVITY_(number)",
+ required = true) @PathParam("id") String id) {
+ Operation operation = null;
+ DeviceManagementProviderService dmService;
+ try {
+ dmService = DeviceMgtAPIUtils.getDeviceManagementService();
+ operation = dmService.getOperationByActivityId(id);
+ } catch (OperationManagementException e) {
+ String msg = "Error occurred while fetching the activity for the supplied id.";
+ log.error(msg, e);
+ Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ return Response.status(Response.Status.OK).entity(operation).build();
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DashboardImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DashboardImpl.java
similarity index 99%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DashboardImpl.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DashboardImpl.java
index 3995e656a0..7e62dfe244 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/DashboardImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DashboardImpl.java
@@ -16,7 +16,7 @@
* under the License.
*/
-package org.wso2.carbon.device.mgt.jaxrs.api;
+package org.wso2.carbon.device.mgt.jaxrs.service.impl;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.logging.Log;
@@ -31,6 +31,7 @@ import org.wso2.carbon.device.mgt.common.PaginationResult;
import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
import org.wso2.carbon.device.mgt.jaxrs.beans.DashboardGadgetDataWrapper;
import org.wso2.carbon.device.mgt.jaxrs.beans.DashboardPaginationGadgetDataWrapper;
+import org.wso2.carbon.device.mgt.jaxrs.service.api.Dashboard;
import javax.ws.rs.*;
import javax.ws.rs.core.Response;
@@ -50,7 +51,7 @@ import java.util.List;
@Produces({"application/json"})
@SuppressWarnings("NonJaxWsWebServices")
-public class DashboardImpl implements Dashboard{
+public class DashboardImpl implements Dashboard {
private static Log log = LogFactory.getLog(DashboardImpl.class);
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImpl.java
new file mode 100644
index 0000000000..fea5ac917e
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImpl.java
@@ -0,0 +1,317 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.impl;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.joda.time.DateTime;
+import org.wso2.carbon.device.mgt.common.*;
+import org.wso2.carbon.device.mgt.common.app.mgt.Application;
+import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
+import org.wso2.carbon.device.mgt.common.device.details.DeviceLocation;
+import org.wso2.carbon.device.mgt.common.device.details.DeviceWrapper;
+import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
+import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
+import org.wso2.carbon.device.mgt.common.search.SearchContext;
+import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderService;
+import org.wso2.carbon.device.mgt.core.device.details.mgt.DeviceDetailsMgtException;
+import org.wso2.carbon.device.mgt.core.device.details.mgt.DeviceInformationManager;
+import org.wso2.carbon.device.mgt.core.search.mgt.SearchManagerService;
+import org.wso2.carbon.device.mgt.core.search.mgt.SearchMgtException;
+import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
+import org.wso2.carbon.device.mgt.jaxrs.service.api.DeviceManagementService;
+import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.Response;
+import java.util.Date;
+import java.util.List;
+
+@Path("/devices")
+public class DeviceManagementServiceImpl implements DeviceManagementService {
+
+ private static final Log log = LogFactory.getLog(DeviceManagementServiceImpl.class);
+
+ @GET
+ @Override
+ public Response getDevices(@QueryParam("offset") int offset, @QueryParam("limit") int limit) {
+ try {
+ DeviceManagementProviderService dms = DeviceMgtAPIUtils.getDeviceManagementService();
+ PaginationRequest request = new PaginationRequest(offset, limit);
+
+ PaginationResult result = dms.getAllDevices(request);
+ if (result == null || result.getData().size() == 0) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No device is currently enrolled " +
+ "with the server").build();
+ }
+ return Response.status(Response.Status.OK).entity(result.getData()).build();
+ } catch (DeviceManagementException e) {
+ String msg = "Error occurred while fetching all enrolled devices";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @Override
+ public Response getDevices(@HeaderParam("If-Modified-Since") Date timestamp,
+ @QueryParam("offset") int offset, @QueryParam("limit") int limit) {
+ SearchManagerService searchManagerService;
+ List devices;
+ try {
+ searchManagerService = DeviceMgtAPIUtils.getSearchManagerService();
+ devices = searchManagerService.getUpdated(timestamp.getTime());
+
+ } catch (SearchMgtException e) {
+ String msg = "Error occurred while retrieving the updated device information after the given time.";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ return Response.status(Response.Status.OK).entity(devices).build();
+ }
+
+ @GET
+ @Override
+ public Response getDevices(@QueryParam("type") String type, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit) {
+ try {
+ DeviceManagementProviderService dms = DeviceMgtAPIUtils.getDeviceManagementService();
+ PaginationRequest request = new PaginationRequest(offset, limit);
+ request.setDeviceType(type);
+
+ PaginationResult result = dms.getAllDevices(request);
+ if (result == null || result.getData().size() == 0) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No device of type '" + type +
+ "' is currently enrolled with the server").build();
+ }
+ return Response.status(Response.Status.OK).entity(result.getData()).build();
+ } catch (DeviceManagementException e) {
+ String msg = "Error occurred while fetching the devices of type '" + type + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @POST
+ @Override
+ public Response getDevices(List deviceIds) {
+ return null;
+ }
+
+ @GET
+ @Override
+ public Response getDeviceByUsername(@QueryParam("user") String user, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit) {
+ PaginationResult result;
+ try {
+ PaginationRequest request = new PaginationRequest(offset, limit);
+ request.setOwner(user);
+ result = DeviceMgtAPIUtils.getDeviceManagementService().getDevicesOfUser(request);
+ if (result == null || result.getData().size() == 0) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No device has currently been " +
+ "enrolled by the user '" + user + "'").build();
+ }
+ return Response.status(Response.Status.OK).entity(result.getData()).build();
+ } catch (DeviceManagementException e) {
+ String msg = "Error occurred while fetching the devices of user '" + user + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @GET
+ @Override
+ public Response getDevicesByRole(@QueryParam("roleName") String roleName, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit) {
+ List devices;
+ try {
+ devices = DeviceMgtAPIUtils.getDeviceManagementService().getAllDevicesOfRole(roleName);
+ if (devices == null || devices.size() == 0) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No device has currently been " +
+ "enrolled under the role '" + roleName + "'").build();
+ }
+ return Response.status(Response.Status.OK).entity(devices).build();
+ } catch (DeviceManagementException e) {
+ String msg = "Error occurred while fetching the devices of the role '" + roleName + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @GET
+ @Override
+ public Response getDevicesByOwnership(@QueryParam("ownership") EnrolmentInfo.OwnerShip ownership,
+ @QueryParam("offset") int offset, @QueryParam("limit") int limit) {
+ PaginationResult result;
+ try {
+ PaginationRequest request = new PaginationRequest(offset, limit);
+ request.setOwnership(ownership.toString());
+ result = DeviceMgtAPIUtils.getDeviceManagementService().getDevicesByOwnership(request);
+ if (result == null || result.getData().size() == 0) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No device has currently been enrolled " +
+ "under the ownership scheme '" + ownership.toString() + "'").build();
+ }
+ return Response.status(Response.Status.OK).entity(result.getData()).build();
+ } catch (DeviceManagementException e) {
+ String msg = "Error occurred while fetching the devices enrolled under the ownership scheme '" +
+ ownership.toString() + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @GET
+ @Override
+ public Response getDevicesByEnrollmentStatus(@QueryParam("status") EnrolmentInfo.Status status,
+ @QueryParam("offset") int offset, @QueryParam("limit") int limit) {
+ PaginationResult result;
+ try {
+ PaginationRequest request = new PaginationRequest(offset, limit);
+ request.setStatus(status.toString());
+ result = DeviceMgtAPIUtils.getDeviceManagementService().getDevicesByOwnership(request);
+ if (result == null || result.getData().size() == 0) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No device is currently in enrollment " +
+ "status '" + status.toString() + "'").build();
+ }
+ return Response.status(Response.Status.OK).entity(result.getData()).build();
+ } catch (DeviceManagementException e) {
+ String msg = "Error occurred while fetching the devices that carry the enrollment status '" +
+ status.toString() + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @GET
+ @Override
+ public Response getDevice(@QueryParam("type") String type, @QueryParam("id") String id) {
+ Device device;
+ try {
+ DeviceManagementProviderService dms = DeviceMgtAPIUtils.getDeviceManagementService();
+ device = dms.getDevice(new DeviceIdentifier(id, type));
+ } catch (DeviceManagementException e) {
+ String msg = "Error occurred while fetching the device information.";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ if (device == null) {
+ return Response.status(Response.Status.NOT_FOUND).entity("Requested device of type '" + type +
+ "', which carries id '" + id + "' does not exist").build();
+ }
+ return Response.status(Response.Status.OK).entity(device).build();
+ }
+
+ @GET
+ @Path("/{type}/{id}/location")
+ @Override
+ public Response getDeviceLocation(@PathParam("type") String type, @PathParam("id") String id) {
+ DeviceInformationManager informationManager;
+ DeviceLocation deviceLocation;
+ try {
+ informationManager = DeviceMgtAPIUtils.getDeviceInformationManagerService();
+ deviceLocation = informationManager.getDeviceLocation(new DeviceIdentifier(id, type));
+ } catch (DeviceDetailsMgtException e) {
+ String msg = "Error occurred while getting the last updated location of the '" + type + "' device, " +
+ "which carries the id '" + id + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ return Response.status(Response.Status.OK).entity(deviceLocation).build();
+ }
+
+ @GET
+ @Path("/{type}/{id}/features")
+ @Override
+ public Response getFeaturesOfDevice(@PathParam("type") String type, @PathParam("id") String id) {
+ List features;
+ DeviceManagementProviderService dms;
+ try {
+ dms = DeviceMgtAPIUtils.getDeviceManagementService();
+ features = dms.getFeatureManager(type).getFeatures();
+ } catch (DeviceManagementException e) {
+ String msg = "Error occurred while retrieving the list of features of '" + type + "' device, which " +
+ "carries the id '" + id + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ if (features == null || features.size() == 0) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No feature is currently associated " +
+ "with the '" + type + "' device, which carries the id '" + id + "'").build();
+ }
+ return Response.status(Response.Status.OK).entity(features).build();
+ }
+
+ @POST
+ @Path("/search-devices")
+ @Override
+ public Response searchDevices(SearchContext searchContext) {
+ SearchManagerService searchManagerService;
+ List devices;
+ try {
+ searchManagerService = DeviceMgtAPIUtils.getSearchManagerService();
+ devices = searchManagerService.search(searchContext);
+ } catch (SearchMgtException e) {
+ String msg = "Error occurred while searching for devices that matches the provided selection criteria";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ if (devices == null || devices.size() == 0) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No device can be retrieved upon the provided " +
+ "selection criteria").build();
+ }
+ return Response.status(Response.Status.OK).entity(devices).build();
+ }
+
+ @GET
+ @Path("/{type}/{id}/applications")
+ @Override
+ public Response getInstalledApplications(@PathParam("type") String type, @PathParam("id") String id) {
+ List applications;
+ ApplicationManagementProviderService amc;
+ try {
+ amc = DeviceMgtAPIUtils.getAppManagementService();
+ applications = amc.getApplicationListForDevice(new DeviceIdentifier(id, type));
+ } catch (ApplicationManagementException e) {
+ String msg = "Error occurred while fetching the apps of the '" + type + "' device, which carries " +
+ "the id '" + id + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ return Response.status(Response.Status.OK).entity(applications).build();
+ }
+
+ @GET
+ @Path("/{type}/{id}/operations")
+ @Override
+ public Response getDeviceOperations(@QueryParam("offset") int offset, @QueryParam("limit") int limit,
+ @PathParam("type") String type, @PathParam("id") String id) {
+ List extends Operation> operations;
+ DeviceManagementProviderService dms;
+ try {
+ dms = DeviceMgtAPIUtils.getDeviceManagementService();
+ operations = dms.getOperations(new DeviceIdentifier(id, type));
+ } catch (OperationManagementException e) {
+ String msg = "Error occurred while fetching the operations for the '" + type + "' device, which " +
+ "carries the id '" + id + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ return Response.status(Response.Status.OK).entity(operations).build();
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceTypeManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceTypeManagementServiceImpl.java
new file mode 100644
index 0000000000..eb908c70ee
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceTypeManagementServiceImpl.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.impl;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
+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.jaxrs.service.api.DeviceTypeManagementService;
+import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
+import org.wso2.carbon.device.mgt.jaxrs.util.MDMAppConstants;
+import org.wso2.carbon.device.mgt.jaxrs.util.ResponsePayload;
+import org.wso2.carbon.policy.mgt.core.util.PolicyManagerUtil;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.Response;
+import java.util.ArrayList;
+import java.util.List;
+
+@Path("/device-types")
+public class DeviceTypeManagementServiceImpl implements DeviceTypeManagementService {
+
+ private static final Log log = LogFactory.getLog(DeviceTypeManagementServiceImpl.class);
+
+ @GET
+ @Override
+ public Response getTypes() {
+ return null;
+ }
+
+ @POST
+ @Path("/{type}/configuration")
+ @Override
+ public Response saveConfiguration(@PathParam("type") String type, PlatformConfiguration config) {
+ ResponsePayload responseMsg = new ResponsePayload();
+ try {
+ DeviceMgtAPIUtils.getPlatformConfigurationManagementService().saveConfiguration(config,
+ MDMAppConstants.RegistryConstants.GENERAL_CONFIG_RESOURCE_PATH);
+ //Schedule the task service
+ DeviceMgtAPIUtils.scheduleTaskService(DeviceMgtAPIUtils.getNotifierFrequency(config));
+ return Response.status(Response.Status.OK).entity("Platform configuration of device type '" + type +
+ "' has successfully been saved").build();
+ } catch (ConfigurationManagementException e) {
+ String msg = "Error occurred while saving the platform configuration of device type '" + type + "'";
+ log.error(msg, e);
+ return javax.ws.rs.core.Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @GET
+ @Path("/{type}/configuration")
+ @Override
+ public Response getConfiguration(@PathParam("type") String type) {
+ String msg;
+ try {
+ PlatformConfiguration config = DeviceMgtAPIUtils.getPlatformConfigurationManagementService().
+ getConfiguration(MDMAppConstants.RegistryConstants.GENERAL_CONFIG_RESOURCE_PATH);
+ ConfigurationEntry configurationEntry = new ConfigurationEntry();
+ configurationEntry.setContentType("text");
+ configurationEntry.setName("notifierFrequency");
+ configurationEntry.setValue(PolicyManagerUtil.getMonitoringFequency());
+ List configList = config.getConfiguration();
+ if (configList == null) {
+ configList = new ArrayList<>();
+ }
+ configList.add(configurationEntry);
+ config.setConfiguration(configList);
+ return Response.status(Response.Status.OK).entity(config).build();
+ } catch (ConfigurationManagementException e) {
+ msg = "Error occurred while retrieving the configuration of device type '" + type + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @PUT
+ @Path("/{type}/configuration")
+ @Override
+ public Response updateConfiguration(@PathParam("type") String type, PlatformConfiguration config) {
+ ResponsePayload responseMsg = new ResponsePayload();
+ try {
+ DeviceMgtAPIUtils.getPlatformConfigurationManagementService().saveConfiguration(config,
+ MDMAppConstants.RegistryConstants.GENERAL_CONFIG_RESOURCE_PATH);
+ //Schedule the task service
+ DeviceMgtAPIUtils.scheduleTaskService(DeviceMgtAPIUtils.getNotifierFrequency(config));
+ return Response.status(Response.Status.CREATED).entity("Configuration of device type '" + type +
+ "' has successfully been updated").build();
+ } catch (ConfigurationManagementException e) {
+ String msg = "Error occurred while updating the configuration of device type '" + type + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/GroupManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/GroupManagementServiceImpl.java
new file mode 100644
index 0000000000..51047f528f
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/GroupManagementServiceImpl.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.impl;
+
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.context.PrivilegedCarbonContext;
+import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
+import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroup;
+import org.wso2.carbon.device.mgt.common.group.mgt.GroupManagementException;
+import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService;
+import org.wso2.carbon.device.mgt.jaxrs.service.api.GroupManagementService;
+import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
+import org.wso2.carbon.policy.mgt.common.DeviceGroupWrapper;
+
+import javax.ws.rs.PathParam;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Response;
+import java.util.ArrayList;
+import java.util.List;
+
+public class GroupManagementServiceImpl implements GroupManagementService {
+
+ private static final Log log = LogFactory.getLog(GroupManagementServiceImpl.class);
+
+ @Override
+ public Response getGroups(@QueryParam("offset") int offset, @QueryParam("limit") int limit) {
+ return null;
+ }
+
+ @Override
+ public Response createGroup(DeviceGroup group) {
+ return null;
+ }
+
+ @Override
+ public Response getGroup(@PathParam("groupName") String groupName) {
+ return null;
+ }
+
+ @Override
+ public Response updateGroup(@PathParam("groupName") String groupName, DeviceGroup deviceGroup) {
+ return null;
+ }
+
+ @Override
+ public Response deleteGroup(@PathParam("groupName") String groupName) {
+ return null;
+ }
+
+ @Override
+ public Response shareGroupWithUser(String groupName, String targetUser) {
+ return null;
+ }
+
+ @Override
+ public Response shareGroupWithRole(String groupName, String targetRole) {
+ return null;
+ }
+
+ @Override
+ public Response removeShareWithUser(@PathParam("groupName") String groupName,
+ @QueryParam("username") String targetUser) {
+ return null;
+ }
+
+ @Override
+ public Response removeShareWithRole(@PathParam("groupName") String groupName,
+ @QueryParam("roleName") String targetUser) {
+ return null;
+ }
+
+ @Override
+ public Response getUsersOfGroup(@PathParam("groupName") String groupName) {
+ return null;
+ }
+
+ @Override
+ public Response getDevicesOfGroup(@PathParam("groupName") String groupName, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit) {
+ return null;
+ }
+
+ @Override
+ public Response addDeviceToGroup(@PathParam("groupName") String groupName, DeviceIdentifier deviceIdentifier) {
+ return null;
+ }
+
+ @Override
+ public Response removeDeviceFromGroup(@PathParam("groupName") String groupName, @QueryParam("type") String type,
+ @QueryParam("id") String id) {
+ return null;
+ }
+
+ @Override
+ public Response getGroupsByUser(@QueryParam("user") String user) {
+ try {
+ List groupWrappers = new ArrayList<>();
+ GroupManagementProviderService service = DeviceMgtAPIUtils.getGroupManagementProviderService();
+ List deviceGroups = service.getGroups(user);
+ int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
+ for (DeviceGroup dg : deviceGroups) {
+ DeviceGroupWrapper gw = new DeviceGroupWrapper();
+ gw.setId(dg.getId());
+ gw.setOwner(dg.getOwner());
+ gw.setName(dg.getName());
+ gw.setTenantId(tenantId);
+ groupWrappers.add(gw);
+ }
+ return Response.status(Response.Status.OK).entity(groupWrappers).build();
+ } catch (GroupManagementException e) {
+ String error = "Error occurred while getting the groups related to users for policy.";
+ log.error(error, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(error).build();
+ }
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/NotificationManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/NotificationManagementServiceImpl.java
new file mode 100644
index 0000000000..cfe386b66c
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/NotificationManagementServiceImpl.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.impl;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.device.mgt.common.notification.mgt.Notification;
+import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException;
+import org.wso2.carbon.device.mgt.jaxrs.service.api.NotificationManagementService;
+import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.util.List;
+
+@Path("/notifications")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public class NotificationManagementServiceImpl implements NotificationManagementService {
+
+ private static final Log log = LogFactory.getLog(NotificationManagementServiceImpl.class);
+
+ @GET
+ @Override
+ public Response getNotifications(@QueryParam("offset") int offset, @QueryParam("limit") int limit) {
+ String msg;
+ try {
+ List notifications =
+ DeviceMgtAPIUtils.getNotificationManagementService().getAllNotifications();
+ if (notifications == null || notifications.size() == 0) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No notification is available to be " +
+ "retrieved").build();
+ }
+ return Response.status(Response.Status.OK).entity(notifications).build();
+ } catch (NotificationManagementException e) {
+ msg = "Error occurred while retrieving notification info";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @GET
+ @Override
+ public Response getNotificationsByStatus(@QueryParam("status") Notification.Status status,
+ @QueryParam("offset") int offset, @QueryParam("limit") int limit) {
+ String msg;
+ try {
+ List notifications =
+ DeviceMgtAPIUtils.getNotificationManagementService().getNotificationsByStatus(status);
+ if (notifications == null || notifications.size() == 0) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No notification, which carries " +
+ "the status '" + status.toString() + "' is available to be retrieved").build();
+ }
+ return Response.status(Response.Status.OK).entity(notifications).build();
+ } catch (NotificationManagementException e) {
+ msg = "Error occurred while retrieving the notification list that carries the status '" +
+ status.toString() + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @PUT
+ @Path("/{id}/status")
+ @Override
+ public Response updateNotificationStatus(@PathParam("id") int id, Notification.Status status) {
+ try {
+ DeviceMgtAPIUtils.getNotificationManagementService().updateNotificationStatus(id, status);
+ return Response.status(Response.Status.OK).entity("Notification status has successfully been updated").build();
+ } catch (NotificationManagementException e) {
+ String msg = "Error occurred while updating notification status";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @POST
+ @Override
+ public Response addNotification(Notification notification) {
+ try {
+ DeviceMgtAPIUtils.getNotificationManagementService().addNotification(notification);
+ return Response.status(Response.Status.OK).entity("Notification has successfully been added").build();
+ } catch (NotificationManagementException e) {
+ String msg = "Error occurred while updating notification status.";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/PolicyManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/PolicyManagementServiceImpl.java
new file mode 100644
index 0000000000..288740489d
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/PolicyManagementServiceImpl.java
@@ -0,0 +1,232 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.impl;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.context.PrivilegedCarbonContext;
+import org.wso2.carbon.device.mgt.common.Device;
+import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
+import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationException;
+import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationService;
+import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
+import org.wso2.carbon.device.mgt.jaxrs.service.api.PolicyManagementService;
+import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
+import org.wso2.carbon.device.mgt.jaxrs.beans.PolicyWrapper;
+import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtUtil;
+import org.wso2.carbon.policy.mgt.common.Policy;
+import org.wso2.carbon.policy.mgt.common.PolicyAdministratorPoint;
+import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
+import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.Response;
+import java.util.List;
+
+public class PolicyManagementServiceImpl implements PolicyManagementService {
+
+ private static final Log log = LogFactory.getLog(PolicyManagementServiceImpl.class);
+
+ @POST
+ @Override
+ public Response addPolicy(PolicyWrapper policyWrapper) {
+ PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
+ Policy policy = this.getPolicyFromWrapper(policyWrapper);
+
+ List devices = policy.getDevices();
+ if (devices != null && devices.size() == 1) {
+ DeviceAccessAuthorizationService deviceAccessAuthorizationService =
+ DeviceManagementDataHolder.getInstance().getDeviceAccessAuthorizationService();
+ DeviceIdentifier deviceIdentifier = new DeviceIdentifier(devices.get(0).getDeviceIdentifier(),
+ devices.get(0).getType());
+ PrivilegedCarbonContext threadLocalCarbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
+ String username = threadLocalCarbonContext.getUsername();
+ try {
+ if (!deviceAccessAuthorizationService.isUserAuthorized(deviceIdentifier, username)) {
+ return Response.status(Response.Status.UNAUTHORIZED).entity("Current logged in user is " +
+ "not authorized to add policies").build();
+ }
+ } catch (DeviceAccessAuthorizationException e) {
+ String msg = "Error occurred while checking if the current user is authorized to add a policy";
+ log.error(msg, e);
+ return javax.ws.rs.core.Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+ try {
+ PolicyAdministratorPoint pap = policyManagementService.getPAP();
+ pap.addPolicy(policy);
+ return Response.status(Response.Status.OK).entity("Policy has been added successfully").build();
+ } catch (PolicyManagementException e) {
+ String msg = "Error occurred while adding policy";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ private Policy getPolicyFromWrapper(PolicyWrapper policyWrapper) {
+ Policy policy = new org.wso2.carbon.policy.mgt.common.Policy();
+ policy.setPolicyName(policyWrapper.getPolicyName());
+ policy.setProfileId(policyWrapper.getProfileId());
+ policy.setDescription(policyWrapper.getDescription());
+ policy.setProfile(DeviceMgtUtil.convertProfile(policyWrapper.getProfile()));
+ policy.setOwnershipType(policyWrapper.getOwnershipType());
+ policy.setRoles(policyWrapper.getRoles());
+ policy.setUsers(policyWrapper.getUsers());
+ policy.setTenantId(policyWrapper.getTenantId());
+ policy.setCompliance(policyWrapper.getCompliance());
+ return policy;
+ }
+
+ @GET
+ @Override
+ public Response getPolicies(@QueryParam("offset") int offset, @QueryParam("limit") int limit) {
+ PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
+ List policies;
+ try {
+ PolicyAdministratorPoint policyAdministratorPoint = policyManagementService.getPAP();
+ policies = policyAdministratorPoint.getPolicies();
+ } catch (PolicyManagementException e) {
+ String msg = "Error occurred while retrieving all available policies";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ return Response.status(Response.Status.OK).entity(policies).build();
+ }
+
+ @GET
+ @Path("/{id}")
+ @Override
+ public Response getPolicy(@PathParam("id") int id) {
+ PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
+ final org.wso2.carbon.policy.mgt.common.Policy policy;
+ try {
+ PolicyAdministratorPoint policyAdministratorPoint = policyManagementService.getPAP();
+ policy = policyAdministratorPoint.getPolicy(id);
+ } catch (PolicyManagementException e) {
+ String msg = "Error occurred while retrieving policy corresponding to the id '" + id + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ if (policy == null) {
+ return Response.status(Response.Status.NOT_FOUND).entity("Policy for ID " + id + " not found").build();
+ }
+ return Response.status(Response.Status.OK).entity(policy).build();
+ }
+
+ @PUT
+ @Path("/{id}")
+ @Override
+ public Response updatePolicy(@PathParam("id") int id, PolicyWrapper policyWrapper) {
+ PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
+ Policy policy = this.getPolicyFromWrapper(policyWrapper);
+ try {
+ PolicyAdministratorPoint pap = policyManagementService.getPAP();
+ pap.updatePolicy(policy);
+ return Response.status(Response.Status.OK).entity("Policy has successfully been updated").build();
+ } catch (PolicyManagementException e) {
+ String msg = "Error occurred while updating the policy";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @POST
+ @Override
+ public Response removePolicies(List policyIds) {
+ PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
+ boolean policyDeleted = true;
+ try {
+ PolicyAdministratorPoint pap = policyManagementService.getPAP();
+ for (int i : policyIds) {
+ org.wso2.carbon.policy.mgt.common.Policy policy = pap.getPolicy(i);
+ if (!pap.deletePolicy(policy)) {
+ policyDeleted = false;
+ }
+ }
+ } catch (PolicyManagementException e) {
+ String msg = "Error occurred while removing policies";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ if (policyDeleted) {
+ return Response.status(Response.Status.OK).entity("Policies have been successfully deleted").build();
+ } else {
+ //TODO:Check of this logic is correct
+ return Response.status(Response.Status.BAD_REQUEST).entity("Policy doesn't exist").build();
+ }
+ }
+
+ @POST
+ @Path("/activate-policy")
+ @Override
+ public Response activatePolicies(List policyIds) {
+ try {
+ PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
+ PolicyAdministratorPoint pap = policyManagementService.getPAP();
+ for(int i : policyIds) {
+ pap.activatePolicy(i);
+ }
+ } catch (PolicyManagementException e) {
+ String msg = "Error occurred while activating policies";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ return Response.status(Response.Status.OK).entity("Selected policies have been successfully activated").build();
+ }
+
+ @POST
+ @Path("/deactivate-policy")
+ @Override
+ public Response deactivatePolicies(List policyIds) {
+ try {
+ PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
+ PolicyAdministratorPoint pap = policyManagementService.getPAP();
+ for(int i : policyIds) {
+ pap.inactivatePolicy(i);
+ }
+ } catch (PolicyManagementException e) {
+ String msg = "Exception in inactivating policies.";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ return Response.status(Response.Status.OK).entity("Selected policies have been successfully " +
+ "deactivated").build();
+ }
+
+ @GET
+ @Override
+ public Response getEffectivePolicyOfDevice(@QueryParam("device-type") String type,
+ @QueryParam("device-id") String deviceId) {
+ try {
+ PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
+ Policy policy = policyManagementService.getAppliedPolicyToDevice(new DeviceIdentifier(deviceId, type));
+ if (policy == null) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No policy has been found for the '" +
+ type + "' device, which carries the id '" + deviceId + "'").build();
+ }
+ return Response.status(Response.Status.OK).entity(policy).build();
+ } catch (PolicyManagementException e) {
+ String msg = "Error occurred while retrieving the current policy associated with the '" + type +
+ "' device, which carries the id '" + deviceId + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/RoleImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/RoleManagementServiceImpl.java
similarity index 59%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/RoleImpl.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/RoleManagementServiceImpl.java
index 3b9c8420fb..53e81196c5 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/impl/RoleImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/RoleManagementServiceImpl.java
@@ -1,95 +1,65 @@
/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * 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.
*
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
*/
+package org.wso2.carbon.device.mgt.jaxrs.service.impl;
-package org.wso2.carbon.device.mgt.jaxrs.api.impl;
-
-import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.CarbonConstants;
import org.wso2.carbon.base.MultitenantConstants;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.device.mgt.jaxrs.api.util.ResponsePayload;
+import org.wso2.carbon.device.mgt.jaxrs.service.api.RoleManagementService;
+import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
import org.wso2.carbon.device.mgt.jaxrs.beans.RoleWrapper;
import org.wso2.carbon.device.mgt.jaxrs.util.SetReferenceTransformer;
-import org.wso2.carbon.user.api.AuthorizationManager;
-import org.wso2.carbon.user.api.Permission;
-import org.wso2.carbon.user.api.UserRealm;
-import org.wso2.carbon.user.api.UserStoreException;
-import org.wso2.carbon.user.api.UserStoreManager;
+import org.wso2.carbon.user.api.*;
import org.wso2.carbon.user.core.common.AbstractUserStoreManager;
import org.wso2.carbon.user.mgt.UserRealmProxy;
import org.wso2.carbon.user.mgt.common.UIPermissionNode;
import org.wso2.carbon.user.mgt.common.UserAdminException;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
+import javax.ws.rs.*;
import javax.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-@SuppressWarnings("NonJaxWsWebServices")
-public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
+public class RoleManagementServiceImpl implements RoleManagementService {
- private static Log log = LogFactory.getLog(RoleImpl.class);
+ private static final Log log = LogFactory.getLog(RoleManagementServiceImpl.class);
- /**
- * Get user roles (except all internal roles) from system.
- *
- * @return A list of users
- */
- @Override
@GET
- @Produces({MediaType.APPLICATION_JSON})
- public Response getAllRoles() {
+ @Override
+ public Response getRoles(@QueryParam("offset") int offset, @QueryParam("limit") int limit) {
List filteredRoles;
try {
filteredRoles = getRolesFromUserStore();
- } catch (MDMAPIException e) {
- log.error(e.getErrorMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getErrorMessage()).build();
+ } catch (UserStoreException e) {
+ String msg = "Error occurred while retrieving roles from the underlying user stores";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("All user roles were successfully retrieved.");
- responsePayload.setResponseContent(filteredRoles);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
+ return Response.status(Response.Status.OK).entity(filteredRoles).build();
}
- /**
- * Get user roles by user store(except all internal roles) from system.
- *
- * @return A list of users
- */
- @Override
@GET
- @Path("{userStore}")
- @Produces({MediaType.APPLICATION_JSON})
- public Response getRolesOfUserStore(@PathParam("userStore") String userStore) {
+ @Override
+ public Response getRoles(@QueryParam("user-store") String userStoreName, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit) {
String[] roles;
try {
AbstractUserStoreManager abstractUserStoreManager =
@@ -97,10 +67,11 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
if (log.isDebugEnabled()) {
log.debug("Getting the list of user roles");
}
- roles = abstractUserStoreManager.getRoleNames(userStore + "/*", -1, false, true, true);
+ roles = abstractUserStoreManager.getRoleNames(userStoreName + "/*", -1, false, true, true);
- } catch (UserStoreException | MDMAPIException e) {
- String msg = "Error occurred while retrieving the list of user roles.";
+ } catch (UserStoreException e) {
+ String msg = "Error occurred while retrieving the list of user roles from the underlying user-store '" +
+ userStoreName + "'";
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
@@ -111,23 +82,13 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
filteredRoles.add(role);
}
}
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("All user roles were successfully retrieved.");
- responsePayload.setResponseContent(filteredRoles);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
+ return Response.status(Response.Status.OK).entity(filteredRoles).build();
}
- /**
- * Get user roles by providing a filtering criteria(except all internal roles & system roles) from system.
- *
- * @return A list of users
- */
- @Override
@GET
- @Path("search")
- @Produces({MediaType.APPLICATION_JSON})
- public Response getMatchingRoles(@QueryParam("filter") String filter) {
+ @Override
+ public Response searchRoles(@QueryParam("filter") String filter, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit) {
String[] roles;
try {
AbstractUserStoreManager abstractUserStoreManager =
@@ -137,8 +98,8 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
}
roles = abstractUserStoreManager.getRoleNames("*" + filter + "*", -1, true, true, true);
- } catch (UserStoreException | MDMAPIException e) {
- String msg = "Error occurred while retrieving the list of user roles using the filter : " + filter;
+ } catch (UserStoreException e) {
+ String msg = "Error occurred while retrieving the list of user roles using the filter '" + filter + "'";
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
@@ -149,23 +110,13 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
filteredRoles.add(role);
}
}
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("All matching user roles were successfully retrieved.");
- responsePayload.setResponseContent(filteredRoles);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
+ return Response.status(Response.Status.OK).entity(filteredRoles).build();
}
- /**
- * Get role permissions.
- *
- * @return list of permissions
- */
- @Override
@GET
- @Path("permissions")
- @Produces({MediaType.APPLICATION_JSON})
- public Response getPermissions(@QueryParam("rolename") String roleName) {
+ @Path("/{roleName}/permissions")
+ @Override
+ public Response getPermissionsOfRole(@PathParam("roleName") String roleName) {
try {
final UserRealm userRealm = DeviceMgtAPIUtils.getUserRealm();
org.wso2.carbon.user.core.UserRealm userRealmCore = null;
@@ -174,29 +125,45 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
userRealmCore = (org.wso2.carbon.user.core.UserRealm) userRealm;
}
final UserRealmProxy userRealmProxy = new UserRealmProxy(userRealmCore);
- rolePermissions = getUIPermissionNode(roleName, userRealmProxy);
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("All permissions retrieved");
- responsePayload.setResponseContent(rolePermissions);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
- } catch (UserAdminException | MDMAPIException e) {
- String msg = "Error occurred while retrieving the user role";
+ rolePermissions = this.getUIPermissionNode(roleName, userRealmProxy);
+ return Response.status(Response.Status.OK).entity(rolePermissions).build();
+ } catch (UserAdminException e) {
+ String msg = "Error occurred while retrieving the permissions of role '" + roleName + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ } catch (UserStoreException e) {
+ String msg = "Error occurred while retrieving the underlying user realm attached to the " +
+ "current logged in user";
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
}
- /**
- * Get user role of the system
- *
- * @return user role
- */
- @Override
+ private UIPermissionNode getUIPermissionNode(String roleName, UserRealmProxy userRealmProxy)
+ throws UserAdminException {
+ final UIPermissionNode rolePermissions =
+ userRealmProxy.getRolePermissions(roleName, MultitenantConstants.SUPER_TENANT_ID);
+ UIPermissionNode[] deviceMgtPermissions = new UIPermissionNode[2];
+
+ for (UIPermissionNode permissionNode : rolePermissions.getNodeList()) {
+ if (permissionNode.getResourcePath().equals("/permission/admin")) {
+ for (UIPermissionNode node : permissionNode.getNodeList()) {
+ if (node.getResourcePath().equals("/permission/admin/device-mgt")) {
+ deviceMgtPermissions[0] = node;
+ } else if (node.getResourcePath().equals("/permission/admin/login")) {
+ deviceMgtPermissions[1] = node;
+ }
+ }
+ }
+ }
+ rolePermissions.setNodeList(deviceMgtPermissions);
+ return rolePermissions;
+ }
+
@GET
- @Path("role")
- @Produces({MediaType.APPLICATION_JSON})
- public Response getRole(@QueryParam("rolename") String roleName) {
+ @Path("/{roleName}")
+ @Override
+ public Response getRole(@PathParam("roleName") String roleName) {
RoleWrapper roleWrapper = new RoleWrapper();
try {
final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
@@ -215,54 +182,32 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
roleWrapper.setUsers(userStoreManager.getUserListOfRole(roleName));
// Get the permission nodes and hand picking only device management and login perms
final UIPermissionNode rolePermissions = getUIPermissionNode(roleName, userRealmProxy);
- ArrayList permList = new ArrayList<>();
- iteratePermissions(rolePermissions, permList);
+ List permList = new ArrayList<>();
+ this.iteratePermissions(rolePermissions, permList);
roleWrapper.setPermissionList(rolePermissions);
String[] permListAr = new String[permList.size()];
roleWrapper.setPermissions(permList.toArray(permListAr));
}
- } catch (UserStoreException | UserAdminException | MDMAPIException e) {
- String msg = "Error occurred while retrieving the user role";
+ } catch (UserStoreException | UserAdminException e) {
+ String msg = "Error occurred while retrieving the user role '" + roleName + "'";
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
- ResponsePayload responsePayload = new ResponsePayload();
- responsePayload.setStatusCode(HttpStatus.SC_OK);
- responsePayload.setMessageFromServer("All user roles were successfully retrieved.");
- responsePayload.setResponseContent(roleWrapper);
- return Response.status(Response.Status.OK).entity(responsePayload).build();
+ return Response.status(Response.Status.OK).entity(roleWrapper).build();
}
- private UIPermissionNode getUIPermissionNode(String roleName, UserRealmProxy userRealmProxy)
- throws UserAdminException {
- final UIPermissionNode rolePermissions =
- userRealmProxy.getRolePermissions(roleName, MultitenantConstants.SUPER_TENANT_ID);
- UIPermissionNode[] deviceMgtPermissions = new UIPermissionNode[2];
-
- for (UIPermissionNode permissionNode : rolePermissions.getNodeList()) {
- if (permissionNode.getResourcePath().equals("/permission/admin")) {
- for (UIPermissionNode node : permissionNode.getNodeList()) {
- if (node.getResourcePath().equals("/permission/admin/device-mgt")) {
- deviceMgtPermissions[0] = node;
- } else if (node.getResourcePath().equals("/permission/admin/login")) {
- deviceMgtPermissions[1] = node;
- }
- }
+ private List iteratePermissions(UIPermissionNode uiPermissionNode, List list) {
+ for (UIPermissionNode permissionNode : uiPermissionNode.getNodeList()) {
+ list.add(permissionNode.getResourcePath());
+ if (permissionNode.getNodeList() != null && permissionNode.getNodeList().length > 0) {
+ iteratePermissions(permissionNode, list);
}
}
- rolePermissions.setNodeList(deviceMgtPermissions);
- return rolePermissions;
+ return list;
}
- /**
- * API is used to persist a new Role
- *
- * @param roleWrapper for role
- * @return response
- */
- @Override
@POST
- @Produces({MediaType.APPLICATION_JSON})
+ @Override
public Response addRole(RoleWrapper roleWrapper) {
try {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
@@ -279,24 +224,18 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
}
}
userStoreManager.addRole(roleWrapper.getRoleName(), roleWrapper.getUsers(), permissions);
- } catch (UserStoreException | MDMAPIException e) {
- String msg = e.getMessage();
+ } catch (UserStoreException e) {
+ String msg = "Error occurred while adding role '" + roleWrapper.getRoleName() + "'";
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
return Response.status(Response.Status.OK).build();
}
- /**
- * API is used to update a role Role
- *
- * @param roleWrapper for role
- * @return response
- */
- @Override
@PUT
- @Produces({MediaType.APPLICATION_JSON})
- public Response updateRole(@QueryParam("rolename") String roleName, RoleWrapper roleWrapper) {
+ @Path("/{roleName}")
+ @Override
+ public Response updateRole(@PathParam("roleName") String roleName, RoleWrapper roleWrapper) {
String newRoleName = roleWrapper.getRoleName();
try {
final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
@@ -310,7 +249,7 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
if (roleWrapper.getUsers() != null) {
SetReferenceTransformer transformer = new SetReferenceTransformer<>();
transformer.transform(Arrays.asList(userStoreManager.getUserListOfRole(newRoleName)),
- Arrays.asList(roleWrapper.getUsers()));
+ Arrays.asList(roleWrapper.getUsers()));
final String[] usersToAdd = transformer.getObjectsToAdd().toArray(new String[transformer
.getObjectsToAdd().size()]);
final String[] usersToDelete = transformer.getObjectsToRemove().toArray(new String[transformer
@@ -327,24 +266,18 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
}
}
}
- } catch (UserStoreException | MDMAPIException e) {
- String msg = e.getMessage();
+ } catch (UserStoreException e) {
+ String msg = "Error occurred while updating role '" + roleName + "'";
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
return Response.status(Response.Status.OK).build();
}
- /**
- * API is used to delete a role and authorizations
- *
- * @param roleName to delete
- * @return response
- */
- @Override
@DELETE
- @Produces({MediaType.APPLICATION_JSON})
- public Response deleteRole(@QueryParam("rolename") String roleName) {
+ @Path("/{roleName}")
+ @Override
+ public Response deleteRole(@PathParam("roleName") String roleName) {
try {
final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
final AuthorizationManager authorizationManager = DeviceMgtAPIUtils.getAuthorizationManager();
@@ -354,26 +287,18 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
userStoreManager.deleteRole(roleName);
// Delete all authorizations for the current role before deleting
authorizationManager.clearRoleAuthorization(roleName);
- } catch (UserStoreException | MDMAPIException e) {
- String msg = "Error occurred while deleting the role: " + roleName;
+ } catch (UserStoreException e) {
+ String msg = "Error occurred while deleting the role '" + roleName + "'";
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
return Response.status(Response.Status.OK).build();
}
- /**
- * API is used to update users of a role
- *
- * @param roleName to update
- * @param userList of the users
- * @return response
- */
+ @POST
+ @Path("/{roleName}/users")
@Override
- @PUT
- @Path("users")
- @Produces({MediaType.APPLICATION_JSON})
- public Response updateUsers(@QueryParam("rolename") String roleName, List userList) {
+ public Response updateUsersOfRole(@PathParam("roleName") String roleName, List users) {
try {
final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
if (log.isDebugEnabled()) {
@@ -381,63 +306,28 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
}
SetReferenceTransformer transformer = new SetReferenceTransformer<>();
transformer.transform(Arrays.asList(userStoreManager.getUserListOfRole(roleName)),
- userList);
+ users);
final String[] usersToAdd = transformer.getObjectsToAdd().toArray(new String[transformer
.getObjectsToAdd().size()]);
final String[] usersToDelete = transformer.getObjectsToRemove().toArray(new String[transformer
.getObjectsToRemove().size()]);
userStoreManager.updateUserListOfRole(roleName, usersToDelete, usersToAdd);
- } catch (UserStoreException | MDMAPIException e) {
- String msg = "Error occurred while saving the users of the role: " + roleName;
+ } catch (UserStoreException e) {
+ String msg = "Error occurred while updating the users of the role '" + roleName + "'";
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
return Response.status(Response.Status.OK).build();
}
- private ArrayList iteratePermissions(UIPermissionNode uiPermissionNode, ArrayList list) {
- for (UIPermissionNode permissionNode : uiPermissionNode.getNodeList()) {
- list.add(permissionNode.getResourcePath());
- if (permissionNode.getNodeList() != null && permissionNode.getNodeList().length > 0) {
- iteratePermissions(permissionNode, list);
- }
- }
- return list;
- }
-
- /**
- * This method is used to retrieve the role count of the system.
- *
- * @return returns the count.
- */
- @Override
- @GET
- @Path("count")
- public Response getRoleCount() {
- try {
- List filteredRoles = getRolesFromUserStore();
- Integer count = filteredRoles.size();
- return Response.status(Response.Status.OK).entity(count).build();
- } catch (MDMAPIException e) {
- log.error(e.getErrorMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getErrorMessage()).build();
- }
- }
-
- private List getRolesFromUserStore() throws MDMAPIException {
+ private List getRolesFromUserStore() throws UserStoreException {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
String[] roles;
- try {
- if (log.isDebugEnabled()) {
- log.debug("Getting the list of user roles");
- }
- roles = userStoreManager.getRoleNames();
-
- } catch (UserStoreException e) {
- String msg = "Error occurred while retrieving the list of user roles.";
- throw new MDMAPIException(msg, e);
+ if (log.isDebugEnabled()) {
+ log.debug("Getting the list of user roles");
}
+ roles = userStoreManager.getRoleNames();
// removing all internal roles, roles created for Service-providers and application related roles.
List filteredRoles = new ArrayList<>();
for (String role : roles) {
@@ -447,4 +337,5 @@ public class RoleImpl implements org.wso2.carbon.device.mgt.jaxrs.api.Role {
}
return filteredRoles;
}
+
}
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
new file mode 100644
index 0000000000..a74dededc2
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java
@@ -0,0 +1,402 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.impl;
+
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.context.CarbonContext;
+import org.wso2.carbon.device.mgt.common.DeviceManagementException;
+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.service.api.UserManagementService;
+import org.wso2.carbon.device.mgt.jaxrs.util.CredentialManagementResponseBuilder;
+import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
+import org.wso2.carbon.device.mgt.jaxrs.util.ResponsePayload;
+import org.wso2.carbon.device.mgt.jaxrs.beans.UserCredentialWrapper;
+import org.wso2.carbon.device.mgt.jaxrs.beans.UserWrapper;
+import org.wso2.carbon.device.mgt.jaxrs.util.Constants;
+import org.wso2.carbon.user.api.UserStoreException;
+import org.wso2.carbon.user.api.UserStoreManager;
+import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.io.UnsupportedEncodingException;
+import java.util.*;
+
+@Path("/users")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public class UserManagementServiceImpl implements UserManagementService {
+
+ private static final String ROLE_EVERYONE = "Internal/everyone";
+ private static final Log log = LogFactory.getLog(UserManagementServiceImpl.class);
+
+ @POST
+ @Override
+ public Response addUser(UserWrapper userWrapper) {
+ try {
+ UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
+ if (userStoreManager.isExistingUser(userWrapper.getUsername())) {
+ // if user already exists
+ if (log.isDebugEnabled()) {
+ log.debug("User by username: " + userWrapper.getUsername() +
+ " already exists. Therefore, request made to add user was refused.");
+ }
+ // returning response with bad request state
+ return Response.status(Response.Status.CONFLICT).entity("User by username: " + userWrapper.getUsername() +
+ " already exists. Therefore, request made to add user was refused.").build();
+ } else {
+ String initialUserPassword = this.generateInitialUserPassword();
+ Map defaultUserClaims =
+ this.buildDefaultUserClaims(userWrapper.getFirstname(), userWrapper.getLastname(),
+ userWrapper.getEmailAddress());
+ // calling addUser method of carbon user api
+ userStoreManager.addUser(userWrapper.getUsername(), initialUserPassword,
+ userWrapper.getRoles(), defaultUserClaims, null);
+ // invite newly added user to enroll device
+ this.inviteNewlyAddedUserToEnrollDevice(userWrapper.getUsername(), initialUserPassword);
+ // Outputting debug message upon successful addition of user
+ if (log.isDebugEnabled()) {
+ log.debug("User by username: " + userWrapper.getUsername() + " was successfully added.");
+ }
+ // returning response with success state
+ return Response.status(Response.Status.OK).entity("User by username: " + userWrapper.getUsername() +
+ " was successfully added.").build();
+ }
+ } catch (UserStoreException e) {
+ String msg = "Exception in trying to add user '" + userWrapper.getUsername() + "' to the user store";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ } catch (DeviceManagementException e) {
+ String msg = "Error occurred while inviting user to enroll the device";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ private Map buildDefaultUserClaims(String firstname, String lastname, String emailAddress) {
+ Map defaultUserClaims = new HashMap<>();
+ defaultUserClaims.put(Constants.USER_CLAIM_FIRST_NAME, firstname);
+ defaultUserClaims.put(Constants.USER_CLAIM_LAST_NAME, lastname);
+ defaultUserClaims.put(Constants.USER_CLAIM_EMAIL_ADDRESS, emailAddress);
+ if (log.isDebugEnabled()) {
+ log.debug("Default claim map is created for new user: " + defaultUserClaims.toString());
+ }
+ return defaultUserClaims;
+ }
+
+ private String generateInitialUserPassword() {
+ int passwordLength = 6;
+ //defining the pool of characters to be used for initial password generation
+ String lowerCaseCharset = "abcdefghijklmnopqrstuvwxyz";
+ String upperCaseCharset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ String numericCharset = "0123456789";
+ Random randomGenerator = new Random();
+ String totalCharset = lowerCaseCharset + upperCaseCharset + numericCharset;
+ int totalCharsetLength = totalCharset.length();
+ StringBuilder initialUserPassword = new StringBuilder();
+ for (int i = 0; i < passwordLength; i++) {
+ initialUserPassword
+ .append(totalCharset.charAt(randomGenerator.nextInt(totalCharsetLength)));
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("Initial user password is created for new user: " + initialUserPassword);
+ }
+ return initialUserPassword.toString();
+ }
+
+ private void inviteNewlyAddedUserToEnrollDevice(String username,
+ String password) throws DeviceManagementException, UserStoreException {
+ if (log.isDebugEnabled()) {
+ log.debug("Sending invitation mail to user by username: " + username);
+ }
+ String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
+ if (MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equalsIgnoreCase(tenantDomain)) {
+ tenantDomain = "";
+ }
+ if (!username.contains("/")) {
+ username = "/" + username;
+ }
+ String[] usernameBits = username.split("/");
+ DeviceManagementProviderService deviceManagementProviderService = DeviceMgtAPIUtils.getDeviceManagementService();
+
+ Properties props = new Properties();
+ props.setProperty("username", usernameBits[1]);
+ props.setProperty("domain-name", tenantDomain);
+ props.setProperty("first-name", getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME));
+ props.setProperty("password", password);
+
+ String recipient = getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS);
+
+ EmailMetaInfo metaInfo = new EmailMetaInfo(recipient, props);
+
+ deviceManagementProviderService.sendRegistrationEmail(metaInfo);
+ }
+
+ private String getClaimValue(String username, String claimUri) throws UserStoreException {
+ UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
+ return userStoreManager.getUserClaimValue(username, claimUri, null);
+ }
+
+ @GET
+ @Path("/{username}")
+ @Override
+ public Response getUser(@PathParam("username") String username) {
+ try {
+ UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
+ if (userStoreManager.isExistingUser(username)) {
+ UserWrapper user = new UserWrapper();
+ user.setUsername(username);
+ user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS));
+ user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME));
+ user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME));
+ // Outputting debug message upon successful retrieval of user
+ if (log.isDebugEnabled()) {
+ log.debug("User by username: " + username + " was found.");
+ }
+ return Response.status(Response.Status.OK).entity(user).build();
+ } else {
+ // Outputting debug message upon trying to remove non-existing user
+ if (log.isDebugEnabled()) {
+ log.debug("User by username: " + username + " does not exist.");
+ }
+ // returning response with bad request state
+ return Response.status(Response.Status.BAD_REQUEST).entity(
+ "User by username: " + username + " does not exist").build();
+ }
+ } catch (UserStoreException e) {
+ String msg = "Error occurred while retrieving information of the user '" + username + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @PUT
+ @Path("/{username}")
+ @Override
+ public Response updateUser(@PathParam("username") String username, UserWrapper userWrapper) {
+ ResponsePayload responsePayload = new ResponsePayload();
+ try {
+ UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
+ if (userStoreManager.isExistingUser(userWrapper.getUsername())) {
+ Map defaultUserClaims =
+ this.buildDefaultUserClaims(userWrapper.getFirstname(), userWrapper.getLastname(),
+ userWrapper.getEmailAddress());
+ if (StringUtils.isNotEmpty(userWrapper.getPassword())) {
+ // Decoding Base64 encoded password
+ byte[] decodedBytes = Base64.decodeBase64(userWrapper.getPassword());
+ userStoreManager.updateCredentialByAdmin(userWrapper.getUsername(),
+ new String(decodedBytes, "UTF-8"));
+ log.debug("User credential of username: " + userWrapper.getUsername() + " has been changed");
+ }
+ List currentRoles = this.getFilteredRoles(userStoreManager, userWrapper.getUsername());
+ List newRoles = Arrays.asList(userWrapper.getRoles());
+
+ List rolesToAdd = new ArrayList<>(newRoles);
+ List rolesToDelete = new ArrayList<>();
+
+ for (String role : currentRoles) {
+ if (newRoles.contains(role)) {
+ rolesToAdd.remove(role);
+ } else {
+ rolesToDelete.add(role);
+ }
+ }
+ rolesToDelete.remove(ROLE_EVERYONE);
+ userStoreManager.updateRoleListOfUser(userWrapper.getUsername(),
+ rolesToDelete.toArray(new String[rolesToDelete.size()]),
+ rolesToAdd.toArray(new String[rolesToAdd.size()]));
+ userStoreManager.setUserClaimValues(userWrapper.getUsername(), defaultUserClaims, null);
+ // Outputting debug message upon successful addition of user
+ if (log.isDebugEnabled()) {
+ log.debug("User by username: " + userWrapper.getUsername() + " was successfully updated.");
+ }
+ // returning response with success state
+ responsePayload.setStatusCode(HttpStatus.SC_CREATED);
+ responsePayload.setMessageFromServer("User by username: " + userWrapper.getUsername() +
+ " was successfully updated.");
+ return Response.status(Response.Status.CREATED).entity(responsePayload).build();
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("User by username: " + userWrapper.getUsername() +
+ " doesn't exists. Therefore, request made to update user was refused.");
+ }
+ // returning response with bad request state
+ responsePayload.setStatusCode(HttpStatus.SC_CONFLICT);
+ responsePayload.
+ setMessageFromServer("User by username: " + userWrapper.getUsername() +
+ " doesn't exists. Therefore, request made to update user was refused.");
+ return Response.status(Response.Status.CONFLICT).entity(responsePayload).build();
+ }
+ } catch (UserStoreException | UnsupportedEncodingException e) {
+ String msg = "Exception in trying to update user by username: " + userWrapper.getUsername();
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ private List getFilteredRoles(UserStoreManager userStoreManager, String username) {
+ String[] roleListOfUser = new String[0];
+ try {
+ roleListOfUser = userStoreManager.getRoleListOfUser(username);
+ } catch (UserStoreException e) {
+ e.printStackTrace();
+ }
+ List filteredRoles = new ArrayList<>();
+ for (String role : roleListOfUser) {
+ if (!(role.startsWith("Internal/") || role.startsWith("Authentication/"))) {
+ filteredRoles.add(role);
+ }
+ }
+ return filteredRoles;
+ }
+
+ @DELETE
+ @Path("/{username}")
+ @Override
+ public Response removeUser(@PathParam("username") String username) {
+ try {
+ UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
+ if (userStoreManager.isExistingUser(username)) {
+ // if user already exists, trying to remove user
+ userStoreManager.deleteUser(username);
+ // Outputting debug message upon successful removal of user
+ if (log.isDebugEnabled()) {
+ log.debug("User by username: " + username + " was successfully removed.");
+ }
+ // returning response with success state
+ return Response.status(Response.Status.OK).entity("User by username: " + username +
+ " was successfully removed.").build();
+ } else {
+ // Outputting debug message upon trying to remove non-existing user
+ if (log.isDebugEnabled()) {
+ log.debug("User by username: " + username + " does not exist for removal.");
+ }
+ // returning response with bad request state
+ return Response.status(Response.Status.BAD_REQUEST).entity("User by username: " + username +
+ " does not exist for removal.").build();
+ }
+ } catch (UserStoreException e) {
+ String msg = "Exception in trying to remove user by username: " + username;
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @POST
+ @Path("/{username}/roles")
+ @Override
+ public Response getRolesOfUser(@PathParam("username") String username) {
+ try {
+ UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
+ if (userStoreManager.isExistingUser(username)) {
+ return Response.status(Response.Status.OK).entity(Collections.singletonList(
+ getFilteredRoles(userStoreManager, username))).build();
+ } else {
+ // Outputting debug message upon trying to remove non-existing user
+ if (log.isDebugEnabled()) {
+ log.debug("User by username: " + username + " does not exist for role retrieval.");
+ }
+ return Response.status(Response.Status.BAD_REQUEST).entity("User by username: " + username +
+ " does not exist for role retrieval.").build();
+ }
+ } catch (UserStoreException e) {
+ String msg = "Exception in trying to retrieve roles for user by username: " + username;
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @GET
+ @Override
+ public Response getUsers(@QueryParam("filter") String filter, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit) {
+ if (log.isDebugEnabled()) {
+ log.debug("Getting the list of users with all user-related information");
+ }
+ List userList;
+ try {
+ UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
+ String[] users = userStoreManager.listUsers("*", -1);
+ userList = new ArrayList<>(users.length);
+ UserWrapper user;
+ for (String username : users) {
+ user = new UserWrapper();
+ user.setUsername(username);
+ user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS));
+ user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME));
+ user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME));
+ userList.add(user);
+ }
+ if (userList.size() <= 0) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No user is available to be retrieved").build();
+ }
+ return Response.status(Response.Status.OK).entity(userList).build();
+ } catch (UserStoreException e) {
+ String msg = "Error occurred while retrieving the list of users";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @GET
+ @Override
+ public Response getUserNames(@QueryParam("filter") String filter, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit) {
+ if (log.isDebugEnabled()) {
+ log.debug("Getting the list of users with all user-related information using the filter : " + filter);
+ }
+ List userList;
+ try {
+ UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
+ String[] users = userStoreManager.listUsers(filter + "*", -1);
+ userList = new ArrayList<>(users.length);
+ UserWrapper user;
+ for (String username : users) {
+ user = new UserWrapper();
+ user.setUsername(username);
+ user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS));
+ user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME));
+ user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME));
+ userList.add(user);
+ }
+ if (userList.size() <= 0) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No user is available to be retrieved").build();
+ }
+ return Response.status(Response.Status.OK).entity(userList).build();
+ } catch (UserStoreException e) {
+ String msg = "Error occurred while retrieving the list of users using the filter : " + filter;
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @PUT
+ @Path("/{username}/credentials")
+ @Override
+ public Response resetPassword(@PathParam("username") String username, UserCredentialWrapper credentials) {
+ return CredentialManagementResponseBuilder.buildChangePasswordResponse(credentials);
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/ApplicationManagementAdminServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/ApplicationManagementAdminServiceImpl.java
new file mode 100644
index 0000000000..34d90fe7cc
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/ApplicationManagementAdminServiceImpl.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.impl.admin;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
+import org.wso2.carbon.device.mgt.common.Platform;
+import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
+import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
+import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
+import org.wso2.carbon.device.mgt.jaxrs.exception.UnknownApplicationTypeException;
+import org.wso2.carbon.device.mgt.jaxrs.service.api.admin.ApplicationManagementAdminService;
+import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
+import org.wso2.carbon.device.mgt.jaxrs.util.MDMAndroidOperationUtil;
+import org.wso2.carbon.device.mgt.jaxrs.util.MDMIOSOperationUtil;
+import org.wso2.carbon.device.mgt.jaxrs.beans.ApplicationWrapper;
+import org.wso2.carbon.device.mgt.jaxrs.beans.MobileApp;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/applications")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public class ApplicationManagementAdminServiceImpl implements ApplicationManagementAdminService {
+
+ private static final Log log = LogFactory.getLog(ApplicationManagementAdminServiceImpl.class);
+
+ @POST
+ @Path("/install-application")
+ @Override
+ public Response installApplication(ApplicationWrapper applicationWrapper) {
+ ApplicationManager appManagerConnector;
+ Operation operation = null;
+ try {
+ appManagerConnector = DeviceMgtAPIUtils.getAppManagementService();
+ MobileApp mobileApp = applicationWrapper.getApplication();
+
+ if (applicationWrapper.getDeviceIdentifiers() != null) {
+ for (DeviceIdentifier deviceIdentifier : applicationWrapper.getDeviceIdentifiers()) {
+ if (deviceIdentifier.getType().equals(Platform.ANDROID.toString())) {
+ operation = MDMAndroidOperationUtil.createInstallAppOperation(mobileApp);
+ } else if (deviceIdentifier.getType().equals(Platform.IOS.toString())) {
+ operation = MDMIOSOperationUtil.createInstallAppOperation(mobileApp);
+ }
+ }
+ appManagerConnector.installApplicationForDevices(operation, applicationWrapper.getDeviceIdentifiers());
+ }
+ return Response.status(Response.Status.ACCEPTED).entity("Application installation request has been sent " +
+ "to the device").build();
+ } catch (ApplicationManagementException e) {
+ String msg = "Error occurred while processing application installation request";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ } catch (UnknownApplicationTypeException e) {
+ String msg = "The type of application requested to be installed is not supported";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ }
+ }
+
+ @POST
+ @Path("/uninstall-application")
+ @Override
+ public Response uninstallApplication(ApplicationWrapper applicationWrapper) {
+ ApplicationManager appManagerConnector;
+ org.wso2.carbon.device.mgt.common.operation.mgt.Operation operation = null;
+ try {
+ appManagerConnector = DeviceMgtAPIUtils.getAppManagementService();
+ MobileApp mobileApp = applicationWrapper.getApplication();
+
+ if (applicationWrapper.getDeviceIdentifiers() != null) {
+ for (DeviceIdentifier deviceIdentifier : applicationWrapper.getDeviceIdentifiers()) {
+ if (deviceIdentifier.getType().equals(Platform.ANDROID.toString())) {
+ operation = MDMAndroidOperationUtil.createAppUninstallOperation(mobileApp);
+ } else if (deviceIdentifier.getType().equals(Platform.IOS.toString())) {
+ operation = MDMIOSOperationUtil.createAppUninstallOperation(mobileApp);
+ }
+ }
+ appManagerConnector.installApplicationForDevices(operation, applicationWrapper.getDeviceIdentifiers());
+ }
+ return Response.status(Response.Status.ACCEPTED).entity("Application un-installation request has " +
+ "been sent to the device").build();
+ } catch (ApplicationManagementException e) {
+ String msg = "Error occurred while processing application un-installation request";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
+ } catch (UnknownApplicationTypeException e) {
+ String msg = "The type of application requested to be un-installed is not supported";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).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
new file mode 100644
index 0000000000..9efc01120b
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/DeviceManagementAdminServiceImpl.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.impl.admin;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.device.mgt.common.Device;
+import org.wso2.carbon.device.mgt.common.DeviceManagementException;
+import org.wso2.carbon.device.mgt.jaxrs.service.api.admin.DeviceManagementAdminService;
+import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.util.List;
+
+@Path("/devices")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public class DeviceManagementAdminServiceImpl implements DeviceManagementAdminService {
+
+ private static final Log log = LogFactory.getLog(DeviceManagementAdminServiceImpl.class);
+
+ @Override
+ public Response getDevicesByName(@QueryParam("name") String name, @QueryParam("tenant-domain") String tenantDomain) {
+ List devices;
+ try {
+ devices = DeviceMgtAPIUtils.getDeviceManagementService().getDevicesByName(name);
+ if (devices == null || devices.size() == 0) {
+ return Response.status(Response.Status.NOT_FOUND).entity("No device, which carries the name '" +
+ name + "', is currently enrolled in the system").build();
+ }
+ return Response.status(Response.Status.OK).entity(devices).build();
+ } catch (DeviceManagementException e) {
+ String msg = "Error occurred while fetching the devices that carry the name '" + name + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).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/GroupManagementAdminServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/GroupManagementAdminServiceImpl.java
new file mode 100644
index 0000000000..755292a8b4
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/GroupManagementAdminServiceImpl.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.impl.admin;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.device.mgt.common.PaginationResult;
+import org.wso2.carbon.device.mgt.common.group.mgt.GroupManagementException;
+import org.wso2.carbon.device.mgt.jaxrs.service.api.admin.GroupManagementAdminService;
+import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/groups")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public class GroupManagementAdminServiceImpl implements GroupManagementAdminService {
+
+ private static final Log log = LogFactory.getLog(GroupManagementAdminServiceImpl.class);
+
+ @Override
+ public Response getGroupsOfUser(@QueryParam("username") String username, @QueryParam("offset") int offset,
+ @QueryParam("limit") int limit) {
+ try {
+ PaginationResult result =
+ DeviceMgtAPIUtils.getGroupManagementProviderService().getGroups(username, offset, limit);
+ if (result != null && result.getRecordsTotal() > 0) {
+ return Response.status(Response.Status.OK).entity(result).build();
+ } else {
+ return Response.status(Response.Status.NOT_FOUND).build();
+ }
+ } catch (GroupManagementException e) {
+ String msg = "Error occurred while retrieving the groups of user '" + username + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).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/UserManagementAdminServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/UserManagementAdminServiceImpl.java
new file mode 100644
index 0000000000..a71a743203
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/UserManagementAdminServiceImpl.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.service.impl.admin;
+
+import org.wso2.carbon.device.mgt.jaxrs.service.api.admin.UserManagementAdminService;
+import org.wso2.carbon.device.mgt.jaxrs.util.CredentialManagementResponseBuilder;
+import org.wso2.carbon.device.mgt.jaxrs.beans.UserCredentialWrapper;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/users")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+public class UserManagementAdminServiceImpl implements UserManagementAdminService {
+
+ @POST
+ @Path("/{username}/credentials")
+ @Override
+ public Response resetPassword(@PathParam("username") String user, UserCredentialWrapper credentials) {
+ return CredentialManagementResponseBuilder.buildResetPasswordResponse(credentials);
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/CredentialManagementResponseBuilder.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/CredentialManagementResponseBuilder.java
similarity index 64%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/CredentialManagementResponseBuilder.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/CredentialManagementResponseBuilder.java
index 16d0dc7823..2431be65d9 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/CredentialManagementResponseBuilder.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/CredentialManagementResponseBuilder.java
@@ -16,13 +16,11 @@
* under the License.
*/
-package org.wso2.carbon.device.mgt.jaxrs.api.util;
+package org.wso2.carbon.device.mgt.jaxrs.util;
import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
import org.wso2.carbon.device.mgt.jaxrs.beans.UserCredentialWrapper;
import org.wso2.carbon.user.api.UserStoreException;
import org.wso2.carbon.user.api.UserStoreManager;
@@ -43,31 +41,22 @@ public class CredentialManagementResponseBuilder {
* @return Response Object
*/
public static Response buildChangePasswordResponse(UserCredentialWrapper credentials) {
- ResponsePayload responsePayload = new ResponsePayload();
-
try {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
byte[] decodedNewPassword = Base64.decodeBase64(credentials.getNewPassword());
byte[] decodedOldPassword = Base64.decodeBase64(credentials.getOldPassword());
userStoreManager.updateCredential(credentials.getUsername(), new String(
decodedNewPassword, "UTF-8"), new String(decodedOldPassword, "UTF-8"));
- responsePayload.setStatusCode(HttpStatus.SC_CREATED);
- responsePayload.setMessageFromServer("UserImpl password by username: " + credentials.getUsername() +
- " was successfully changed.");
- return Response.status(Response.Status.CREATED).entity(responsePayload).build();
+ return Response.status(Response.Status.OK).entity("UserImpl password by username: " +
+ credentials.getUsername() + " was successfully changed.").build();
} catch (UserStoreException e) {
log.error(e.getMessage(), e);
- responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST);
- responsePayload.setMessageFromServer("Old password does not match.");
- return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build();
+ return Response.status(Response.Status.BAD_REQUEST).entity("Old password does not match.").build();
} catch (UnsupportedEncodingException e) {
String errorMsg = "Could not change the password of the user: " + credentials.getUsername() +
". The Character Encoding is not supported.";
log.error(errorMsg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMsg).build();
- } catch (MDMAPIException e) {
- log.error(e.getErrorMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getErrorMessage()).build();
}
}
@@ -77,29 +66,22 @@ public class CredentialManagementResponseBuilder {
* @return Response Object
*/
public static Response buildResetPasswordResponse(UserCredentialWrapper credentials) {
- ResponsePayload responsePayload = new ResponsePayload();
try {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
byte[] decodedNewPassword = Base64.decodeBase64(credentials.getNewPassword());
userStoreManager.updateCredentialByAdmin(credentials.getUsername(), new String(
decodedNewPassword, "UTF-8"));
- responsePayload.setStatusCode(HttpStatus.SC_CREATED);
- responsePayload.setMessageFromServer("UserImpl password by username: " + credentials.getUsername() +
- " was successfully changed.");
- return Response.status(Response.Status.CREATED).entity(responsePayload).build();
+ return Response.status(Response.Status.CREATED).entity("UserImpl password by username: " +
+ credentials.getUsername() + " was successfully changed.").build();
} catch (UserStoreException e) {
- log.error(e.getMessage(), e);
- responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST);
- responsePayload.setMessageFromServer("Could not change the password.");
- return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build();
+ String msg = "Error occurred while updating the credentials of user '" + credentials.getUsername() + "'";
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
} catch (UnsupportedEncodingException e) {
- String errorMsg = "Could not change the password of the user: " + credentials.getUsername() +
+ String msg = "Could not change the password of the user: " + credentials.getUsername() +
". The Character Encoding is not supported.";
- log.error(errorMsg, e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMsg).build();
- } catch (MDMAPIException e) {
- log.error(e.getErrorMessage(), e);
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getErrorMessage()).build();
+ log.error(msg, e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/DeviceMgtAPIUtils.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/DeviceMgtAPIUtils.java
similarity index 58%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/DeviceMgtAPIUtils.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/DeviceMgtAPIUtils.java
index 393be31676..eabf90dfa7 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/DeviceMgtAPIUtils.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/DeviceMgtAPIUtils.java
@@ -16,20 +16,22 @@
* under the License.
*/
-package org.wso2.carbon.device.mgt.jaxrs.api.util;
+package org.wso2.carbon.device.mgt.jaxrs.util;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.certificate.mgt.core.service.CertificateManagementService;
import org.wso2.carbon.context.CarbonContext;
+<<<<<<< 67e5a5a23ac4a48544acc129220857ffe71ffb79:components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/DeviceMgtAPIUtils.java
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.analytics.dashboard.GadgetDataService;
import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
+=======
+>>>>>>> Making all CDM-F REST APIs compatible with the REST API specifications:components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/DeviceMgtAPIUtils.java
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
-import org.wso2.carbon.device.mgt.common.PaginationResult;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfigurationManagementService;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfigurationManagementService;
import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementService;
import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderService;
import org.wso2.carbon.device.mgt.core.device.details.mgt.DeviceInformationManager;
@@ -57,10 +59,10 @@ public class DeviceMgtAPIUtils {
private static final String NOTIFIER_FREQUENCY = "notifierFrequency";
private static Log log = LogFactory.getLog(DeviceMgtAPIUtils.class);
- public static int getNotifierFrequency(TenantConfiguration tenantConfiguration) {
+ public static int getNotifierFrequency(PlatformConfiguration tenantConfiguration) {
List configEntryList = tenantConfiguration.getConfiguration();
if (configEntryList != null && !configEntryList.isEmpty()) {
- for(ConfigurationEntry entry : configEntryList) {
+ for (ConfigurationEntry entry : configEntryList) {
if (NOTIFIER_FREQUENCY.equals(entry.getName())) {
return Integer.parseInt((String) entry.getValue());
}
@@ -84,7 +86,7 @@ public class DeviceMgtAPIUtils {
}
public static DeviceManagementProviderService getDeviceManagementService() {
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
+ CarbonContext ctx = CarbonContext.getThreadLocalCarbonContext();
DeviceManagementProviderService deviceManagementProviderService =
(DeviceManagementProviderService) ctx.getOSGiService(DeviceManagementProviderService.class, null);
if (deviceManagementProviderService == null) {
@@ -96,7 +98,7 @@ public class DeviceMgtAPIUtils {
}
public static GroupManagementProviderService getGroupManagementProviderService() {
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
+ CarbonContext ctx = CarbonContext.getThreadLocalCarbonContext();
GroupManagementProviderService groupManagementProviderService =
(GroupManagementProviderService) ctx.getOSGiService(GroupManagementProviderService.class, null);
if (groupManagementProviderService == null) {
@@ -106,102 +108,53 @@ public class DeviceMgtAPIUtils {
}
return groupManagementProviderService;
}
-
- public static int getTenantId(String tenantDomain) throws MDMAPIException {
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
- RealmService realmService = (RealmService) ctx.getOSGiService(RealmService.class, null);
- try {
- return realmService.getTenantManager().getTenantId(tenantDomain);
- } catch (UserStoreException e) {
- throw new MDMAPIException(
- "Error obtaining tenant id from tenant domain " + tenantDomain);
- }
- }
-
- public static UserStoreManager getUserStoreManager() throws MDMAPIException {
+
+ public static UserStoreManager getUserStoreManager() throws UserStoreException {
RealmService realmService;
UserStoreManager userStoreManager;
- try {
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
- realmService = (RealmService) ctx.getOSGiService(RealmService.class, null);
- if (realmService == null) {
- String msg = "Realm service has not initialized.";
- log.error(msg);
- throw new IllegalStateException(msg);
- }
- int tenantId = ctx.getTenantId();
- userStoreManager = realmService.getTenantUserRealm(tenantId).getUserStoreManager();
- } catch (UserStoreException e) {
- String msg = "Error occurred while retrieving current user store manager";
- log.error(msg, e);
- throw new MDMAPIException(msg, e);
+ CarbonContext ctx = CarbonContext.getThreadLocalCarbonContext();
+ realmService = (RealmService) ctx.getOSGiService(RealmService.class, null);
+ if (realmService == null) {
+ String msg = "Realm service has not initialized.";
+ log.error(msg);
+ throw new IllegalStateException(msg);
}
+ int tenantId = ctx.getTenantId();
+ userStoreManager = realmService.getTenantUserRealm(tenantId).getUserStoreManager();
return userStoreManager;
}
/**
* Getting the current tenant's user realm
- *
- * @return
- * @throws MDMAPIException
*/
- public static UserRealm getUserRealm() throws MDMAPIException {
+ public static UserRealm getUserRealm() throws UserStoreException {
RealmService realmService;
UserRealm realm;
- try {
- //PrivilegedCarbonContext.startTenantFlow();
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
- //ctx.setTenantDomain(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME);
- //ctx.setTenantId(MultitenantConstants.SUPER_TENANT_ID);
- realmService = (RealmService) ctx.getOSGiService(RealmService.class, null);
+ CarbonContext ctx = CarbonContext.getThreadLocalCarbonContext();
+ realmService = (RealmService) ctx.getOSGiService(RealmService.class, null);
- if (realmService == null) {
- String msg = "Realm service not initialized";
- log.error(msg);
- throw new MDMAPIException(msg);
- }
- int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
- realm = realmService.getTenantUserRealm(tenantId);
- } catch (UserStoreException e) {
- String msg = "Error occurred while retrieving current user realm";
- log.error(msg, e);
- throw new MDMAPIException(msg, e);
- } finally {
- //PrivilegedCarbonContext.endTenantFlow();
+ if (realmService == null) {
+ throw new IllegalStateException("Realm service not initialized");
}
+ int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
+ realm = realmService.getTenantUserRealm(tenantId);
return realm;
}
- public static AuthorizationManager getAuthorizationManager() throws MDMAPIException {
+ public static AuthorizationManager getAuthorizationManager() throws UserStoreException {
RealmService realmService;
AuthorizationManager authorizationManager;
- try {
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
- realmService = (RealmService) ctx.getOSGiService(RealmService.class, null);
- if (realmService == null) {
- String msg = "Realm service has not initialized.";
- log.error(msg);
- throw new IllegalStateException(msg);
- }
- int tenantId = ctx.getTenantId();
- authorizationManager = realmService.getTenantUserRealm(tenantId).getAuthorizationManager();
- } catch (UserStoreException e) {
- String msg = "Error occurred while retrieving current Authorization manager.";
- log.error(msg, e);
- throw new MDMAPIException(msg, e);
+ CarbonContext ctx = CarbonContext.getThreadLocalCarbonContext();
+ realmService = (RealmService) ctx.getOSGiService(RealmService.class, null);
+ if (realmService == null) {
+ throw new IllegalStateException("Realm service is not initialized.");
}
- return authorizationManager;
- }
+ int tenantId = ctx.getTenantId();
+ authorizationManager = realmService.getTenantUserRealm(tenantId).getAuthorizationManager();
- /**
- * This method is used to get the current tenant id.
- *
- * @return returns the tenant id.
- */
- public static int getTenantId() {
- return CarbonContext.getThreadLocalCarbonContext().getTenantId();
+ return authorizationManager;
}
-
+
public static DeviceIdentifier instantiateDeviceIdentifier(String deviceType, String deviceId) {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
deviceIdentifier.setType(deviceType);
@@ -210,20 +163,18 @@ public class DeviceMgtAPIUtils {
}
public static ApplicationManagementProviderService getAppManagementService() {
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
+ CarbonContext ctx = CarbonContext.getThreadLocalCarbonContext();
ApplicationManagementProviderService applicationManagementProviderService =
(ApplicationManagementProviderService) ctx.getOSGiService(ApplicationManagementProviderService.class, null);
if (applicationManagementProviderService == null) {
- String msg = "AuthenticationImpl management service has not initialized.";
- log.error(msg);
- throw new IllegalStateException(msg);
+ throw new IllegalStateException("AuthenticationImpl management service has not initialized.");
}
return applicationManagementProviderService;
}
public static PolicyManagerService getPolicyManagementService() {
PolicyManagerService policyManagementService;
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
+ CarbonContext ctx = CarbonContext.getThreadLocalCarbonContext();
policyManagementService =
(PolicyManagerService) ctx.getOSGiService(PolicyManagerService.class, null);
if (policyManagementService == null) {
@@ -234,52 +185,35 @@ public class DeviceMgtAPIUtils {
return policyManagementService;
}
- public static TenantConfigurationManagementService getTenantConfigurationManagementService() {
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
- TenantConfigurationManagementService tenantConfigurationManagementService =
- (TenantConfigurationManagementService) ctx.getOSGiService(TenantConfigurationManagementService.class, null);
+ public static PlatformConfigurationManagementService getPlatformConfigurationManagementService() {
+ CarbonContext ctx = CarbonContext.getThreadLocalCarbonContext();
+ PlatformConfigurationManagementService tenantConfigurationManagementService =
+ (PlatformConfigurationManagementService) ctx.getOSGiService(PlatformConfigurationManagementService.class, null);
if (tenantConfigurationManagementService == null) {
- String msg = "Tenant configuration Management service not initialized.";
- log.error(msg);
- throw new IllegalStateException(msg);
+ throw new IllegalStateException("Tenant configuration Management service not initialized.");
}
return tenantConfigurationManagementService;
}
public static NotificationManagementService getNotificationManagementService() {
NotificationManagementService notificationManagementService;
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
+ CarbonContext ctx = CarbonContext.getThreadLocalCarbonContext();
notificationManagementService = (NotificationManagementService) ctx.getOSGiService(
NotificationManagementService.class, null);
if (notificationManagementService == null) {
- String msg = "Notification Management service not initialized.";
- log.error(msg);
- throw new IllegalStateException(msg);
+ throw new IllegalStateException("Notification Management service not initialized.");
}
return notificationManagementService;
}
-
- public static PaginationResult getPagingResponse(int recordsTotal, int recordsFiltered, int draw, List> data) {
- PaginationResult pagingResponse = new PaginationResult();
- pagingResponse.setRecordsTotal(recordsTotal);
- pagingResponse.setRecordsFiltered(recordsFiltered);
- pagingResponse.setDraw(draw);
- pagingResponse.setData(data);
- return pagingResponse;
- }
-
+
public static CertificateManagementService getCertificateManagementService() {
-
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
+ CarbonContext ctx = CarbonContext.getThreadLocalCarbonContext();
CertificateManagementService certificateManagementService = (CertificateManagementService)
ctx.getOSGiService(CertificateManagementService.class, null);
if (certificateManagementService == null) {
- String msg = "CertificateImpl Management service not initialized.";
- log.error(msg);
- throw new IllegalStateException(msg);
+ throw new IllegalStateException("CertificateImpl Management service is not initialized.");
}
-
return certificateManagementService;
}
@@ -296,27 +230,22 @@ public class DeviceMgtAPIUtils {
}
public static DeviceInformationManager getDeviceInformationManagerService() {
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
+ CarbonContext ctx = CarbonContext.getThreadLocalCarbonContext();
DeviceInformationManager deviceInformationManager =
(DeviceInformationManager) ctx.getOSGiService(DeviceInformationManager.class, null);
if (deviceInformationManager == null) {
- String msg = "DeviceImpl information Manager service has not initialized.";
- log.error(msg);
- throw new IllegalStateException(msg);
+ throw new IllegalStateException("DeviceImpl information Manager service has not initialized.");
}
return deviceInformationManager;
}
-
public static SearchManagerService getSearchManagerService() {
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
+ CarbonContext ctx = CarbonContext.getThreadLocalCarbonContext();
SearchManagerService searchManagerService =
(SearchManagerService) ctx.getOSGiService(SearchManagerService.class, null);
if (searchManagerService == null) {
- String msg = "DeviceImpl search manager service has not initialized.";
- log.error(msg);
- throw new IllegalStateException(msg);
+ throw new IllegalStateException("DeviceImpl search manager service is not initialized.");
}
return searchManagerService;
}
@@ -329,4 +258,5 @@ public class DeviceMgtAPIUtils {
}
return gadgetDataService;
}
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/MDMAndroidOperationUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/MDMAndroidOperationUtil.java
similarity index 88%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/MDMAndroidOperationUtil.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/MDMAndroidOperationUtil.java
index 643cf3a9bf..ce04cdc137 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/MDMAndroidOperationUtil.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/MDMAndroidOperationUtil.java
@@ -16,15 +16,15 @@
* under the License.
*/
-package org.wso2.carbon.device.mgt.jaxrs.api.util;
+package org.wso2.carbon.device.mgt.jaxrs.util;
-import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
import org.wso2.carbon.device.mgt.jaxrs.beans.MobileApp;
import org.wso2.carbon.device.mgt.jaxrs.beans.android.AppStoreApplication;
import org.wso2.carbon.device.mgt.jaxrs.beans.android.EnterpriseApplication;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
import org.wso2.carbon.device.mgt.core.operation.mgt.ProfileOperation;
import org.wso2.carbon.device.mgt.jaxrs.beans.android.WebApplication;
+import org.wso2.carbon.device.mgt.jaxrs.exception.UnknownApplicationTypeException;
/**
*
@@ -37,10 +37,9 @@ public class MDMAndroidOperationUtil {
*
* @param application MobileApp application
* @return operation
- * @throws MDMAPIException
*
*/
- public static Operation createInstallAppOperation(MobileApp application) throws MDMAPIException {
+ public static Operation createInstallAppOperation(MobileApp application) throws UnknownApplicationTypeException {
ProfileOperation operation = new ProfileOperation();
operation.setCode(MDMAppConstants.AndroidConstants.OPCODE_INSTALL_APPLICATION);
@@ -69,8 +68,8 @@ public class MDMAndroidOperationUtil {
operation.setPayLoad(webApplication.toJSON());
break;
default:
- String errorMessage = "Invalid application type.";
- throw new MDMAPIException(errorMessage);
+ throw new UnknownApplicationTypeException("Application type '" + application.getType() +
+ "' is not supported");
}
return operation;
}
@@ -79,9 +78,8 @@ public class MDMAndroidOperationUtil {
* This method is used to create Uninstall Authentication operation.
* @param application MobileApp application
* @return operation
- * @throws MDMAPIException
*/
- public static Operation createAppUninstallOperation(MobileApp application) throws MDMAPIException {
+ public static Operation createAppUninstallOperation(MobileApp application) throws UnknownApplicationTypeException {
ProfileOperation operation = new ProfileOperation();
operation.setCode(MDMAppConstants.AndroidConstants.OPCODE_UNINSTALL_APPLICATION);
@@ -110,8 +108,8 @@ public class MDMAndroidOperationUtil {
operation.setPayLoad(webApplication.toJSON());
break;
default:
- String errorMessage = "Invalid application type.";
- throw new MDMAPIException(errorMessage);
+ throw new UnknownApplicationTypeException("Application type '" + application.getType() +
+ "' is not supported");
}
return operation;
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/MDMAppConstants.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/MDMAppConstants.java
similarity index 97%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/MDMAppConstants.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/MDMAppConstants.java
index 5c1d919ca5..32f3c4c2f1 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/MDMAppConstants.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/MDMAppConstants.java
@@ -16,7 +16,7 @@
* under the License.
*/
-package org.wso2.carbon.device.mgt.jaxrs.api.util;
+package org.wso2.carbon.device.mgt.jaxrs.util;
/**
* This class holds all the constants used for IOS and Android.
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/MDMIOSOperationUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/MDMIOSOperationUtil.java
new file mode 100644
index 0000000000..91ad342e5e
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/MDMIOSOperationUtil.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.wso2.carbon.device.mgt.jaxrs.util;
+
+import org.wso2.carbon.device.mgt.jaxrs.beans.MobileApp;
+import org.wso2.carbon.device.mgt.jaxrs.beans.ios.AppStoreApplication;
+import org.wso2.carbon.device.mgt.jaxrs.beans.ios.EnterpriseApplication;
+import org.wso2.carbon.device.mgt.jaxrs.beans.ios.RemoveApplication;
+import org.wso2.carbon.device.mgt.jaxrs.beans.ios.WebClip;
+import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
+import org.wso2.carbon.device.mgt.core.operation.mgt.ProfileOperation;
+
+import java.util.Properties;
+
+/**
+ * This class contains the all the operations related to IOS.
+ */
+public class MDMIOSOperationUtil {
+
+ /**
+ * This method is used to create Install Authentication operation.
+ *
+ * @param application MobileApp application
+ * @return operation
+ */
+ public static Operation createInstallAppOperation(MobileApp application) {
+
+ ProfileOperation operation = new ProfileOperation();
+
+ switch (application.getType()) {
+ case ENTERPRISE:
+ EnterpriseApplication enterpriseApplication =
+ new EnterpriseApplication();
+ enterpriseApplication.setBundleId(application.getId());
+ enterpriseApplication.setIdentifier(application.getIdentifier());
+ enterpriseApplication.setManifestURL(application.getLocation());
+
+ Properties properties = application.getProperties();
+ enterpriseApplication.setPreventBackupOfAppData((Boolean) properties.
+ get(MDMAppConstants.IOSConstants.IS_PREVENT_BACKUP));
+ enterpriseApplication.setRemoveAppUponMDMProfileRemoval((Boolean) properties.
+ get(MDMAppConstants.IOSConstants.IS_REMOVE_APP));
+ operation.setCode(MDMAppConstants.IOSConstants.OPCODE_INSTALL_ENTERPRISE_APPLICATION);
+ operation.setPayLoad(enterpriseApplication.toJSON());
+ operation.setType(Operation.Type.COMMAND);
+ break;
+ case PUBLIC:
+ AppStoreApplication appStoreApplication =
+ new AppStoreApplication();
+ appStoreApplication.setRemoveAppUponMDMProfileRemoval((Boolean) application.getProperties().
+ get(MDMAppConstants.IOSConstants.IS_REMOVE_APP));
+ appStoreApplication.setIdentifier(application.getIdentifier());
+ appStoreApplication.setPreventBackupOfAppData((Boolean) application.getProperties().
+ get(MDMAppConstants.IOSConstants.IS_PREVENT_BACKUP));
+ appStoreApplication.setBundleId(application.getId());
+ appStoreApplication.setiTunesStoreID((Integer) application.getProperties().
+ get(MDMAppConstants.IOSConstants.I_TUNES_ID));
+ operation.setCode(MDMAppConstants.IOSConstants.OPCODE_INSTALL_STORE_APPLICATION);
+ operation.setType(Operation.Type.COMMAND);
+ operation.setPayLoad(appStoreApplication.toJSON());
+ break;
+ case WEBAPP:
+ WebClip webClip = new WebClip();
+ webClip.setIcon(application.getIconImage());
+ webClip.setIsRemovable(application.getProperties().
+ getProperty(MDMAppConstants.IOSConstants.IS_REMOVE_APP));
+ webClip.setLabel(application.getProperties().
+ getProperty(MDMAppConstants.IOSConstants.LABEL));
+ webClip.setURL(application.getLocation());
+
+ operation.setCode(MDMAppConstants.IOSConstants.OPCODE_INSTALL_WEB_APPLICATION);
+ operation.setType(Operation.Type.PROFILE);
+ operation.setPayLoad(webClip.toJSON());
+ break;
+ }
+ return operation;
+ }
+
+ public static Operation createAppUninstallOperation(MobileApp application) {
+
+ ProfileOperation operation = new ProfileOperation();
+ operation.setCode(MDMAppConstants.IOSConstants.OPCODE_REMOVE_APPLICATION);
+ operation.setType(Operation.Type.PROFILE);
+
+ RemoveApplication removeApplication =
+ new RemoveApplication();
+ removeApplication.setBundleId(application.getIdentifier());
+ operation.setPayLoad(removeApplication.toJSON());
+
+ return operation;
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/ResponsePayload.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/ResponsePayload.java
similarity index 98%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/ResponsePayload.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/ResponsePayload.java
index 8fd94c619b..b7ecc5571a 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/api/util/ResponsePayload.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/ResponsePayload.java
@@ -16,7 +16,7 @@
* under the License.
*/
-package org.wso2.carbon.device.mgt.jaxrs.api.util;
+package org.wso2.carbon.device.mgt.jaxrs.util;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/cxf-servlet.xml b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/cxf-servlet.xml
index 9717f7e14d..1cabcadff0 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/cxf-servlet.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/cxf-servlet.xml
@@ -26,20 +26,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -65,22 +63,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/DeviceManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/DeviceManager.java
index c019276768..060865c726 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/DeviceManager.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/DeviceManager.java
@@ -17,7 +17,7 @@
*/
package org.wso2.carbon.device.mgt.common;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
import org.wso2.carbon.device.mgt.common.license.mgt.License;
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
@@ -40,14 +40,14 @@ public interface DeviceManager {
*
* @return Returns the status of the operation
*/
- boolean saveConfiguration(TenantConfiguration configuration) throws DeviceManagementException;
+ boolean saveConfiguration(PlatformConfiguration configuration) throws DeviceManagementException;
/**
* Method to get platform specific Configuration.
*
* @return Returns the platform specific tenant configurations
*/
- TenantConfiguration getConfiguration() throws DeviceManagementException;
+ PlatformConfiguration getConfiguration() throws DeviceManagementException;
/**
* Method to enrolling a particular device of type mobile, IoT, etc within CDM.
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/Platform.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/Platform.java
index 2b7f9b9cec..b911702ac5 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/Platform.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/Platform.java
@@ -20,5 +20,5 @@
package org.wso2.carbon.device.mgt.common;
public enum Platform {
- android, ios, windows;
+ ANDROID, IOS, WINDOWS;
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/ConfigurationManagementException.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/ConfigurationManagementException.java
index 370f37fe29..cc9b028440 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/ConfigurationManagementException.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/ConfigurationManagementException.java
@@ -18,31 +18,19 @@
package org.wso2.carbon.device.mgt.common.configuration.mgt;
public class ConfigurationManagementException extends Exception {
- private static final long serialVersionUID = -3151279311929070299L;
- private String errorMessage;
-
- public String getErrorMessage() {
- return errorMessage;
- }
-
- public void setErrorMessage(String errorMessage) {
- this.errorMessage = errorMessage;
- }
+ private static final long serialVersionUID = -3151279311929070299L;
public ConfigurationManagementException(String msg, Exception nestedEx) {
super(msg, nestedEx);
- setErrorMessage(msg);
}
public ConfigurationManagementException(String message, Throwable cause) {
super(message, cause);
- setErrorMessage(message);
}
public ConfigurationManagementException(String msg) {
super(msg);
- setErrorMessage(msg);
}
public ConfigurationManagementException() {
@@ -52,4 +40,5 @@ public class ConfigurationManagementException extends Exception {
public ConfigurationManagementException(Throwable cause) {
super(cause);
}
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/TenantConfiguration.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/PlatformConfiguration.java
similarity index 92%
rename from components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/TenantConfiguration.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/PlatformConfiguration.java
index df19ddf1dc..b7e8a0fd02 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/TenantConfiguration.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/PlatformConfiguration.java
@@ -31,12 +31,12 @@ import java.util.List;
/**
* Represents the tenant configuration for a device platform.
*/
-@XmlRootElement(name = "tenantConfiguration")
+@XmlRootElement(name = "PlatformConfiguration")
@XmlAccessorType(XmlAccessType.NONE)
-@ApiModel(value = "TenantConfiguration",
+@ApiModel(value = "PlatformConfiguration",
description = "This class carries all information related to a Tenant configuration")
-public class TenantConfiguration implements Serializable {
+public class PlatformConfiguration implements Serializable {
@XmlElement(name = "type")
@ApiModelProperty(name = "type", value = "type of device", required = true)
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/PlatformConfigurationManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/PlatformConfigurationManagementService.java
new file mode 100644
index 0000000000..f8840c7f30
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/PlatformConfigurationManagementService.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * you may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.wso2.carbon.device.mgt.common.configuration.mgt;
+
+/**
+ * This represents the tenant configuration management functionality which should be implemented by
+ * the device type plugins.
+ */
+public interface PlatformConfigurationManagementService {
+
+ /**
+ * Method to add a operation to a device or a set of devices.
+ *
+ * @param tenantConfiguration Operation to be added.
+ * @param resourcePath Registry resource path.
+ * @throws org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException
+ * If some unusual behaviour is observed while adding the
+ * configuration.
+ */
+ boolean saveConfiguration(PlatformConfiguration tenantConfiguration, String resourcePath) throws
+ ConfigurationManagementException;
+
+ /**
+ * Method to retrieve the list of general tenant configurations.
+ *
+ * @param resourcePath Registry resource path.
+ * @throws org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException
+ * If some unusual behaviour is observed while fetching the
+ * operation list.
+ */
+ PlatformConfiguration getConfiguration(String resourcePath) throws ConfigurationManagementException;
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/TenantConfigurationManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/TenantConfigurationManagementService.java
deleted file mode 100644
index 58e8d60be1..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/configuration/mgt/TenantConfigurationManagementService.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * you may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.wso2.carbon.device.mgt.common.configuration.mgt;
-
-/**
- * This represents the tenant configuration management functionality which should be implemented by
- * the device type plugins.
- */
-public interface TenantConfigurationManagementService {
-
- /**
- * Method to add a operation to a device or a set of devices.
- *
- * @param tenantConfiguration Operation to be added.
- * @param resourcePath Registry resource path.
- * @throws org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException If some unusual behaviour is observed while adding the
- * configuration.
- */
- boolean saveConfiguration(TenantConfiguration tenantConfiguration, String resourcePath) throws
- ConfigurationManagementException;
-
- /**
- * Method to retrieve the list of general tenant configurations.
- *
- * @param resourcePath Registry resource path.
- * @throws org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException If some unusual behaviour is observed while fetching the
- * operation list.
- */
- TenantConfiguration getConfiguration(String resourcePath) throws ConfigurationManagementException;
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/tenant/TenantConfigurationManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/tenant/TenantConfigurationManagementServiceImpl.java
index 61bf277094..68f611cd08 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/tenant/TenantConfigurationManagementServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/tenant/TenantConfigurationManagementServiceImpl.java
@@ -20,8 +20,8 @@ package org.wso2.carbon.device.mgt.core.config.tenant;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfigurationManagementService;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfigurationManagementService;
import org.wso2.carbon.device.mgt.core.config.ConfigurationManagerConstants;
import org.wso2.carbon.device.mgt.core.config.util.ConfigurationManagerUtil;
import org.wso2.carbon.registry.api.Resource;
@@ -36,17 +36,17 @@ import java.io.StringWriter;
import java.nio.charset.Charset;
/**
- * This class implements all the functionality exposed as part of the TenantConfigurationManagementService.
+ * This class implements all the functionality exposed as part of the PlatformConfigurationManagementService.
* Main usage of this module is saving/retrieving tenant configurations to the registry.
*
*/
public class TenantConfigurationManagementServiceImpl
- implements TenantConfigurationManagementService {
+ implements PlatformConfigurationManagementService {
private static final Log log = LogFactory.getLog(TenantConfigurationManagementServiceImpl.class);
@Override
- public boolean saveConfiguration(TenantConfiguration tenantConfiguration, String resourcePath)
+ public boolean saveConfiguration(PlatformConfiguration tenantConfiguration, String resourcePath)
throws ConfigurationManagementException {
boolean status;
try {
@@ -54,7 +54,7 @@ public class TenantConfigurationManagementServiceImpl
log.debug("Persisting tenant configurations in Registry");
}
StringWriter writer = new StringWriter();
- JAXBContext context = JAXBContext.newInstance(TenantConfiguration.class);
+ JAXBContext context = JAXBContext.newInstance(PlatformConfiguration.class);
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(tenantConfiguration, writer);
@@ -74,19 +74,19 @@ public class TenantConfigurationManagementServiceImpl
}
@Override
- public TenantConfiguration getConfiguration(String resourcePath)
+ public PlatformConfiguration getConfiguration(String resourcePath)
throws ConfigurationManagementException {
Resource resource;
try {
resource = ConfigurationManagerUtil.getRegistryResource(resourcePath);
if(resource != null){
- JAXBContext context = JAXBContext.newInstance(TenantConfiguration.class);
+ JAXBContext context = JAXBContext.newInstance(PlatformConfiguration.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
- return (TenantConfiguration) unmarshaller.unmarshal(
+ return (PlatformConfiguration) unmarshaller.unmarshal(
new StringReader(new String((byte[]) resource.getContent(), Charset
.forName(ConfigurationManagerConstants.CharSets.CHARSET_UTF8))));
}
- return new TenantConfiguration();
+ return new PlatformConfiguration();
} catch (JAXBException e) {
throw new ConfigurationManagementException(
"Error occurred while parsing the Tenant configuration : " + e.getMessage(), e);
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java
index eee04e06da..7cc222708a 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java
@@ -25,13 +25,11 @@ import org.wso2.carbon.apimgt.impl.APIManagerConfigurationService;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationService;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfigurationManagementService;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfigurationManagementService;
import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementService;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager;
import org.wso2.carbon.device.mgt.common.permission.mgt.PermissionManagerService;
-import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
-import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationProvider;
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
import org.wso2.carbon.device.mgt.core.DeviceManagementConstants;
import org.wso2.carbon.device.mgt.core.DeviceManagementPluginRepository;
@@ -51,7 +49,6 @@ import org.wso2.carbon.device.mgt.core.notification.mgt.dao.NotificationManageme
import org.wso2.carbon.device.mgt.core.operation.mgt.OperationManagerImpl;
import org.wso2.carbon.device.mgt.core.operation.mgt.dao.OperationManagementDAOFactory;
import org.wso2.carbon.device.mgt.core.permission.mgt.PermissionManagerServiceImpl;
-import org.wso2.carbon.device.mgt.core.push.notification.mgt.PushNotificationConfigRepository;
import org.wso2.carbon.device.mgt.core.push.notification.mgt.PushNotificationProviderRepository;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceImpl;
@@ -221,9 +218,9 @@ public class DeviceManagementServiceComponent {
bundleContext.registerService(GroupManagementProviderService.class.getName(), groupManagementProvider, null);
/* Registering Tenant Configuration Management Service */
- TenantConfigurationManagementService
+ PlatformConfigurationManagementService
tenantConfiguration = new TenantConfigurationManagementServiceImpl();
- bundleContext.registerService(TenantConfigurationManagementService.class.getName(), tenantConfiguration, null);
+ bundleContext.registerService(PlatformConfigurationManagementService.class.getName(), tenantConfiguration, null);
/* Registering Notification Service */
NotificationManagementService notificationManagementService
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 a333c199c3..ca50836132 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
@@ -24,12 +24,11 @@ import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
import org.wso2.carbon.device.mgt.common.FeatureManager;
import org.wso2.carbon.device.mgt.common.PaginationRequest;
import org.wso2.carbon.device.mgt.common.PaginationResult;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
import org.wso2.carbon.device.mgt.common.license.mgt.License;
import org.wso2.carbon.device.mgt.common.operation.mgt.Activity;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
-import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager;
import org.wso2.carbon.device.mgt.core.dto.DeviceType;
import java.util.List;
@@ -78,7 +77,7 @@ public interface DeviceManagementProviderService {
* @throws DeviceManagementException If some unusual behaviour is observed while fetching the
* configuration.
*/
- TenantConfiguration getConfiguration(String deviceType) throws DeviceManagementException;
+ PlatformConfiguration getConfiguration(String deviceType) throws DeviceManagementException;
/**
* Method to get the list of devices owned by an user with paging information.
@@ -187,9 +186,9 @@ public interface DeviceManagementProviderService {
boolean enrollDevice(Device device) throws DeviceManagementException;
- TenantConfiguration getConfiguration() throws DeviceManagementException;
+ PlatformConfiguration getConfiguration() throws DeviceManagementException;
- boolean saveConfiguration(TenantConfiguration configuration) throws DeviceManagementException;
+ boolean saveConfiguration(PlatformConfiguration configuration) throws DeviceManagementException;
boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException;
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 7439652b73..a8bb25fe3b 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
@@ -30,7 +30,7 @@ import org.wso2.carbon.device.mgt.common.FeatureManager;
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.configuration.mgt.TenantConfiguration;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
import org.wso2.carbon.device.mgt.common.license.mgt.License;
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
import org.wso2.carbon.device.mgt.common.operation.mgt.Activity;
@@ -93,7 +93,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
}
@Override
- public boolean saveConfiguration(TenantConfiguration configuration) throws DeviceManagementException {
+ public boolean saveConfiguration(PlatformConfiguration configuration) throws DeviceManagementException {
DeviceManager dms =
pluginRepository.getDeviceManagementService(configuration.getType(),
this.getTenantId()).getDeviceManager();
@@ -101,12 +101,12 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
}
@Override
- public TenantConfiguration getConfiguration() throws DeviceManagementException {
+ public PlatformConfiguration getConfiguration() throws DeviceManagementException {
return null;
}
@Override
- public TenantConfiguration getConfiguration(String deviceType) throws DeviceManagementException {
+ public PlatformConfiguration getConfiguration(String deviceType) throws DeviceManagementException {
DeviceManager dms =
pluginRepository.getDeviceManagementService(deviceType, this.getTenantId()).getDeviceManager();
if (dms == null) {
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManager.java
index d8ed7a6dc6..a1a17b47e3 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManager.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManager.java
@@ -16,7 +16,7 @@
package org.wso2.carbon.device.mgt.core;
import org.wso2.carbon.device.mgt.common.*;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
import org.wso2.carbon.device.mgt.common.license.mgt.License;
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
@@ -34,12 +34,12 @@ public class TestDeviceManager implements DeviceManager {
}
@Override
- public boolean saveConfiguration(TenantConfiguration configuration)
+ public boolean saveConfiguration(PlatformConfiguration configuration)
throws DeviceManagementException {
return false;
}
- @Override public TenantConfiguration getConfiguration() throws DeviceManagementException {
+ @Override public PlatformConfiguration getConfiguration() throws DeviceManagementException {
return null;
}
diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java
index 48d63ee4d2..c047c8cb92 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java
+++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java
@@ -24,8 +24,8 @@ import org.w3c.dom.Document;
import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfigurationManagementService;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfigurationManagementService;
import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroup;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager;
@@ -198,8 +198,8 @@ public class PolicyManagerUtil {
public static int getMonitoringFequency() {
- TenantConfigurationManagementService configMgtService = new TenantConfigurationManagementServiceImpl();
- TenantConfiguration tenantConfiguration = null;
+ PlatformConfigurationManagementService configMgtService = new TenantConfigurationManagementServiceImpl();
+ PlatformConfiguration tenantConfiguration = null;
int monitoringFrequency = 0;
try {
tenantConfiguration = configMgtService.getConfiguration(GENERAL_CONFIG_RESOURCE_PATH);