Merge branch 'master' of https://github.com/wso2/carbon-device-mgt into das-ext

revert-70aa11f8
ayyoob 9 years ago
commit 502a05f623

@ -21,6 +21,7 @@ package org.wso2.carbon.device.mgt.jaxrs.api;
import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementAdminService;
import org.wso2.carbon.device.mgt.jaxrs.api.util.DeviceMgtAPIUtils; 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.api.util.ResponsePayload;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
@ -30,7 +31,9 @@ import org.wso2.carbon.device.mgt.common.PaginationRequest;
import org.wso2.carbon.device.mgt.core.dto.DeviceType; import org.wso2.carbon.device.mgt.core.dto.DeviceType;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService; import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET; import javax.ws.rs.GET;
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;
@ -231,4 +234,52 @@ public class Device {
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); 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();
}
}
}

@ -24,7 +24,7 @@ import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException; 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.DeviceMgtAPIUtils;
import org.wso2.carbon.device.mgt.jaxrs.beans.PriorityUpdatedPolicyWrapper; import org.wso2.carbon.device.mgt.jaxrs.beans.PriorityUpdatedPolicyWrapper;
import org.wso2.carbon.device.mgt.jaxrs.util.MDMUtil; import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtUtil;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier; 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.api.util.ResponsePayload;
import org.wso2.carbon.device.mgt.jaxrs.beans.PolicyWrapper; import org.wso2.carbon.device.mgt.jaxrs.beans.PolicyWrapper;
@ -62,7 +62,7 @@ public class Policy {
policy.setPolicyName(policyWrapper.getPolicyName()); policy.setPolicyName(policyWrapper.getPolicyName());
policy.setProfileId(policyWrapper.getProfileId()); policy.setProfileId(policyWrapper.getProfileId());
policy.setDescription(policyWrapper.getDescription()); policy.setDescription(policyWrapper.getDescription());
policy.setProfile(MDMUtil.convertProfile(policyWrapper.getProfile())); policy.setProfile(DeviceMgtUtil.convertProfile(policyWrapper.getProfile()));
policy.setOwnershipType(policyWrapper.getOwnershipType()); policy.setOwnershipType(policyWrapper.getOwnershipType());
policy.setRoles(policyWrapper.getRoles()); policy.setRoles(policyWrapper.getRoles());
policy.setUsers(policyWrapper.getUsers()); policy.setUsers(policyWrapper.getUsers());
@ -82,7 +82,7 @@ public class Policy {
policy.setPolicyName(policyWrapper.getPolicyName()); policy.setPolicyName(policyWrapper.getPolicyName());
policy.setProfileId(policyWrapper.getProfileId()); policy.setProfileId(policyWrapper.getProfileId());
policy.setDescription(policyWrapper.getDescription()); policy.setDescription(policyWrapper.getDescription());
policy.setProfile(MDMUtil.convertProfile(policyWrapper.getProfile())); policy.setProfile(DeviceMgtUtil.convertProfile(policyWrapper.getProfile()));
policy.setOwnershipType(policyWrapper.getOwnershipType()); policy.setOwnershipType(policyWrapper.getOwnershipType());
policy.setRoles(policyWrapper.getRoles()); policy.setRoles(policyWrapper.getRoles());
policy.setUsers(policyWrapper.getUsers()); policy.setUsers(policyWrapper.getUsers());
@ -181,7 +181,7 @@ public class Policy {
policy.setId(policyId); policy.setId(policyId);
policy.setProfileId(policyWrapper.getProfileId()); policy.setProfileId(policyWrapper.getProfileId());
policy.setDescription(policyWrapper.getDescription()); policy.setDescription(policyWrapper.getDescription());
policy.setProfile(MDMUtil.convertProfile(policyWrapper.getProfile())); policy.setProfile(DeviceMgtUtil.convertProfile(policyWrapper.getProfile()));
policy.setOwnershipType(policyWrapper.getOwnershipType()); policy.setOwnershipType(policyWrapper.getOwnershipType());
policy.setRoles(policyWrapper.getRoles()); policy.setRoles(policyWrapper.getRoles());
policy.setUsers(policyWrapper.getUsers()); policy.setUsers(policyWrapper.getUsers());

@ -24,7 +24,7 @@ import org.wso2.carbon.policy.mgt.common.Profile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class MDMUtil { public class DeviceMgtUtil {
public static Profile convertProfile(org.wso2.carbon.device.mgt.jaxrs.beans.Profile mdmProfile) { public static Profile convertProfile(org.wso2.carbon.device.mgt.jaxrs.beans.Profile mdmProfile) {
Profile profile = new Profile(); Profile profile = new Profile();

@ -206,6 +206,20 @@
<method>GET</method> <method>GET</method>
</Permission> </Permission>
<Permission>
<name>Modify user device</name>
<path>/device-mgt/user/devices/update</path>
<url>/devices/type/*/id/*</url>
<method>PUT</method>
</Permission>
<Permission>
<name>Remove user device</name>
<path>/device-mgt/user/devices/remove</path>
<url>/devices/type/*/id/*</url>
<method>DELETE</method>
</Permission>
<!--<Permission>--> <!--<Permission>-->
<!--<name>Get device</name>--> <!--<name>Get device</name>-->
<!--<path>/device-mgt/devices/view</path>--> <!--<path>/device-mgt/devices/view</path>-->
@ -241,6 +255,13 @@
<url>/devices/name/*/*</url> <url>/devices/name/*/*</url>
<method>GET</method> <method>GET</method>
</Permission> </Permission>
<Permission>
<name>List All Own Devices</name>
<path>/device-mgt/user/devices/list</path>
<url>/devices/user/*</url>
<method>GET</method>
</Permission>
<!-- End of Device related APIs --> <!-- End of Device related APIs -->
<!-- Notification related APIs --> <!-- Notification related APIs -->

@ -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.common;
public class ProvisioningConfig {
private String providerTenantDomain;
private boolean isSharedWithAllTenants;
public ProvisioningConfig(String providerTenantDomain, boolean sharedWithAllTenants) {
this.providerTenantDomain = providerTenantDomain;
isSharedWithAllTenants = sharedWithAllTenants;
}
public String getProviderTenantDomain() {
return providerTenantDomain;
}
public boolean isSharedWithAllTenants() {
return isSharedWithAllTenants;
}
}

@ -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.common.push.notification;
import java.util.Set;
public class PushNotificationConfig {
private String type;
private Set<String> properties;
public PushNotificationConfig(String type, Set<String> properties) {
this.type = type;
this.properties = properties;
}
public String getType() {
return type;
}
public Set<String> getProperties() {
return properties;
}
}

@ -18,13 +18,11 @@
*/ */
package org.wso2.carbon.device.mgt.common.spi; package org.wso2.carbon.device.mgt.common.spi;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.DeviceManager; import org.wso2.carbon.device.mgt.common.DeviceManager;
import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager; 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.common.push.notification.PushNotificationConfig;
import java.util.List;
/** /**
* Composite interface that acts as the SPI exposing all device management as well as application management * Composite interface that acts as the SPI exposing all device management as well as application management
@ -32,33 +30,16 @@ import java.util.List;
*/ */
public interface DeviceManagementService { public interface DeviceManagementService {
/**
* Method to retrieve the provider type that implements DeviceManager interface.
*
* @return Returns provider type
*/
String getType();
/**
* This returns the tenant domain of the provider.
* @return
*/
String getProviderTenantDomain();
/**
* returns true if the device type is shared between all tenants and false if its not.
*
* @return
*/
boolean isSharedWithAllTenants();
void init() throws DeviceManagementException; void init() throws DeviceManagementException;
String getType();
DeviceManager getDeviceManager(); DeviceManager getDeviceManager();
ApplicationManager getApplicationManager(); ApplicationManager getApplicationManager();
void notifyOperationToDevices(Operation operation, ProvisioningConfig getProvisioningConfig();
List<DeviceIdentifier> deviceIds) throws DeviceManagementException;
PushNotificationConfig getPushNotificationConfig();
} }

@ -21,6 +21,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.DeviceTypeIdentifier; import org.wso2.carbon.device.mgt.common.DeviceTypeIdentifier;
import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService; import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder; import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementServiceComponent; import org.wso2.carbon.device.mgt.core.internal.DeviceManagementServiceComponent;
@ -44,8 +45,10 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
public void addDeviceManagementProvider(DeviceManagementService provider) throws DeviceManagementException { public void addDeviceManagementProvider(DeviceManagementService provider) throws DeviceManagementException {
String deviceType = provider.getType(); String deviceType = provider.getType();
String tenantDomain = provider.getProviderTenantDomain();
boolean isSharedWithAllTenants = provider.isSharedWithAllTenants(); ProvisioningConfig provisioningConfig = provider.getProvisioningConfig();
String tenantDomain = provisioningConfig.getProviderTenantDomain();
boolean isSharedWithAllTenants = provisioningConfig.isSharedWithAllTenants();
int tenantId = DeviceManagerUtil.getTenantId(tenantDomain); int tenantId = DeviceManagerUtil.getTenantId(tenantDomain);
if (tenantId == -1) { if (tenantId == -1) {
throw new DeviceManagementException("No tenant available for tenant domain " + tenantDomain); throw new DeviceManagementException("No tenant available for tenant domain " + tenantDomain);
@ -57,7 +60,7 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
provider.init(); provider.init();
DeviceManagerUtil.registerDeviceType(deviceType, tenantId, isSharedWithAllTenants); DeviceManagerUtil.registerDeviceType(deviceType, tenantId, isSharedWithAllTenants);
DeviceManagementDataHolder.getInstance().setRequireDeviceAuthorization(deviceType, DeviceManagementDataHolder.getInstance().setRequireDeviceAuthorization(deviceType,
provider.getDeviceManager().requireDeviceAuthorization()); provider.getDeviceManager().requireDeviceAuthorization());
} }
} catch (DeviceManagementException e) { } catch (DeviceManagementException e) {
@ -75,13 +78,15 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
} }
public void removeDeviceManagementProvider(DeviceManagementService provider) throws DeviceManagementException { public void removeDeviceManagementProvider(DeviceManagementService provider) throws DeviceManagementException {
String deviceTypeName=provider.getType(); String deviceTypeName = provider.getType();
if(provider.isSharedWithAllTenants()){
DeviceTypeIdentifier deviceTypeIdentifier =new DeviceTypeIdentifier(deviceTypeName); ProvisioningConfig provisioningConfig = provider.getProvisioningConfig();
if (provisioningConfig.isSharedWithAllTenants()) {
DeviceTypeIdentifier deviceTypeIdentifier = new DeviceTypeIdentifier(deviceTypeName);
providers.remove(deviceTypeIdentifier); providers.remove(deviceTypeIdentifier);
}else{ } else {
int providerTenantId=DeviceManagerUtil.getTenantId(provider.getProviderTenantDomain()); int providerTenantId = DeviceManagerUtil.getTenantId(provisioningConfig.getProviderTenantDomain());
DeviceTypeIdentifier deviceTypeIdentifier =new DeviceTypeIdentifier(deviceTypeName, providerTenantId); DeviceTypeIdentifier deviceTypeIdentifier = new DeviceTypeIdentifier(deviceTypeName, providerTenantId);
providers.remove(deviceTypeIdentifier); providers.remove(deviceTypeIdentifier);
} }
} }
@ -113,15 +118,17 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
for (DeviceManagementService provider : providers.values()) { for (DeviceManagementService provider : providers.values()) {
try { try {
provider.init(); provider.init();
int tenantId=DeviceManagerUtil.getTenantId(provider.getProviderTenantDomain());
DeviceManagerUtil.registerDeviceType(provider.getType(), tenantId, provider.isSharedWithAllTenants()); ProvisioningConfig provisioningConfig = provider.getProvisioningConfig();
int tenantId = DeviceManagerUtil.getTenantId(provisioningConfig.getProviderTenantDomain());
DeviceManagerUtil.registerDeviceType(provider.getType(), tenantId, provisioningConfig.isSharedWithAllTenants());
//TODO: //TODO:
//This is a temporory fix. //This is a temporory fix.
//windows and IOS cannot resolve user info by extracting certs //windows and IOS cannot resolve user info by extracting certs
//until fix that, use following variable to enable and disable of checking user authorization. //until fix that, use following variable to enable and disable of checking user authorization.
DeviceManagementDataHolder.getInstance().setRequireDeviceAuthorization(provider.getType(), DeviceManagementDataHolder.getInstance().setRequireDeviceAuthorization(provider.getType(),
provider.getDeviceManager().requireDeviceAuthorization()); provider.getDeviceManager().requireDeviceAuthorization());
} catch (Throwable e) { } catch (Throwable e) {
/* Throwable is caught intentionally as failure of one plugin - due to invalid start up parameters, /* Throwable is caught intentionally as failure of one plugin - due to invalid start up parameters,
etc - should not block the initialization of other device management providers */ etc - should not block the initialization of other device management providers */

@ -753,17 +753,11 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
public void notifyOperationToDevices(Operation operation, List<DeviceIdentifier> deviceIds) public void notifyOperationToDevices(Operation operation, List<DeviceIdentifier> deviceIds)
throws DeviceManagementException { throws DeviceManagementException {
try { for (DeviceIdentifier deviceId : deviceIds) {
for (DeviceIdentifier deviceId : deviceIds) { DeviceManagementService dms =
DeviceManagementService dms = getPluginRepository().getDeviceManagementService(deviceId.getType(), this.getTenantId());
getPluginRepository().getDeviceManagementService(deviceId.getType(), this.getTenantId()); //TODO FIX THIS WITH PUSH NOTIFICATIONS
dms.notifyOperationToDevices(operation, deviceIds); //dms.notifyOperationToDevices(operation, deviceIds);
}
} catch (DeviceManagementException deviceMgtEx) {
String errorMsg = "Error in notify operations to plugins for app installation:" +
deviceMgtEx.getErrorMessage();
log.error(errorMsg, deviceMgtEx);
throw new DeviceManagementException(errorMsg, deviceMgtEx);
} }
} }

@ -20,8 +20,10 @@ package org.wso2.carbon.device.mgt.core;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.DeviceManager; import org.wso2.carbon.device.mgt.common.DeviceManager;
import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager; 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.common.operation.mgt.Operation;
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService; import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
import java.util.List; import java.util.List;
@ -40,14 +42,6 @@ public class TestDeviceManagementService implements DeviceManagementService {
return providerType; return providerType;
} }
@Override
public String getProviderTenantDomain() { return tenantDomain;}
@Override
public boolean isSharedWithAllTenants() {
return true;
}
@Override @Override
public void init() throws DeviceManagementException { public void init() throws DeviceManagementException {
@ -64,9 +58,13 @@ public class TestDeviceManagementService implements DeviceManagementService {
} }
@Override @Override
public void notifyOperationToDevices(Operation operation, List<DeviceIdentifier> deviceIds) public ProvisioningConfig getProvisioningConfig() {
throws DeviceManagementException { return new ProvisioningConfig(tenantDomain, false);
}
@Override
public PushNotificationConfig getPushNotificationConfig() {
return null;
} }
} }

@ -97,61 +97,6 @@ deviceModule = function () {
} }
}; };
/*
@Deprecated
*/
publicMethods.listDevicesForUser = function (username) {
var carbonUser = session.get(constants.USER_SESSION_KEY);
var utility = require('/app/modules/utility.js').utility;
if (!carbonUser) {
log.error("User object was not found in the session");
throw constants.ERRORS.USER_NOT_FOUND;
}
try {
utility.startTenantFlow(carbonUser);
var deviceManagementService = utility.getDeviceManagementService();
var devices = deviceManagementService.getDevicesOfUser(username);
var deviceList = [];
var i, device, propertiesList, deviceObject;
for (i = 0; i < devices.size(); i++) {
device = devices.get(i);
propertiesList = DeviceManagerUtil.convertDevicePropertiesToMap(device.getProperties());
deviceObject = {};
deviceObject[constants.DEVICE_IDENTIFIER] =
privateMethods.validateAndReturn(device.getDeviceIdentifier());
deviceObject[constants.DEVICE_NAME] =
privateMethods.validateAndReturn(device.getName());
deviceObject[constants.DEVICE_OWNERSHIP] =
privateMethods.validateAndReturn(device.getEnrolmentInfo().getOwnership());
deviceObject[constants.DEVICE_OWNER] =
privateMethods.validateAndReturn(device.getEnrolmentInfo().getOwner());
deviceObject[constants.DEVICE_TYPE] =
privateMethods.validateAndReturn(device.getType());
deviceObject[constants.DEVICE_PROPERTIES] = {};
if (device.getType() == constants.PLATFORM_IOS) {
deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_MODEL] =
privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_PRODUCT));
deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_VENDOR] = constants.VENDOR_APPLE;
} else {
deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_MODEL] =
privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_MODEL));
deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_VENDOR] =
privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_VENDOR));
}
deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_OS_VERSION] =
privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_OS_VERSION));
deviceList.push(deviceObject);
}
return deviceList;
} catch (e) {
throw e;
} finally {
utility.endTenantFlow();
}
};
/* /*
@Deprecated @Deprecated
*/ */
@ -298,8 +243,7 @@ deviceModule = function () {
deviceObject[constants["DEVICE_PROPERTIES"]] = properties; deviceObject[constants["DEVICE_PROPERTIES"]] = properties;
return deviceObject; return deviceObject;
} }
} },
,
function (responsePayload) { function (responsePayload) {
var response = {}; var response = {};
response["status"] = "error"; response["status"] = "error";
@ -321,8 +265,7 @@ deviceModule = function () {
return serviceInvokers.XMLHttp.get( return serviceInvokers.XMLHttp.get(
url, function (responsePayload) { url, function (responsePayload) {
return responsePayload; return responsePayload;
} },
,
function (responsePayload) { function (responsePayload) {
log.error(responsePayload); log.error(responsePayload);
return -1; return -1;
@ -335,8 +278,7 @@ deviceModule = function () {
return serviceInvokers.XMLHttp.get( return serviceInvokers.XMLHttp.get(
url, function (responsePayload) { url, function (responsePayload) {
return responsePayload; return responsePayload;
} },
,
function (responsePayload) { function (responsePayload) {
log.error(responsePayload); log.error(responsePayload);
return -1; return -1;
@ -344,14 +286,12 @@ deviceModule = function () {
); );
}; };
publicMethods.getDeviceTypes = function () { publicMethods.getDeviceTypes = function () {
var url = devicemgtProps["httpsURL"] + constants.ADMIN_SERVICE_CONTEXT + "/devices/types"; var url = devicemgtProps["httpsURL"] + constants.ADMIN_SERVICE_CONTEXT + "/devices/types";
return serviceInvokers.XMLHttp.get( return serviceInvokers.XMLHttp.get(
url, function (responsePayload) { url, function (responsePayload) {
return responsePayload; return responsePayload;
} },
,
function (responsePayload) { function (responsePayload) {
log.error(responsePayload); log.error(responsePayload);
return -1; return -1;
@ -383,86 +323,20 @@ deviceModule = function () {
return license; return license;
}; };
publicMethods.getOwnDevices = function () { publicMethods.getDevices = function (userName) {
var listAllDevicesEndPoint = deviceCloudService + "/device/user/" + user.username + "/all"; var url = devicemgtProps["httpsURL"] + constants.ADMIN_SERVICE_CONTEXT + "/devices/user/" + userName;
var result = get(listAllDevicesEndPoint, {}, "json"); return serviceInvokers.XMLHttp.get(
var devices = result.data; url, function (responsePayload) {
var device; for (var i = 0; i < responsePayload.length; i++) {
for (var d in devices){ responsePayload[i].thumb = utility.getDeviceThumb(responsePayload[i].type);
device = devices[d]; }
device.assetId = publicMethods.getAssetId(device.deviceType); return responsePayload;
} },
return result; function (responsePayload) {
}; log.error(responsePayload);
return -1;
publicMethods.getAllPermittedDevices = function () { }
var groupModule = require("/app/modules/group.js").groupModule; );
var result = publicMethods.getUnGroupedDevices();
var unGroupedDevices = result.data;
var user_groups = groupModule.getGroups().data;
var allDevices = [];
var deviceCount = unGroupedDevices.length;
for (var g in user_groups) {
var deviceInGroup = user_groups[g].devices;
deviceCount += deviceInGroup.length;
if (deviceInGroup && deviceInGroup.length == 0) {
delete user_groups[g]["devices"];
}
var device;
for (var d in deviceInGroup){
device = deviceInGroup[d];
device.assetId = publicMethods.getAssetId(device.type);
}
allDevices.push(user_groups[g]);
}
allDevices.push({id: 0, devices: unGroupedDevices});
result.data = allDevices;
result.device_count = deviceCount;
return result;
};
publicMethods.removeDevice = function (deviceType, deviceId) {
var carbonUser = session.get(constants.USER_SESSION_KEY);
if (!carbonUser) {
log.error("User object was not found in the session");
throw constants.ERRORS.USER_NOT_FOUND;
}
try {
utility.startTenantFlow(carbonUser);
var deviceManagementService = utility.getDeviceManagementService();
var deviceIdentifier = new DeviceIdentifier();
deviceIdentifier.setType(deviceType);
deviceIdentifier.setId(deviceId);
return deviceManagementService.disenrollDevice(deviceIdentifier);
} catch (e) {
throw e;
} finally {
utility.endTenantFlow();
}
};
publicMethods.updateDevice = function (deviceType, deviceId, deviceName) {
var carbonUser = session.get(constants.USER_SESSION_KEY);
if (!carbonUser) {
log.error("User object was not found in the session");
throw constants.ERRORS.USER_NOT_FOUND;
}
try {
utility.startTenantFlow(carbonUser);
var deviceManagementService = utility.getDeviceManagementService();
var deviceIdentifier = new DeviceIdentifier();
deviceIdentifier.setType(deviceType);
deviceIdentifier.setId(deviceId);
var device = deviceManagementService.getDevice(deviceIdentifier);
device.setName(deviceName);
return deviceManagementService.modifyEnrollment(device);
} catch (e) {
throw e;
} finally {
utility.endTenantFlow();
}
}; };
return publicMethods; return publicMethods;
}(); }();

@ -67,8 +67,7 @@ policyModule = function () {
policyObjectToView["priorityId"] = policyObjectFromRestEndpoint["priorityId"]; policyObjectToView["priorityId"] = policyObjectFromRestEndpoint["priorityId"];
policyObjectToView["name"] = policyObjectFromRestEndpoint["policyName"]; policyObjectToView["name"] = policyObjectFromRestEndpoint["policyName"];
policyObjectToView["platform"] = policyObjectFromRestEndpoint["profile"]["deviceType"]["name"]; policyObjectToView["platform"] = policyObjectFromRestEndpoint["profile"]["deviceType"]["name"];
policyObjectToView["icon"] = devicemgtProps["httpsURL"] + devicemgtProps["appContext"] + policyObjectToView["icon"] = utility.getDeviceThumb(policyObjectToView["platform"]);
"public/cdmf.unit.device.type." + policyObjectToView["platform"] + ".type-view/images/thumb.png";
policyObjectToView["ownershipType"] = policyObjectFromRestEndpoint["ownershipType"]; policyObjectToView["ownershipType"] = policyObjectFromRestEndpoint["ownershipType"];
policyObjectToView["roles"] = privateMethods. policyObjectToView["roles"] = privateMethods.
getElementsInAString(policyObjectFromRestEndpoint["roles"]); getElementsInAString(policyObjectFromRestEndpoint["roles"]);

@ -18,6 +18,9 @@
var utility; var utility;
utility = function () { utility = function () {
var constants = require('/app/modules/constants.js');
var devicemgtProps = require('/app/conf/devicemgt-props.js').config();
var log = new Log("/app/modules/utility.js"); var log = new Log("/app/modules/utility.js");
var JavaClass = Packages.java.lang.Class; var JavaClass = Packages.java.lang.Class;
var PrivilegedCarbonContext = Packages.org.wso2.carbon.context.PrivilegedCarbonContext; var PrivilegedCarbonContext = Packages.org.wso2.carbon.context.PrivilegedCarbonContext;
@ -104,26 +107,43 @@ utility = function () {
}; };
publicMethods.getOperationIcon = function (deviceType, operation) { publicMethods.getOperationIcon = function (deviceType, operation) {
var iconPath = "/app/units/cdmf.unit.device.type." var unitName = publicMethods.getTenantedDeviceUnitName(deviceType, "type-view");
+ deviceType + ".type-view/public/images/operations/" + operation + ".png"; var iconPath = "/app/units/" + unitName + "/public/images/operations/" + operation + ".png";
var icon = new File(iconPath); var icon = new File(iconPath);
if (icon.isExists()) { if (icon.isExists()) {
return "public/cdmf.unit.device.type." + deviceType + ".type-view/images/operations/" + operation + ".png"; return devicemgtProps["appContext"] + "public/" + unitName + "/images/operations/" + operation + ".png";
} else { } else {
return null; return null;
} }
}; };
publicMethods.getDeviceThumb = function (deviceType) { publicMethods.getDeviceThumb = function (deviceType) {
var iconPath = "/app/units/cdmf.unit.device.type." var unitName = publicMethods.getTenantedDeviceUnitName(deviceType, "type-view");
+ deviceType + ".type-view/public/images/thumb.png"; var iconPath = "/app/units/" + unitName + "/public/images/thumb.png";
var icon = new File(iconPath); var icon = new File(iconPath);
if (icon.isExists()) { if (icon.isExists()) {
return "/devicemgt/public/cdmf.unit.device.type." + deviceType + ".type-view/images/thumb.png"; return devicemgtProps["appContext"] + "public/" + unitName + "/images/thumb.png";
} else { } else {
return null; return null;
} }
}; };
publicMethods.getTenantedDeviceUnitName = function (deviceType, unitPostfix) {
var user = session.get(constants.USER_SESSION_KEY);
if (!user) {
log.error("User object was not found in the session");
throw constants.ERRORS.USER_NOT_FOUND;
}
var unitName = user.domain + "cdmf.unit.device.type." + deviceType + "." + unitPostfix;
if (new File("/app/units/" + unitName).isExists()) {
return unitName;
}
unitName = "cdmf.unit.device.type." + deviceType + "." + unitPostfix;
if (new File("/app/units/" + unitName).isExists()) {
return unitName;
}
return null;
};
return publicMethods; return publicMethods;
}(); }();

@ -39,9 +39,8 @@ function onRequest(context) {
} }
return { return {
"deviceTypeViewUnitName": "cdmf.unit.device.type." + deviceType + ".type-view", "deviceTypeViewUnitName": utility.getTenantedDeviceUnitName(deviceType, "type-view"),
"deviceType": deviceType, "deviceType": deviceType,
"label" : configs["deviceType"]["label"] "label" : configs["deviceType"]["label"]
}; };
} }

@ -17,6 +17,7 @@
*/ */
function onRequest(context){ function onRequest(context){
var utility = require("/app/modules/utility.js").utility;
context.handlebars.registerHelper('equal', function (lvalue, rvalue, options) { context.handlebars.registerHelper('equal', function (lvalue, rvalue, options) {
if (arguments.length < 3) if (arguments.length < 3)
throw new Error("Handlebars Helper equal needs 2 parameters"); throw new Error("Handlebars Helper equal needs 2 parameters");
@ -28,6 +29,5 @@ function onRequest(context){
}); });
var deviceType = context.uriParams.deviceType; var deviceType = context.uriParams.deviceType;
return {"deviceViewUnitName": utility.getTenantedDeviceUnitName(deviceType, "device-view")};
return {"deviceViewUnitName" : "cdmf.unit.device.type." + deviceType + ".device-view"}; }
}

@ -326,7 +326,6 @@
{{#zone "bottomJs"}} {{#zone "bottomJs"}}
<script id="device-listing" data-current-user="{{currentUser.username}}" data-device-types="{{deviceTypes}}" <script id="device-listing" data-current-user="{{currentUser.username}}" data-device-types="{{deviceTypes}}"
data-image-resource="{{@app.context}}/public/cdmf.unit.device.type."
type="text/x-handlebars-template"></script> type="text/x-handlebars-template"></script>
{{js "js/listing.js"}} {{js "js/listing.js"}}
{{/zone}} {{/zone}}

@ -35,8 +35,8 @@ function onRequest(context) {
if (currentUser) { if (currentUser) {
page.permissions = {}; page.permissions = {};
page.permissions.list = stringify(userModule.getUIPermissions()); page.permissions.list = stringify(userModule.getUIPermissions());
if (userModule.isAuthorized("/permission/admin/device-mgt/admin/devices/add")) { if (userModule.isAuthorized("/permission/admin/device-mgt/user/devices/add")) {
permissions.enroll = true; page.permissions.enroll = true;
} }
page.currentUser = currentUser; page.currentUser = currentUser;
var deviceCount = 0; var deviceCount = 0;
@ -58,7 +58,8 @@ function onRequest(context) {
deviceTypes.push({ deviceTypes.push({
"type": data[i].name, "type": data[i].name,
"category": deviceType.category, "category": deviceType.category,
"label": deviceType.label "label": deviceType.label,
"thumb": utility.getDeviceThumb(data[i].name)
}); });
} }
} }
@ -66,4 +67,4 @@ function onRequest(context) {
} }
} }
return page; return page;
} }

@ -96,7 +96,7 @@ $(document).ready(function () {
console.log(message); console.log(message);
}, function(message){ }, function(message){
console.log(message.content); console.log(message.content);
}); });
}); });
}); });
@ -213,6 +213,16 @@ function loadDevices(searchType, searchParam){
return type; return type;
} }
function getDeviceTypeThumb(type) {
var deviceTypes = deviceListing.data("deviceTypes");
for (var i = 0; i < deviceTypes.length; i++) {
if (deviceTypes[i].type == type) {
return deviceTypes[i].thumb;
}
}
return type;
}
$('#device-grid').datatables_extended ({ $('#device-grid').datatables_extended ({
serverSide: true, serverSide: true,
processing: false, processing: false,
@ -233,7 +243,7 @@ function loadDevices(searchType, searchParam){
}, },
columnDefs: [ columnDefs: [
{ targets: 0, data: 'name', className: 'remove-padding icon-only content-fill' , render: function ( data, type, row, meta ) { { targets: 0, data: 'name', className: 'remove-padding icon-only content-fill' , render: function ( data, type, row, meta ) {
return '<div class="thumbnail icon"><img class="square-element text fw " src="' + imageResource + row.type + '.type-view/images/thumb.png"/></div>'; return '<div class="thumbnail icon"><img class="square-element text fw " src="' + getDeviceTypeThumb(row.type) + '"/></div>';
}}, }},
{ targets: 1, data: 'name', className: 'fade-edge' , render: function ( name, type, row, meta ) { { targets: 1, data: 'name', className: 'fade-edge' , render: function ( name, type, row, meta ) {
var model = getPropertyValue(row.properties, 'DEVICE_MODEL'); var model = getPropertyValue(row.properties, 'DEVICE_MODEL');
@ -582,21 +592,19 @@ function attachDeviceEvents() {
$("a.remove-device-link").click(function () { $("a.remove-device-link").click(function () {
var deviceId = $(this).data("deviceid"); var deviceId = $(this).data("deviceid");
var deviceType = $(this).data("devicetype"); var deviceType = $(this).data("devicetype");
var removeDeviceAPI = "/devicemgt/api/devices/" + deviceType + "/" + deviceId + "/remove"; var serviceURL = "/devicemgt_admin/devices/type/" + deviceType + "/id/" + deviceId;
$(modalPopupContent).html($('#remove-device-modal-content').html()); $(modalPopupContent).html($('#remove-device-modal-content').html());
showPopup(); showPopup();
$("a#remove-device-yes-link").click(function () { $("a#remove-device-yes-link").click(function () {
var postOperationRequest = $.ajax({ invokerUtil.delete(serviceURL, function (message) {
url: removeDeviceAPI,
method: "post"
});
postOperationRequest.done(function (data) {
$(modalPopupContent).html($('#remove-device-200-content').html()); $(modalPopupContent).html($('#remove-device-200-content').html());
window.location.reload(false); setTimeout(function () {
}); hidePopup();
postOperationRequest.fail(function (jqXHR, textStatus) { location.reload(false);
}, 2000);
}, function (message) {
displayDeviceErrors(jqXHR); displayDeviceErrors(jqXHR);
}); });
}); });
@ -604,7 +612,6 @@ function attachDeviceEvents() {
$("a#remove-device-cancel-link").click(function () { $("a#remove-device-cancel-link").click(function () {
hidePopup(); hidePopup();
}); });
}); });
/** /**
@ -616,7 +623,7 @@ function attachDeviceEvents() {
var deviceId = $(this).data("deviceid"); var deviceId = $(this).data("deviceid");
var deviceType = $(this).data("devicetype"); var deviceType = $(this).data("devicetype");
var deviceName = $(this).data("devicename"); var deviceName = $(this).data("devicename");
var editDeviceAPI = "/devicemgt/api/devices/" + deviceType + "/" + deviceId + "/update?name="; var serviceURL = "/devicemgt_admin/devices/type/" + deviceType + "/id/" + deviceId;
$(modalPopupContent).html($('#edit-device-modal-content').html()); $(modalPopupContent).html($('#edit-device-modal-content').html());
$('#edit-device-name').val(deviceName); $('#edit-device-name').val(deviceName);
@ -624,18 +631,13 @@ function attachDeviceEvents() {
$("a#edit-device-yes-link").click(function () { $("a#edit-device-yes-link").click(function () {
var newDeviceName = $('#edit-device-name').val(); var newDeviceName = $('#edit-device-name').val();
var postOperationRequest = $.ajax({ invokerUtil.put(serviceURL, {"name": newDeviceName}, function (message) {
url: editDeviceAPI + newDeviceName,
method: "post"
});
postOperationRequest.done(function (data) {
$(modalPopupContent).html($('#edit-device-200-content').html()); $(modalPopupContent).html($('#edit-device-200-content').html());
setTimeout(function () { setTimeout(function () {
hidePopup(); hidePopup();
location.reload(false); location.reload(false);
}, 2000); }, 2000);
}); }, function (message) {
postOperationRequest.fail(function (jqXHR, textStatus) {
displayDeviceErrors(jqXHR); displayDeviceErrors(jqXHR);
}); });
}); });

@ -16,11 +16,13 @@
* under the License. * under the License.
*/ */
function onRequest(context){ function onRequest(context) {
var utility = require("/app/modules/utility.js").utility;
context.handlebars.registerHelper('equal', function (lvalue, rvalue, options) { context.handlebars.registerHelper('equal', function (lvalue, rvalue, options) {
if (arguments.length < 3) if (arguments.length < 3) {
throw new Error("Handlebars Helper equal needs 2 parameters"); throw new Error("Handlebars Helper equal needs 2 parameters");
if( lvalue!=rvalue ) { }
if (lvalue != rvalue) {
return options.inverse(this); return options.inverse(this);
} else { } else {
return options.fn(this); return options.fn(this);
@ -28,5 +30,5 @@ function onRequest(context){
}); });
var deviceType = context.uriParams.deviceType; var deviceType = context.uriParams.deviceType;
return {"policyWizardUnitName" : "cdmf.unit.device.type." + deviceType + ".policy-wizard"}; return {"policyWizardUnitName": utility.getTenantedDeviceUnitName(deviceType, "policy-wizard")};
} }

@ -17,6 +17,7 @@
*/ */
function onRequest(context) { function onRequest(context) {
var utility = require("/app/modules/utility.js").utility;
var deviceType = request.getParameter("type"); var deviceType = request.getParameter("type");
return {"deviceTypePolicyEdit" : "cdmf.unit.device.type." + deviceType + ".policy-edit"}; return {"deviceTypePolicyEdit": utility.getTenantedDeviceUnitName(deviceType, "policy-edit")};
} }

@ -17,6 +17,7 @@
*/ */
function onRequest(context) { function onRequest(context) {
var utility = require("/app/modules/utility.js").utility;
var deviceType = request.getParameter("type"); var deviceType = request.getParameter("type");
return {"deviceTypePolicyView" : "cdmf.unit.device.type." + deviceType + ".policy-view"}; return {"deviceTypePolicyView": utility.getTenantedDeviceUnitName(deviceType, "policy-view")};
} }

@ -43,8 +43,7 @@
</button> </button>
our {{deviceTypeLabel}} device our {{deviceTypeLabel}} device
</p> </p>
<img class="try-device-image" <img class="try-device-image" src="{{thumb}}">
src="{{@app.context}}/public/cdmf.unit.device.type.{{deviceTypeName}}.type-view/images/thumb.png">
</div> </div>
</div> </div>
{{/each}} {{/each}}
@ -55,8 +54,6 @@
{{/zone}} {{/zone}}
{{#zone "bottomJs"}} {{#zone "bottomJs"}}
<script id="device-listing" data-current-user="{{currentUser.username}}" <script id="device-listing" data-current-user="{{currentUser.username}}"
{{! /devicemgt/public/cdmf.unit.device.type.android}}
data-image-resource="{{@app.context}}/public/cdmf.unit.device.type."
src="{{@unit.publicUri}}/templates/listing.hbs" src="{{@unit.publicUri}}/templates/listing.hbs"
type="text/x-handlebars-template"></script> type="text/x-handlebars-template"></script>
<script type="text/javascript"> <script type="text/javascript">
@ -65,4 +62,4 @@
var deviceTypesList = {{{deviceTypesList}}}; var deviceTypesList = {{{deviceTypesList}}};
</script> </script>
{{js "js/listing.js"}} {{js "js/listing.js"}}
{{/zone}} {{/zone}}

@ -42,21 +42,23 @@ function onRequest(context) {
deviceTypeLabel = configs[DTYPE_CONF_DEVICE_TYPE_KEY][DTYPE_CONF_DEVICE_TYPE_LABEL_KEY]; deviceTypeLabel = configs[DTYPE_CONF_DEVICE_TYPE_KEY][DTYPE_CONF_DEVICE_TYPE_LABEL_KEY];
} }
} }
if (deviceCategory == 'virtual'){ if (deviceCategory == 'virtual') {
virtualDeviceTypesList.push({ virtualDeviceTypesList.push({
"hasCustTemplate": false, "hasCustTemplate": false,
"deviceTypeLabel": deviceTypeLabel, "deviceTypeLabel": deviceTypeLabel,
"deviceTypeName": deviceTypes[i].name, "deviceTypeName": deviceTypes[i].name,
"deviceCategory": deviceCategory, "deviceCategory": deviceCategory,
"deviceTypeId": deviceTypes[i].id "deviceTypeId": deviceTypes[i].id,
"thumb": utility.getDeviceThumb(deviceTypes[i].name)
}); });
}else{ } else {
deviceTypesList.push({ deviceTypesList.push({
"hasCustTemplate": false, "hasCustTemplate": false,
"deviceTypeLabel": deviceTypeLabel, "deviceTypeLabel": deviceTypeLabel,
"deviceTypeName": deviceTypes[i].name, "deviceTypeName": deviceTypes[i].name,
"deviceCategory": deviceCategory, "deviceCategory": deviceCategory,
"deviceTypeId": deviceTypes[i].id "deviceTypeId": deviceTypes[i].id,
"thumb": utility.getDeviceThumb(deviceTypes[i].name)
}); });
} }
} }
@ -69,4 +71,4 @@ function onRequest(context) {
throw new Error("Unable to fetch device types!"); throw new Error("Unable to fetch device types!");
} }
return viewModel; return viewModel;
} }

@ -125,7 +125,6 @@ var deviceTypeCount, compiledDeviceTypesCount = 0;
function loadDevices(searchType, searchParam){ function loadDevices(searchType, searchParam){
var deviceListing = $("#device-listing"); var deviceListing = $("#device-listing");
var deviceListingSrc = deviceListing.attr("src"); var deviceListingSrc = deviceListing.attr("src");
var imageResource = deviceListing.data("image-resource");
var currentUser = deviceListing.data("currentUser"); var currentUser = deviceListing.data("currentUser");
$('#ast-container').html(""); $('#ast-container').html("");
@ -133,7 +132,7 @@ function loadDevices(searchType, searchParam){
if(deviceTypesList.length > 0){ if(deviceTypesList.length > 0){
for (var i = 0; i < deviceTypesList.length; i++) { for (var i = 0; i < deviceTypesList.length; i++) {
var viewModel = {}; var viewModel = {};
viewModel.imageLocation = imageResource; viewModel.thumb = deviceTypesList[i].thumb;
viewModel.appContext = clientJsAppContext; viewModel.appContext = clientJsAppContext;
viewModel.deviceTypeName = deviceTypesList[i].deviceTypeName; viewModel.deviceTypeName = deviceTypesList[i].deviceTypeName;
viewModel.deviceTypeId = deviceTypesList[i].deviceTypeId; viewModel.deviceTypeId = deviceTypesList[i].deviceTypeId;
@ -240,4 +239,4 @@ $(document).ready(function () {
window.document.location = $(this).data('href'); window.document.location = $(this).data('href');
}) })
}); });

@ -3,7 +3,7 @@
<td class="remove-padding icon-only content-fill" data-search="{{deviceCategory}}" data-display="{{deviceCategory}}"> <td class="remove-padding icon-only content-fill" data-search="{{deviceCategory}}" data-display="{{deviceCategory}}">
<div class="thumbnail icon"> <div class="thumbnail icon">
<!--<i class="square-element text fw fw-mobile"></i>--> <!--<i class="square-element text fw fw-mobile"></i>-->
<img class="square-element text fw " src="{{imageLocation}}{{deviceTypeName}}.type-view/images/thumb.png" /> <img class="square-element text fw" src="{{thumb}}"/>
</div> </div>
</td> </td>
<td class="remove-padding-top" data-search="{{deviceTypeLabel}}" data-display="{{deviceTypeLabel}}"> <td class="remove-padding-top" data-search="{{deviceTypeLabel}}" data-display="{{deviceTypeLabel}}">
@ -18,4 +18,4 @@
<span>Select</span> <span>Select</span>
</a> </a>
</td> </td>
</tr> </tr>

@ -17,19 +17,12 @@
*/ */
function onRequest(context) { function onRequest(context) {
var log = new Log("create.js");
var DTYPE_CONF_DEVICE_TYPE_KEY = "deviceType"; var DTYPE_CONF_DEVICE_TYPE_KEY = "deviceType";
var DTYPE_CONF_DEVICE_TYPE_LABEL_KEY = "label"; var DTYPE_CONF_DEVICE_TYPE_LABEL_KEY = "label";
var utility = require("/app/modules/utility.js").utility; var utility = require("/app/modules/utility.js").utility;
var userModule = require("/app/modules/user.js")["userModule"]; var userModule = require("/app/modules/user.js")["userModule"];
var JFile = Packages.java.io.File;
var sep = JFile.separator;
var systemProcess = require('process');
var parent = 'file:///' + (systemProcess.getProperty('jaggery.home') ||
systemProcess.getProperty('carbon.home')).replace(/[\\]/g, '/').replace(/^[\/]/g, '');
var types = {}; var types = {};
types["types"] = []; types["types"] = [];
var typesListResponse = userModule.getPlatforms(); var typesListResponse = userModule.getPlatforms();
@ -41,9 +34,7 @@ function onRequest(context) {
if (configs && configs[DTYPE_CONF_DEVICE_TYPE_KEY][DTYPE_CONF_DEVICE_TYPE_LABEL_KEY]) { if (configs && configs[DTYPE_CONF_DEVICE_TYPE_KEY][DTYPE_CONF_DEVICE_TYPE_LABEL_KEY]) {
deviceTypeLabel = configs[DTYPE_CONF_DEVICE_TYPE_KEY][DTYPE_CONF_DEVICE_TYPE_LABEL_KEY]; deviceTypeLabel = configs[DTYPE_CONF_DEVICE_TYPE_KEY][DTYPE_CONF_DEVICE_TYPE_LABEL_KEY];
} }
var policyWizard = new File(parent + sep + "repository" + sep + "deployment" + sep + "server" + sep + var policyWizard = new File("/app/units/" + utility.getTenantedDeviceUnitName(deviceType, "policy-wizard"));
"jaggeryapps" + sep + "devicemgt" + sep + "app" + sep + "units" + sep +
"cdmf.unit.device.type." + deviceType + ".policy-wizard");
if(policyWizard.isExists()){ if(policyWizard.isExists()){
typesListResponse["content"][type]["icon"] = utility.getDeviceThumb(deviceType); typesListResponse["content"][type]["icon"] = utility.getDeviceThumb(deviceType);
typesListResponse["content"][type]["label"] = deviceTypeLabel; typesListResponse["content"][type]["label"] = deviceTypeLabel;
@ -52,4 +43,4 @@ function onRequest(context) {
} }
} }
return types; return types;
} }

@ -8,7 +8,7 @@
<a href="{{@app.context}}"><i class="fw fw-dashboard"></i>Admin Dashboard</a> <a href="{{@app.context}}"><i class="fw fw-dashboard"></i>Admin Dashboard</a>
</li> </li>
{{/if}} {{/if}}
{{#if permissions.LIST_DEVICES}} {{#if permissions.LIST_OWN_DEVICES}}
<li> <li>
<a href="{{@app.context}}/devices"><i class="fw fw-mobile"></i>Device Management</a> <a href="{{@app.context}}/devices"><i class="fw fw-mobile"></i>Device Management</a>
</li> </li>

@ -91,7 +91,7 @@
<span class="wr-list-icon"> <span class="wr-list-icon">
<div class="thumbnail icon"> <div class="thumbnail icon">
<img class="square-element text fw " <img class="square-element text fw "
src="{{@app.context}}/public/cdmf.unit.device.type.{{type}}.type-view/images/thumb.png"/> src="{{thumb}}"/>
</div> </div>
</span> </span>
<span class="wr-list-desc"> <span class="wr-list-desc">

@ -41,9 +41,8 @@ function onRequest(context) {
if (response["status"] == "success") { if (response["status"] == "success") {
userRoles = response["content"]; userRoles = response["content"];
} }
var deviceModule = require("/app/modules/device.js").deviceModule; var deviceModule = require("/app/modules/device.js").deviceModule;
devices = deviceModule.listDevicesForUser(userName); devices = deviceModule.getDevices(userName);
} }
return {"user": user, "userRoles": userRoles, "devices": devices}; return {"user": user, "userRoles": userRoles, "devices": devices};
} }

@ -87,10 +87,8 @@ public class PolicyManagementServiceComponent {
componentContext.getBundleContext().registerService( componentContext.getBundleContext().registerService(
PolicyManagerService.class.getName(), new PolicyManagerServiceImpl(), null); PolicyManagerService.class.getName(), new PolicyManagerServiceImpl(), null);
PolicyConfiguration policyConfiguration =
DeviceConfigurationManager.getInstance().getDeviceManagementConfig().getPolicyConfiguration();
PolicyConfiguration policyConfiguration = DeviceConfigurationManager.getInstance().getDeviceManagementConfig().
getDeviceManagementConfigRepository().getPolicyConfiguration();
if(policyConfiguration.getMonitoringEnable()) { if(policyConfiguration.getMonitoringEnable()) {
TaskScheduleService taskScheduleService = new TaskScheduleServiceImpl(); TaskScheduleService taskScheduleService = new TaskScheduleServiceImpl();
taskScheduleService.startTask(PolicyManagerUtil.getMonitoringFequency()); taskScheduleService.startTask(PolicyManagerUtil.getMonitoringFequency());
@ -104,8 +102,8 @@ public class PolicyManagementServiceComponent {
@SuppressWarnings("unused") @SuppressWarnings("unused")
protected void deactivate(ComponentContext componentContext) { protected void deactivate(ComponentContext componentContext) {
try { try {
PolicyConfiguration policyConfiguration = DeviceConfigurationManager.getInstance().getDeviceManagementConfig(). PolicyConfiguration policyConfiguration =
getDeviceManagementConfigRepository().getPolicyConfiguration(); DeviceConfigurationManager.getInstance().getDeviceManagementConfig().getPolicyConfiguration();
if (policyConfiguration.getMonitoringEnable()) { if (policyConfiguration.getMonitoringEnable()) {
TaskScheduleService taskScheduleService = new TaskScheduleServiceImpl(); TaskScheduleService taskScheduleService = new TaskScheduleServiceImpl();
taskScheduleService.stopTask(); taskScheduleService.stopTask();

@ -72,9 +72,8 @@ public class MonitoringManagerImpl implements MonitoringManager {
this.deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO(); this.deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO();
this.monitoringDAO = PolicyManagementDAOFactory.getMonitoringDAO(); this.monitoringDAO = PolicyManagementDAOFactory.getMonitoringDAO();
this.complianceDecisionPoint = new ComplianceDecisionPointImpl(); this.complianceDecisionPoint = new ComplianceDecisionPointImpl();
this.policyConfiguration = DeviceConfigurationManager.getInstance().getDeviceManagementConfig(). this.policyConfiguration =
getDeviceManagementConfigRepository().getPolicyConfiguration(); DeviceConfigurationManager.getInstance().getDeviceManagementConfig().getPolicyConfiguration();
} }
@Override @Override

@ -43,8 +43,8 @@ public class TaskScheduleServiceImpl implements TaskScheduleService {
public TaskScheduleServiceImpl() { public TaskScheduleServiceImpl() {
this.policyConfiguration = DeviceConfigurationManager.getInstance().getDeviceManagementConfig(). this.policyConfiguration =
getDeviceManagementConfigRepository().getPolicyConfiguration(); DeviceConfigurationManager.getInstance().getDeviceManagementConfig().getPolicyConfiguration();
} }
@Override @Override

@ -218,7 +218,7 @@ public class PolicyManagerUtil {
if (monitoringFrequency == 0) { if (monitoringFrequency == 0) {
PolicyConfiguration policyConfiguration = DeviceConfigurationManager.getInstance(). PolicyConfiguration policyConfiguration = DeviceConfigurationManager.getInstance().
getDeviceManagementConfig().getDeviceManagementConfigRepository().getPolicyConfiguration(); getDeviceManagementConfig().getPolicyConfiguration();
monitoringFrequency = policyConfiguration.getMonitoringFrequency(); monitoringFrequency = policyConfiguration.getMonitoringFrequency();
} }

Loading…
Cancel
Save