diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagerProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagerProviderServiceImpl.java index 2fca27bffc..a19f7c3f6a 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagerProviderServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagerProviderServiceImpl.java @@ -32,16 +32,13 @@ 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.operation.mgt.Operation; import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException; -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; import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfig; import org.wso2.carbon.device.mgt.core.app.mgt.oauth.ServiceAuthenticator; import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager; import org.wso2.carbon.device.mgt.core.config.identity.IdentityConfigurations; import org.wso2.carbon.device.mgt.core.dao.*; import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder; -import org.wso2.carbon.device.mgt.core.internal.PluginInitializationListener; import org.wso2.carbon.identity.oauth.stub.OAuthAdminServiceException; import org.wso2.carbon.identity.oauth.stub.OAuthAdminServiceStub; import org.wso2.carbon.identity.oauth.stub.dto.OAuthConsumerAppDTO; @@ -56,9 +53,6 @@ import java.util.List; */ public class ApplicationManagerProviderServiceImpl implements ApplicationManagementProviderService { - private ConfigurationContext configCtx; - private ServiceAuthenticator authenticator; - private String oAuthAdminServiceUrl; private DeviceDAO deviceDAO; private ApplicationDAO applicationDAO; private ApplicationMappingDAO applicationMappingDAO; @@ -67,19 +61,6 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem private static final Log log = LogFactory.getLog(ApplicationManagerProviderServiceImpl.class); public ApplicationManagerProviderServiceImpl(AppManagementConfig appManagementConfig) { - - IdentityConfigurations identityConfig = DeviceConfigurationManager.getInstance().getDeviceManagementConfig(). - getDeviceManagementConfigRepository().getIdentityConfigurations(); - this.authenticator = - new ServiceAuthenticator(identityConfig.getAdminUsername(), identityConfig.getAdminPassword()); - this.oAuthAdminServiceUrl = - identityConfig.getServerUrl() + DeviceManagementConstants.AppManagement.OAUTH_ADMIN_SERVICE; - try { - this.configCtx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(null, null); - } catch (AxisFault e) { - throw new IllegalArgumentException("Error occurred while initializing Axis2 Configuration Context. " + - "Please check if an appropriate axis2.xml is provided", e); - } this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO(); this.applicationDAO = DeviceManagementDAOFactory.getApplicationDAO(); this.applicationMappingDAO = DeviceManagementDAOFactory.getApplicationMappingDAO(); @@ -112,7 +93,6 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem @Override public void installApplicationForDevices(Operation operation, List deviceIds) throws ApplicationManagementException { - try { DeviceManagementDataHolder.getInstance().getDeviceManagementProvider().addOperation(operation, deviceIds); DeviceManagementDataHolder.getInstance().getDeviceManagementProvider().notifyOperationToDevices @@ -207,50 +187,6 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem } } - public void updateInstalledApplicationListOfDevice( - DeviceIdentifier deviceIdentifier, List applications) throws ApplicationManagementException { - } - - private OAuthConsumerAppDTO getAppInfo() throws ApplicationManagementException { - OAuthConsumerAppDTO appInfo = null; - try { - OAuthAdminServiceStub oAuthAdminServiceStub = - new OAuthAdminServiceStub(configCtx, oAuthAdminServiceUrl); - authenticator.authenticate(oAuthAdminServiceStub._getServiceClient()); - - try { - appInfo = oAuthAdminServiceStub.getOAuthApplicationDataByAppName( - DeviceManagementConstants.AppManagement.OAUTH_APPLICATION_NAME); - } - //application doesn't exist. Due to the way getOAuthApplicationDataByAppName has been - //implemented, it throws an AxisFault if the App doesn't exist. Hence the catch. - catch (AxisFault fault) { - oAuthAdminServiceStub.registerOAuthApplicationData(this.getRequestDTO()); - appInfo = oAuthAdminServiceStub.getOAuthApplicationDataByAppName( - DeviceManagementConstants.AppManagement.OAUTH_APPLICATION_NAME); - } - } catch (RemoteException e) { - handleException("Error occurred while retrieving app info", e); - } catch (OAuthAdminServiceException e) { - handleException("Error occurred while invoking OAuth admin service stub", e); - } - return appInfo; - } - - private OAuthConsumerAppDTO getRequestDTO() { - OAuthConsumerAppDTO appDTO = new OAuthConsumerAppDTO(); - appDTO.setApplicationName(DeviceManagementConstants.AppManagement.OAUTH_APPLICATION_NAME); - appDTO.setGrantTypes( - DeviceManagementConstants.AppManagement.OAUTH2_GRANT_TYPE_CLIENT_CREDENTIALS); - appDTO.setOAuthVersion(DeviceManagementConstants.AppManagement.OAUTH_VERSION_2); - return appDTO; - } - - private void handleException(String msg, Exception e) throws ApplicationManagementException { - log.error(msg, e); - throw new ApplicationManagementException(msg, e); - } - @Override public void updateApplicationListInstalledInDevice( DeviceIdentifier deviceIdentifier, List applications) throws ApplicationManagementException { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementConfig.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementConfig.java index bdf7e9de8c..31dc99187a 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementConfig.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementConfig.java @@ -17,8 +17,14 @@ */ package org.wso2.carbon.device.mgt.core.config; +import org.wso2.carbon.device.mgt.core.config.identity.IdentityConfigurations; +import org.wso2.carbon.device.mgt.core.config.policy.PolicyConfiguration; +import org.wso2.carbon.device.mgt.core.config.task.TaskConfiguration; + import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; +import java.util.List; /** * Represents Device Mgt configuration. @@ -27,6 +33,10 @@ import javax.xml.bind.annotation.XmlRootElement; public final class DeviceManagementConfig { private DeviceManagementConfigRepository deviceManagementConfigRepository; + private TaskConfiguration taskConfiguration; + private IdentityConfigurations identityConfigurations; + private PolicyConfiguration policyConfiguration; + //private List pushNotificationProviders; @XmlElement(name = "ManagementRepository", required = true) public DeviceManagementConfigRepository getDeviceManagementConfigRepository() { @@ -37,4 +47,43 @@ public final class DeviceManagementConfig { this.deviceManagementConfigRepository = deviceManagementConfigRepository; } + @XmlElement(name = "IdentityConfiguration", required = true) + public IdentityConfigurations getIdentityConfigurations() { + return identityConfigurations; + } + + + public void setIdentityConfigurations(IdentityConfigurations identityConfigurations) { + this.identityConfigurations = identityConfigurations; + } + + @XmlElement(name = "PolicyConfiguration", required = true) + public PolicyConfiguration getPolicyConfiguration() { + return policyConfiguration; + } + + public void setPolicyConfiguration(PolicyConfiguration policyConfiguration) { + this.policyConfiguration = policyConfiguration; + } + + @XmlElement(name = "TaskConfiguration", required = true) + public TaskConfiguration getTaskConfiguration() { + return taskConfiguration; + } + + public void setTaskConfiguration(TaskConfiguration taskConfiguration) { + this.taskConfiguration = taskConfiguration; + } + +// @XmlElementWrapper(name = "PushNotificationProviders", required = true) +// @XmlElement(name = "Provider", required = true) +// public List getPushNotificationProviders() { +// return pushNotificationProviders; +// } +// +// public void setPushNotificationProviders(List pushNotificationProviders) { +// this.pushNotificationProviders = pushNotificationProviders; +// } + } + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementConfigRepository.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementConfigRepository.java index 2ae0b77436..919865040a 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementConfigRepository.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/DeviceManagementConfigRepository.java @@ -31,12 +31,7 @@ import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "ManagementRepository") public class DeviceManagementConfigRepository { - -// private EmailConfigurations emailConfigurations; - private TaskConfiguration taskConfiguration; private DataSourceConfig dataSourceConfig; - private IdentityConfigurations identityConfigurations; - private PolicyConfiguration policyConfiguration; @XmlElement(name = "DataSourceConfiguration", required = true) public DataSourceConfig getDataSourceConfig() { @@ -47,40 +42,4 @@ public class DeviceManagementConfigRepository { this.dataSourceConfig = dataSourceConfig; } -// @XmlElement(name = "EmailClientConfiguration", required = true) -// public EmailConfigurations getEmailConfigurations() { -// return emailConfigurations; -// } -// -// public void setEmailConfigurations(EmailConfigurations emailConfigurations) { -// this.emailConfigurations = emailConfigurations; -// } - - @XmlElement(name = "IdentityConfiguration", required = true) - public IdentityConfigurations getIdentityConfigurations() { - return identityConfigurations; - } - - - public void setIdentityConfigurations(IdentityConfigurations identityConfigurations) { - this.identityConfigurations = identityConfigurations; - } - - @XmlElement(name = "PolicyConfiguration", required = true) - public PolicyConfiguration getPolicyConfiguration() { - return policyConfiguration; - } - - public void setPolicyConfiguration(PolicyConfiguration policyConfiguration) { - this.policyConfiguration = policyConfiguration; - } - - @XmlElement(name = "TaskConfiguration", required = true) - public TaskConfiguration getTaskConfiguration() { - return taskConfiguration; - } - - public void setTaskConfiguration(TaskConfiguration taskConfiguration) { - this.taskConfiguration = taskConfiguration; - } } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/policy/PolicyConfiguration.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/policy/PolicyConfiguration.java index deb10035bc..2f419755c4 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/policy/PolicyConfiguration.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/config/policy/PolicyConfiguration.java @@ -31,7 +31,7 @@ public class PolicyConfiguration { private int minRetriesToMarkUnreachable; private int minRetriesToMarkInactive; - @XmlElement(name = "monitoringClass", required = true) + @XmlElement(name = "MonitoringClass", required = true) public String getMonitoringClass() { return monitoringClass; } @@ -40,7 +40,7 @@ public class PolicyConfiguration { this.monitoringClass = monitoringClass; } - @XmlElement(name = "maxRetries", required = true) + @XmlElement(name = "MaxRetries", required = true) public int getMaxRetries() { return maxRetries; } @@ -49,7 +49,7 @@ public class PolicyConfiguration { this.maxRetries = maxRetries; } - @XmlElement(name = "minRetriesToMarkUnreachable", required = true) + @XmlElement(name = "MinRetriesToMarkUnreachable", required = true) public int getMinRetriesToMarkUnreachable() { return minRetriesToMarkUnreachable; } @@ -58,7 +58,7 @@ public class PolicyConfiguration { this.minRetriesToMarkUnreachable = minRetriesToMarkUnreachable; } - @XmlElement(name = "monitoringEnable", required = true) + @XmlElement(name = "MonitoringEnable", required = true) public boolean getMonitoringEnable() { return monitoringEnable; } @@ -67,7 +67,7 @@ public class PolicyConfiguration { this.monitoringEnable = monitoringEnable; } - @XmlElement(name = "minRetriesToMarkInactive", required = true) + @XmlElement(name = "MinRetriesToMarkInactive", required = true) public int getMinRetriesToMarkInactive() { return minRetriesToMarkInactive; } @@ -76,7 +76,7 @@ public class PolicyConfiguration { this.minRetriesToMarkInactive = minRetriesToMarkInactive; } - @XmlElement(name = "monitoringFrequency", required = true) + @XmlElement(name = "MonitoringFrequency", required = true) public int getMonitoringFrequency() { return monitoringFrequency; } @@ -84,4 +84,5 @@ public class PolicyConfiguration { public void setMonitoringFrequency(int monitoringFrequency) { this.monitoringFrequency = monitoringFrequency; } + } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceTaskManagerServiceComponent.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceTaskManagerServiceComponent.java index 4d175bfa74..28a0a2345d 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceTaskManagerServiceComponent.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceTaskManagerServiceComponent.java @@ -52,8 +52,9 @@ public class DeviceTaskManagerServiceComponent { log.debug("Initializing device details retrieving task manager bundle."); } // This will start the device details retrieving task. - boolean taskEnable = DeviceConfigurationManager.getInstance().getDeviceManagementConfig(). - getDeviceManagementConfigRepository().getTaskConfiguration().isEnabled(); + boolean taskEnable = + DeviceConfigurationManager.getInstance().getDeviceManagementConfig().getTaskConfiguration(). + isEnabled(); if (taskEnable) { DeviceTaskManagerService taskManagerService = new DeviceTaskManagerServiceImpl(); taskManagerService.startTask(); @@ -70,7 +71,6 @@ public class DeviceTaskManagerServiceComponent { @SuppressWarnings("unused") protected void deactivate(ComponentContext componentContext) { - try { DeviceTaskManagerService taskManagerService = new DeviceTaskManagerServiceImpl(); taskManagerService.stopTask(); @@ -93,6 +93,7 @@ public class DeviceTaskManagerServiceComponent { } DeviceManagementDataHolder.getInstance().setTaskService(null); } + } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/Utils.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/Utils.java index 7f4537fa5c..f0997ce4b2 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/Utils.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/Utils.java @@ -22,18 +22,16 @@ package org.wso2.carbon.device.mgt.core.task; import org.wso2.carbon.context.PrivilegedCarbonContext; import java.util.HashMap; +import java.util.Map; public class Utils { - - public static HashMap getTenantedTaskOperationMap(HashMap> map) { - + public static Map getTenantedTaskOperationMap(Map> map) { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - if (map.containsKey(tenantId)) { return map.get(tenantId); } else { - HashMap mp = new HashMap<>(); + Map mp = new HashMap<>(); map.put(tenantId, mp); return mp; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java index cc9e8ac40b..b3bd8d5db0 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java @@ -36,23 +36,19 @@ import org.wso2.carbon.device.mgt.core.task.TaskOperation; import org.wso2.carbon.device.mgt.core.task.Utils; import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; +import java.util.*; public class DeviceTaskManagerImpl implements DeviceTaskManager { private static Log log = LogFactory.getLog(DeviceTaskManagerImpl.class); - private static HashMap> map = new HashMap<>(); + private static Map> map = new HashMap<>(); @Override public List getOperationList() throws DeviceMgtTaskException { - - TaskConfiguration taskConfiguration = DeviceConfigurationManager.getInstance().getDeviceManagementConfig(). - getDeviceManagementConfigRepository().getTaskConfiguration(); + TaskConfiguration taskConfiguration = + DeviceConfigurationManager.getInstance().getDeviceManagementConfig().getTaskConfiguration(); List ops = taskConfiguration.getOperations(); List taskOperations = new ArrayList<>(); @@ -68,29 +64,25 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager { @Override public int getTaskFrequency() throws DeviceMgtTaskException { - - return DeviceConfigurationManager.getInstance().getDeviceManagementConfig(). - getDeviceManagementConfigRepository().getTaskConfiguration().getFrequency(); + return DeviceConfigurationManager.getInstance().getDeviceManagementConfig().getTaskConfiguration(). + getFrequency(); } @Override public String getTaskImplementedClazz() throws DeviceMgtTaskException { - - return DeviceConfigurationManager.getInstance().getDeviceManagementConfig(). - getDeviceManagementConfigRepository().getTaskConfiguration().getTaskClazz(); + return DeviceConfigurationManager.getInstance().getDeviceManagementConfig().getTaskConfiguration(). + getTaskClazz(); } @Override public boolean isTaskEnabled() throws DeviceMgtTaskException { - - return DeviceConfigurationManager.getInstance().getDeviceManagementConfig(). - getDeviceManagementConfigRepository().getTaskConfiguration().isEnabled(); + return DeviceConfigurationManager.getInstance().getDeviceManagementConfig().getTaskConfiguration(). + isEnabled(); } @Override public void addOperations() throws DeviceMgtTaskException { - DeviceManagementProviderService deviceManagementProviderService = DeviceManagementDataHolder.getInstance().getDeviceManagementProvider(); try { @@ -98,7 +90,6 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager { List operations = this.getValidOperationNames(); if (!devices.isEmpty()) { - for (String str : operations) { CommandOperation operation = new CommandOperation(); operation.setEnabled(true); @@ -116,17 +107,15 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager { } catch (OperationManagementException e) { throw new DeviceMgtTaskException("Error occurred while adding the operations to devices", e); } - } @Override public List getValidOperationNames() throws DeviceMgtTaskException { - List taskOperations = this.getOperationList(); List opNames = new ArrayList<>(); Long milliseconds = System.currentTimeMillis(); int frequency = this.getTaskFrequency(); - HashMap mp = Utils.getTenantedTaskOperationMap(map); + Map mp = Utils.getTenantedTaskOperationMap(map); for (TaskOperation top : taskOperations) { if (!mp.containsKey(top.getTaskName())) { @@ -163,5 +152,6 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager { return false; } + } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagementProviderServiceTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagementProviderServiceTest.java index 4c7996e381..36bb7c4265 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagementProviderServiceTest.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/app/mgt/ApplicationManagementProviderServiceTest.java @@ -27,7 +27,6 @@ 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.core.DeviceManagementPluginRepository; import org.wso2.carbon.device.mgt.core.TestDeviceManagementService; -import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfig; import org.wso2.carbon.device.mgt.core.common.TestDataHolder; import java.util.ArrayList; @@ -35,13 +34,11 @@ import java.util.List; public class ApplicationManagementProviderServiceTest { - private ApplicationManagementProviderService appMgtProvider; private static final Log log = LogFactory.getLog(ApplicationManagementProviderServiceTest.class); - private DeviceManagementPluginRepository deviceManagementPluginRepository = null; @BeforeClass public void init() { - deviceManagementPluginRepository = new DeviceManagementPluginRepository(); + DeviceManagementPluginRepository deviceManagementPluginRepository = new DeviceManagementPluginRepository(); TestDeviceManagementService testDeviceManagementService = new TestDeviceManagementService(TestDataHolder.TEST_DEVICE_TYPE, TestDataHolder.SUPER_TENANT_DOMAIN); try { @@ -82,8 +79,7 @@ public class ApplicationManagementProviderServiceTest { deviceId.setId(deviceIdentifier); deviceId.setType(device.getType()); - AppManagementConfig appManagementConfig = new AppManagementConfig(); - appMgtProvider = new ApplicationManagerProviderServiceImpl(); + ApplicationManagementProviderService appMgtProvider = new ApplicationManagerProviderServiceImpl(); try { appMgtProvider.updateApplicationListInstalledInDevice(deviceId, applications); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/group.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/group.js index 37894ac2a3..9ad1b2001b 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/group.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/group.js @@ -20,6 +20,7 @@ var groupModule = {}; (function (groupModule) { var log = new Log("/app/modules/group.js"); + var userModule = require("/app/modules/user.js").userModule; var constants = require('/app/modules/constants.js'); var devicemgtProps = require('/app/conf/devicemgt-props.js').config(); var utility = require("/app/modules/utility.js").utility; @@ -32,7 +33,12 @@ var groupModule = {}; var endPoint; groupModule.getGroupCount = function () { - endPoint = groupServiceEndpoint + "/user/" + user.username + "/count"; + var permissions = userModule.getUIPermissions(); + if (permissions.LIST_ALL_GROUPS) { + endPoint = groupServiceEndpoint + "/count"; + } else if (permissions.LIST_GROUPS) { + endPoint = groupServiceEndpoint + "/user/" + user.username + "/count"; + } return serviceInvokers.XMLHttp.get( endPoint, function (responsePayload) { return responsePayload; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.hbs b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.hbs index 20edeaf190..e890993cd9 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.hbs +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.hbs @@ -100,18 +100,19 @@ - - - -
-

Enabling Device Operations

-

To enable device operations, select the desired platform from above - filter.

-
- - + + + + + + + + + + + + + @@ -326,7 +327,6 @@ {{#zone "bottomJs"}} {{js "js/listing.js"}} {{/zone}} \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/public/js/listing.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/public/js/listing.js index 8e19a542d5..545c12eee0 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/public/js/listing.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/public/js/listing.js @@ -70,7 +70,6 @@ $(document).ready(function () { addDeviceSelectedClass(this); }); - var i; var permissionList = $("#permission").data("permission"); for (var key in permissionList) { if (permissionList.hasOwnProperty(key)) { @@ -163,10 +162,8 @@ function toTitleCase(str) { function loadDevices(searchType, searchParam){ var deviceListing = $("#device-listing"); - var deviceListingSrc = deviceListing.attr("src"); var imageResource = deviceListing.data("image-resource"); var currentUser = deviceListing.data("currentUser"); - var frontEndPagination = false; var serviceURL; if ($.hasPermission("LIST_DEVICES")) { @@ -206,6 +203,16 @@ function loadDevices(searchType, searchParam){ return type; } + function getDeviceTypeCategory(type) { + var deviceTypes = deviceListing.data("deviceTypes"); + for (var i = 0; i < deviceTypes.length; i++) { + if (deviceTypes[i].type == type) { + return deviceTypes[i].category; + } + } + return type; + } + $('#device-grid').datatables_extended ({ serverSide: true, processing: false, @@ -238,7 +245,8 @@ function loadDevices(searchType, searchParam){ return html; }}, { targets: 2, data: 'enrolmentInfo.owner', className: 'fade-edge remove-padding-top'}, - { targets: 3, data: 'enrolmentInfo.status', className: 'fade-edge remove-padding-top' , + { + targets: 3, data: 'enrolmentInfo.status', className: 'fade-edge remove-padding-top', render: function ( status, type, row, meta ) { var html; switch (status) { @@ -257,11 +265,22 @@ function loadDevices(searchType, searchParam){ } return html; }}, - { targets: 4, data: 'type' , className: 'fade-edge remove-padding-top' , + { + targets: 4, data: 'type', className: 'fade-edge remove-padding-top', render: function ( status, type, row, meta ) { return getDeviceTypeLabel(row.type); - }}, - { targets: 5, data: 'enrolmentInfo.ownership' , className: 'fade-edge remove-padding-top' }, + } + }, + { + targets: 5, data: 'enrolmentInfo.ownership', className: 'fade-edge remove-padding-top', + render: function (status, type, row, meta) { + if (getDeviceTypeCategory(row.type) == 'mobile') { + return row.enrolmentInfo.ownership; + } else { + return null; + } + } + }, { targets: 6, data: 'enrolmentInfo.status' , className: 'text-right content-fill text-left-on-grid-view no-wrap' , render: function ( status, type, row, meta ) { var deviceType = row.type; @@ -271,6 +290,15 @@ function loadDevices(searchType, searchParam){ html = '' + ''; + html += '' + + '' + + ''; + html += '' + + '' + + '' + + ''; } return html; }} @@ -285,6 +313,7 @@ function loadDevices(searchType, searchParam){ var status = data.enrolmentInfo.status; var ownership = data.enrolmentInfo.ownership; var deviceType = data.type; + var category = getDeviceTypeCategory(deviceType); $.each($('td', row), function (colIndex) { switch(colIndex) { case 1: @@ -304,18 +333,21 @@ function loadDevices(searchType, searchParam){ case 4: $(this).attr('data-grid-label', "Type"); $(this).attr('data-search', deviceType); - $(this).attr('data-display', deviceType); + $(this).attr('data-display', getDeviceTypeLabel(deviceType)); break; case 5: - $(this).attr('data-grid-label', "Ownership"); - $(this).attr('data-search', ownership); - $(this).attr('data-display', ownership); + if (category == 'mobile') { + $(this).attr('data-grid-label', "Ownership"); + $(this).attr('data-search', ownership); + $(this).attr('data-display', ownership); + } break; } }); }, "fnDrawCallback": function( oSettings ) { $(".icon .text").res_text(0.2); + attachDeviceEvents(); } }); $(deviceCheckbox).click(function () { @@ -338,50 +370,6 @@ function openCollapsedNav() { }); } -function loadGroupedDevices(groupId) { - var serviceURL = "api/group/id/" + groupId + "/device/all"; - var deviceListing = $("#device-listing"); - var deviceListingSrc = deviceListing.attr("src"); - var imageResource = deviceListing.data("image-resource"); - var currentUser = deviceListing.data("currentUser"); - $.template("device-listing", deviceListingSrc, function (template) { - - var loadGroupRequest = $.ajax({ - url: serviceURL, - method: "GET", - contentType: "application/json", - accept: "application/json" - }); - - loadGroupRequest.done(function (data) { - data = JSON.parse(data); - var viewModel = {}; - viewModel.devices = data.data; - viewModel.imageLocation = imageResource; - viewModel.isGroupView = "true"; - if (viewModel.devices.length > 0) { - $('#device-grid').removeClass('hidden'); - var content = template(viewModel); - $("#ast-container").html(content); - /* - * On device checkbox select add parent selected style class - */ - $(deviceCheckbox).click(function () { - addDeviceSelectedClass(this); - }); - attachDeviceEvents(); - } else { - $('#device-table').addClass('hidden'); - $('#device-listing-status-msg').text('No device is available to be displayed.'); - } - $("#loading-content").remove(); - $('#device-grid').datatables_extended(); - $(".icon .text").res_text(0.2); - }); - }); - -} - function initPage() { var deviceListing = $("#device-listing"); var currentUser = deviceListing.data("currentUser"); @@ -642,9 +630,9 @@ function attachDeviceEvents() { }); postOperationRequest.done(function (data) { $(modalPopupContent).html($('#edit-device-200-content').html()); - $("h4[data-deviceid='" + deviceId + "']").html(newDeviceName); setTimeout(function () { hidePopup(); + location.reload(false); }, 2000); }); postOperationRequest.fail(function (jqXHR, textStatus) { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.groups/groups.hbs b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.groups/groups.hbs index b4f80468ed..2e9690071b 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.groups/groups.hbs +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.groups/groups.hbs @@ -17,15 +17,17 @@ {{/zone}} {{#zone "navbarActions"}} -
  • - + {{#if permissions.ADD_GROUP}} +
  • + - Add Group - -
  • + Add Group + + + {{/if}} {{/zone}} {{#zone "content"}} @@ -33,6 +35,7 @@
    + {{#if groupCount}}
    0) { - page_data.groupCount = groupCount; + page.groupCount = groupCount; } } - return page_data; + return page; } \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.groups/public/js/listing.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.groups/public/js/listing.js index 2ba4f0cd35..a2d95a3c4e 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.groups/public/js/listing.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.groups/public/js/listing.js @@ -82,6 +82,19 @@ function toTitleCase(str) { }); } +(function () { + var permissionSet = {}; + + //This method is used to setup permission for device listing + $.setPermission = function (permission) { + permissionSet[permission] = true; + }; + + $.hasPermission = function (permission) { + return permissionSet[permission]; + }; +})(); + function loadGroups() { var groupListing = $("#group-listing"); var groupListingSrc = groupListing.attr("src"); @@ -108,10 +121,23 @@ function loadGroups() { $(".icon .text").res_text(0.2); }; - invokerUtil.get("/devicemgt_admin/groups/user/" + currentUser + "?start=0&rowCount=1000", - successCallback, function (message) { - displayErrors(message.content); - }); + var serviceURL; + if ($.hasPermission("LIST_ALL_GROUPS")) { + serviceURL = "/devicemgt_admin/groups?start=0&rowCount=1000"; + } else if ($.hasPermission("LIST_GROUPS")) { + //Get authenticated users groups + serviceURL = "/devicemgt_admin/groups/user/" + currentUser + "?start=0&rowCount=1000"; + } else { + $("#loading-content").remove(); + $('#device-table').addClass('hidden'); + $('#device-listing-status-msg').text('Permission denied.'); + $("#device-listing-status").removeClass(' hidden'); + return; + } + + invokerUtil.get(serviceURL, successCallback, function (message) { + displayErrors(message.content); + }); }); } @@ -129,6 +155,13 @@ function openCollapsedNav() { * DOM ready functions. */ $(document).ready(function () { + var permissionList = $("#permission").data("permission"); + for (var key in permissionList) { + if (permissionList.hasOwnProperty(key)) { + $.setPermission(key); + } + } + loadGroups(); //$('#device-grid').datatables_extended(); @@ -138,30 +171,36 @@ $(document).ready(function () { }); /* for device list sorting drop down */ - $(".ctrl-filter-type-switcher").popover({ - html: true, - content: function () { - return $("#content-filter-types").html(); - } - }); + $(".ctrl-filter-type-switcher").popover( + { + html: true, + content: function () { + return $("#content-filter-types").html(); + } + } + ); /* for data tables*/ $('[data-toggle="tooltip"]').tooltip(); $("[data-toggle=popover]").popover(); - $(".ctrl-filter-type-switcher").popover({ - html: true, - content: function () { - return $('#content-filter-types').html(); - } - }); - - $('#nav').affix({ - offset: { - top: $('header').height() - } - }); + $(".ctrl-filter-type-switcher").popover( + { + html: true, + content: function () { + return $('#content-filter-types').html(); + } + } + ); + + $('#nav').affix( + { + offset: { + top: $('header').height() + } + } + ); }); @@ -212,12 +251,14 @@ function attachEvents() { $('#user-names').html('
    '); showPopup(); $("a#share-group-next-link").hide(); - var userRequest = $.ajax({ - url: "api/user/all", - method: "GET", - contentType: "application/json", - accept: "application/json" - }); + var userRequest = $.ajax( + { + url: "api/user/all", + method: "GET", + contentType: "application/json", + accept: "application/json" + } + ); userRequest.done(function (data, txtStatus, jqxhr) { var users = JSON.parse(data); var status = jqxhr.status; @@ -318,10 +359,9 @@ function attachEvents() { var successCallback = function (data) { data = JSON.parse(data); if (data.status == 200) { - $(modalPopupContent).html($('#edit-group-200-content').html()); - $("h4[data-groupid='" + groupId + "']").html(newGroupName); setTimeout(function () { hidePopup(); + location.reload(false); }, 2000); } else { displayErrors(status); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.js index 95f3befa18..bc14c19c2a 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 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 @@ -78,7 +78,8 @@ $.fn.datatables_extended = function(settings){ $( "#operation-guide" ).hide(); $( "#operation-bar" ).removeClass("hidden"); $("#operation-bar").show(); - loadOperationBar(val); + //TODO: Enable after adding iot operations bar + //loadOperationBar(val); } } @@ -86,13 +87,14 @@ $.fn.datatables_extended = function(settings){ $(column).each(function () { if ($(column.nodes()).attr('data-search')) { - var titles = []; + var values = []; column.nodes().unique().sort().each(function (d, j) { var title = $(d).attr('data-display'); - if ($.inArray(title, titles) < 0) { - titles.push(title); - if (title !== undefined) { - select.append('') + var value = $(d).attr('data-search'); + if ($.inArray(value, values) < 0) { + values.push(value); + if (value !== undefined) { + select.append('') } } }); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.ui.theme/public/css/custom-desktop.css b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.ui.theme/public/css/custom-desktop.css index a0df906f0e..094ff3598a 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.ui.theme/public/css/custom-desktop.css +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.ui.theme/public/css/custom-desktop.css @@ -2193,7 +2193,7 @@ input[type=number].form-control { } .table.list-table.grid-view .padding-reduce-on-grid-view { - padding: 2px; + padding: 1px; } .table.list-table.grid-view .text-left-on-grid-view { @@ -6428,7 +6428,7 @@ body.inverse .fade-edge:after { display: none; } .table.list-table.grid-view .padding-reduce-on-grid-view { - padding: 2px; + padding: 1px; } .table.list-table.grid-view .text-left-on-grid-view { text-align: left; diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/conf/cdm-config.xml b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/conf/cdm-config.xml index 4e07bab65b..cd5ae9c577 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/conf/cdm-config.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/conf/cdm-config.xml @@ -24,38 +24,38 @@ jdbc/DM_DS - - https://localhost:9443 - admin - admin - - - org.wso2.carbon.policy.mgt - true - 60000 - 5 - 8 - 20 - - - true - 600000 - org.wso2.carbon.device.mgt.core.task.impl.DeviceDetailsRetrieverTask - - - DEVICE_INFO - 1 - - - APPLICATION_LIST - 5 - - - DEVICE_LOCATION - 1 - - - + + https://localhost:9443 + admin + admin + + + org.wso2.carbon.policy.mgt + true + 60000 + 5 + 8 + 20 + + + true + 600000 + org.wso2.carbon.device.mgt.core.task.impl.DeviceDetailsRetrieverTask + + + DEVICE_INFO + 1 + + + APPLICATION_LIST + 5 + + + DEVICE_LOCATION + 1 + + +