Skipping the validation of task operations

4.x.x
geethkokila 9 years ago
parent ff56ecb32c
commit fbc7c0807c

@ -37,6 +37,8 @@ import org.wso2.carbon.device.mgt.core.operation.mgt.dao.OperationManagementDAOF
import org.wso2.carbon.device.mgt.core.operation.mgt.dao.OperationMappingDAO; import org.wso2.carbon.device.mgt.core.operation.mgt.dao.OperationMappingDAO;
import org.wso2.carbon.device.mgt.core.operation.mgt.dao.util.OperationDAOUtil; import org.wso2.carbon.device.mgt.core.operation.mgt.dao.util.OperationDAOUtil;
import org.wso2.carbon.device.mgt.core.operation.mgt.util.OperationCreateTimeComparator; import org.wso2.carbon.device.mgt.core.operation.mgt.util.OperationCreateTimeComparator;
import org.wso2.carbon.device.mgt.core.task.DeviceTaskManager;
import org.wso2.carbon.device.mgt.core.task.impl.DeviceTaskManagerImpl;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
@ -679,6 +681,13 @@ public class OperationManagerImpl implements OperationManager {
} }
private boolean isAuthenticationSkippedOperation(Operation operation) { private boolean isAuthenticationSkippedOperation(Operation operation) {
//This is to check weather operations are coming from the task related to retrieving device information.
DeviceTaskManager taskManager = new DeviceTaskManagerImpl();
if (taskManager.isTaskOperation(operation.getCode())) {
return true;
}
boolean status; boolean status;
switch (operation.getCode()) { switch (operation.getCode()) {
case DeviceManagementConstants.AuthorizationSkippedOperationCodes.POLICY_OPERATION_CODE : case DeviceManagementConstants.AuthorizationSkippedOperationCodes.POLICY_OPERATION_CODE :

@ -68,4 +68,12 @@ public interface DeviceTaskManager {
*/ */
List<String> getValidOperationNames() throws DeviceMgtTaskException; List<String> getValidOperationNames() throws DeviceMgtTaskException;
/**
* This method will check wheather give operation is added by the task.
* @param opName - Operation name
* @return - true or false
* @throws DeviceMgtTaskException
*/
boolean isTaskOperation(String opName);
} }

@ -97,7 +97,7 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager {
List<Device> devices = deviceManagementProviderService.getAllDevices(); List<Device> devices = deviceManagementProviderService.getAllDevices();
List<String> operations = this.getValidOperationNames(); List<String> operations = this.getValidOperationNames();
if(!devices.isEmpty()) { if (!devices.isEmpty()) {
for (String str : operations) { for (String str : operations) {
CommandOperation operation = new CommandOperation(); CommandOperation operation = new CommandOperation();
@ -107,7 +107,7 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager {
deviceManagementProviderService.addOperation(operation, DeviceManagerUtil.convertDevices(devices)); deviceManagementProviderService.addOperation(operation, DeviceManagerUtil.convertDevices(devices));
} }
} else { } else {
if(log.isDebugEnabled()){ if (log.isDebugEnabled()) {
log.debug("No devices are available to perform the operations."); log.debug("No devices are available to perform the operations.");
} }
} }
@ -142,10 +142,26 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager {
} }
} }
if(log.isDebugEnabled()){ if (log.isDebugEnabled()) {
log.debug("Valid operation names are : " + Arrays.toString(opNames.toArray())); log.debug("Valid operation names are : " + Arrays.toString(opNames.toArray()));
} }
return opNames; return opNames;
} }
@Override
public boolean isTaskOperation(String opName) {
try {
List<TaskOperation> taskOperations = this.getOperationList();
for (TaskOperation taop : taskOperations) {
if (taop.getTaskName().equalsIgnoreCase(opName)) {
return true;
}
}
} catch (DeviceMgtTaskException e) {
// ignoring the error, no need to throw, If error occurs, return value will be false.
}
return false;
}
} }

Loading…
Cancel
Save