mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Modify android disenroll device API to support permanently delete device
This commit is contained in:
parent
b00e84db0b
commit
8efd8c74db
@ -63,6 +63,11 @@ public class TestDeviceManager implements DeviceManager {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean deleteDevice(DeviceIdentifier deviceId, Device device) throws DeviceManagementException {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@ -15,6 +15,22 @@
|
|||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019, Entgra (pvt) Ltd. (http://entgra.io) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
*/
|
*/
|
||||||
package org.wso2.carbon.mdm.services.android.services;
|
package org.wso2.carbon.mdm.services.android.services;
|
||||||
|
|
||||||
@ -40,6 +56,7 @@ import javax.ws.rs.PUT;
|
|||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.PathParam;
|
import javax.ws.rs.PathParam;
|
||||||
import javax.ws.rs.Produces;
|
import javax.ws.rs.Produces;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import javax.ws.rs.core.Response;
|
import javax.ws.rs.core.Response;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -406,6 +423,10 @@ public interface DeviceManagementService {
|
|||||||
@ApiParam(
|
@ApiParam(
|
||||||
name = "id",
|
name = "id",
|
||||||
value = "The unique device identifier.")
|
value = "The unique device identifier.")
|
||||||
@PathParam("id") String id);
|
@PathParam("id") String id,
|
||||||
|
@ApiParam(
|
||||||
|
name = "permanentDelete",
|
||||||
|
value = "Boolean flag indicating whether to permanently delete the device.")
|
||||||
|
@QueryParam("permanentDelete") boolean permanentDelete);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -78,6 +78,7 @@ import javax.ws.rs.PUT;
|
|||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.PathParam;
|
import javax.ws.rs.PathParam;
|
||||||
import javax.ws.rs.Produces;
|
import javax.ws.rs.Produces;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import javax.ws.rs.core.Response;
|
import javax.ws.rs.core.Response;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -446,26 +447,39 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
|||||||
@DELETE
|
@DELETE
|
||||||
@Path("/{id}")
|
@Path("/{id}")
|
||||||
@Override
|
@Override
|
||||||
public Response disEnrollDevice(@PathParam("id") String id) {
|
public Response disEnrollDevice(@PathParam("id") String id,
|
||||||
|
@QueryParam("permanentDelete") boolean permanentDelete) {
|
||||||
boolean result;
|
boolean result;
|
||||||
DeviceIdentifier deviceIdentifier = AndroidDeviceUtils.convertToDeviceIdentifierObject(id);
|
DeviceIdentifier deviceIdentifier = AndroidDeviceUtils.convertToDeviceIdentifierObject(id);
|
||||||
try {
|
try {
|
||||||
|
if (permanentDelete) {
|
||||||
|
result = AndroidAPIUtils.getDeviceManagementService().deleteDevice(deviceIdentifier);
|
||||||
|
} else {
|
||||||
result = AndroidAPIUtils.getDeviceManagementService().disenrollDevice(deviceIdentifier);
|
result = AndroidAPIUtils.getDeviceManagementService().disenrollDevice(deviceIdentifier);
|
||||||
|
}
|
||||||
if (result) {
|
if (result) {
|
||||||
|
String msg = "Android device that carries id '" + id + "' is successfully ";
|
||||||
Message responseMessage = new Message();
|
Message responseMessage = new Message();
|
||||||
responseMessage.setResponseCode(Response.Status.OK.toString());
|
responseMessage.setResponseCode(Response.Status.OK.toString());
|
||||||
responseMessage.setResponseMessage("Android device that carries id '" + id +
|
if (permanentDelete) {
|
||||||
"' has successfully dis-enrolled");
|
responseMessage.setResponseMessage(msg + "deleted");
|
||||||
|
} else {
|
||||||
|
responseMessage.setResponseMessage(msg + "dis-enrolled");
|
||||||
|
}
|
||||||
return Response.status(Response.Status.OK).entity(responseMessage).build();
|
return Response.status(Response.Status.OK).entity(responseMessage).build();
|
||||||
} else {
|
} else {
|
||||||
Message responseMessage = new Message();
|
Message responseMessage = new Message();
|
||||||
responseMessage.setResponseCode(Response.Status.NOT_FOUND.toString());
|
responseMessage.setResponseCode(Response.Status.NOT_FOUND.toString());
|
||||||
responseMessage.setResponseMessage("Android device that carries id '" + id +
|
responseMessage.setResponseMessage("Android device that carries id '" + id + "' is not available");
|
||||||
"' has not been dis-enrolled");
|
|
||||||
return Response.status(Response.Status.NOT_FOUND).entity(responseMessage).build();
|
return Response.status(Response.Status.NOT_FOUND).entity(responseMessage).build();
|
||||||
}
|
}
|
||||||
} catch (DeviceManagementException e) {
|
} catch (DeviceManagementException e) {
|
||||||
String msg = "Error occurred while dis-enrolling the Android device that carries the id '" + id + "'";
|
String msg = "Error occurred while %s the Android device that carries the id '" + id + "'";
|
||||||
|
if (permanentDelete) {
|
||||||
|
msg = String.format(msg, "deleting");
|
||||||
|
} else {
|
||||||
|
msg = String.format(msg, "dis-enrolling");
|
||||||
|
}
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
throw new UnexpectedServerErrorException(
|
throw new UnexpectedServerErrorException(
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
||||||
|
|||||||
@ -300,7 +300,7 @@ public class DeviceManagementServiceTests {
|
|||||||
public void testDisEnrollDeviceSuccess()
|
public void testDisEnrollDeviceSuccess()
|
||||||
throws DeviceManagementException, OperationManagementException, InvalidDeviceException {
|
throws DeviceManagementException, OperationManagementException, InvalidDeviceException {
|
||||||
mockDeviceManagementService();
|
mockDeviceManagementService();
|
||||||
Response response = deviceManagementService.disEnrollDevice(TestUtils.getDeviceId());
|
Response response = deviceManagementService.disEnrollDevice(TestUtils.getDeviceId(), false);
|
||||||
Assert.assertNotNull(response);
|
Assert.assertNotNull(response);
|
||||||
Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode());
|
Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode());
|
||||||
}
|
}
|
||||||
@ -309,7 +309,7 @@ public class DeviceManagementServiceTests {
|
|||||||
public void testDisenrollUnSuccess()
|
public void testDisenrollUnSuccess()
|
||||||
throws DeviceManagementException, OperationManagementException, InvalidDeviceException {
|
throws DeviceManagementException, OperationManagementException, InvalidDeviceException {
|
||||||
mockDeviceManagementService();
|
mockDeviceManagementService();
|
||||||
Response response = deviceManagementService.disEnrollDevice("1234");
|
Response response = deviceManagementService.disEnrollDevice("1234", false);
|
||||||
Assert.assertNotNull(response);
|
Assert.assertNotNull(response);
|
||||||
Assert.assertEquals(response.getStatus(), Response.Status.NOT_FOUND.getStatusCode());
|
Assert.assertEquals(response.getStatus(), Response.Status.NOT_FOUND.getStatusCode());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -220,6 +220,12 @@ public class AndroidDeviceManager implements DeviceManager {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean deleteDevice(DeviceIdentifier deviceId, Device device) throws DeviceManagementException {
|
||||||
|
//Returning false since AndroidDeviceManager is not used instead DeviceTypeManager is used.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||||
boolean isEnrolled = false;
|
boolean isEnrolled = false;
|
||||||
|
|||||||
@ -168,6 +168,12 @@ public class WindowsDeviceManager implements DeviceManager {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean deleteDevice(DeviceIdentifier deviceId, Device device) throws DeviceManagementException {
|
||||||
|
//Returning false since WindowsDeviceManager is not used instead DeviceTypeManager is used.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||||
boolean isEnrolled = false;
|
boolean isEnrolled = false;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user