mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge branch 'master' of https://github.com/wso2/carbon-device-mgt
This commit is contained in:
commit
2e71c21378
@ -81,7 +81,7 @@ public class ActivityProviderServiceImpl implements ActivityInfoProviderService
|
|||||||
long timestamp = 0;
|
long timestamp = 0;
|
||||||
boolean isIfModifiedSinceSet = false;
|
boolean isIfModifiedSinceSet = false;
|
||||||
boolean isSinceSet = false;
|
boolean isSinceSet = false;
|
||||||
|
RequestValidationUtil.validatePaginationParameters(offset, limit);
|
||||||
if (ifModifiedSince != null && !ifModifiedSince.isEmpty()) {
|
if (ifModifiedSince != null && !ifModifiedSince.isEmpty()) {
|
||||||
Date ifSinceDate;
|
Date ifSinceDate;
|
||||||
SimpleDateFormat format = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
|
SimpleDateFormat format = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
|
||||||
|
|||||||
@ -74,7 +74,7 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
|||||||
@QueryParam("limit") int limit) {
|
@QueryParam("limit") int limit) {
|
||||||
try {
|
try {
|
||||||
// RequestValidationUtil.validateSelectionCriteria(type, user, roleName, ownership, status);
|
// RequestValidationUtil.validateSelectionCriteria(type, user, roleName, ownership, status);
|
||||||
|
RequestValidationUtil.validatePaginationParameters(offset, limit);
|
||||||
DeviceManagementProviderService dms = DeviceMgtAPIUtils.getDeviceManagementService();
|
DeviceManagementProviderService dms = DeviceMgtAPIUtils.getDeviceManagementService();
|
||||||
PaginationRequest request = new PaginationRequest(offset, limit);
|
PaginationRequest request = new PaginationRequest(offset, limit);
|
||||||
PaginationResult result;
|
PaginationResult result;
|
||||||
@ -154,6 +154,7 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
|||||||
public Response getDeviceByUser(@QueryParam("offset") int offset,
|
public Response getDeviceByUser(@QueryParam("offset") int offset,
|
||||||
@QueryParam("limit") int limit) {
|
@QueryParam("limit") int limit) {
|
||||||
|
|
||||||
|
RequestValidationUtil.validatePaginationParameters(offset, limit);
|
||||||
PaginationRequest request = new PaginationRequest(offset, limit);
|
PaginationRequest request = new PaginationRequest(offset, limit);
|
||||||
PaginationResult result;
|
PaginationResult result;
|
||||||
DeviceList devices = new DeviceList();
|
DeviceList devices = new DeviceList();
|
||||||
@ -292,6 +293,7 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
|||||||
@QueryParam("offset") int offset,
|
@QueryParam("offset") int offset,
|
||||||
@QueryParam("limit") int limit) {
|
@QueryParam("limit") int limit) {
|
||||||
OperationList operationsList = new OperationList();
|
OperationList operationsList = new OperationList();
|
||||||
|
RequestValidationUtil.validatePaginationParameters(offset, limit);
|
||||||
PaginationRequest request = new PaginationRequest(offset, limit);
|
PaginationRequest request = new PaginationRequest(offset, limit);
|
||||||
PaginationResult result;
|
PaginationResult result;
|
||||||
DeviceManagementProviderService dms;
|
DeviceManagementProviderService dms;
|
||||||
|
|||||||
@ -50,6 +50,7 @@ public class NotificationManagementServiceImpl implements NotificationManagement
|
|||||||
@HeaderParam("If-Modified-Since") String ifModifiedSince,
|
@HeaderParam("If-Modified-Since") String ifModifiedSince,
|
||||||
@QueryParam("offset") int offset, @QueryParam("limit") int limit) {
|
@QueryParam("offset") int offset, @QueryParam("limit") int limit) {
|
||||||
|
|
||||||
|
RequestValidationUtil.validatePaginationParameters(offset, limit);
|
||||||
PaginationRequest request = new PaginationRequest(offset, limit);
|
PaginationRequest request = new PaginationRequest(offset, limit);
|
||||||
PaginationResult result;
|
PaginationResult result;
|
||||||
|
|
||||||
|
|||||||
@ -140,6 +140,7 @@ public class PolicyManagementServiceImpl implements PolicyManagementService {
|
|||||||
@HeaderParam("If-Modified-Since") String ifModifiedSince,
|
@HeaderParam("If-Modified-Since") String ifModifiedSince,
|
||||||
@QueryParam("offset") int offset,
|
@QueryParam("offset") int offset,
|
||||||
@QueryParam("limit") int limit) {
|
@QueryParam("limit") int limit) {
|
||||||
|
RequestValidationUtil.validatePaginationParameters(offset, limit);
|
||||||
PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
|
PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
|
||||||
List<Policy> policies;
|
List<Policy> policies;
|
||||||
List<Policy> filteredPolicies;
|
List<Policy> filteredPolicies;
|
||||||
|
|||||||
@ -61,6 +61,7 @@ public class RoleManagementServiceImpl implements RoleManagementService {
|
|||||||
@QueryParam("user-store") String userStore,
|
@QueryParam("user-store") String userStore,
|
||||||
@HeaderParam("If-Modified-Since") String ifModifiedSince,
|
@HeaderParam("If-Modified-Since") String ifModifiedSince,
|
||||||
@QueryParam("offset") int offset, @QueryParam("limit") int limit) {
|
@QueryParam("offset") int offset, @QueryParam("limit") int limit) {
|
||||||
|
RequestValidationUtil.validatePaginationParameters(offset, limit);
|
||||||
List<String> filteredRoles;
|
List<String> filteredRoles;
|
||||||
RoleList targetRoles = new RoleList();
|
RoleList targetRoles = new RoleList();
|
||||||
|
|
||||||
|
|||||||
@ -26,6 +26,7 @@ import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
|||||||
import org.wso2.carbon.device.mgt.core.service.EmailMetaInfo;
|
import org.wso2.carbon.device.mgt.core.service.EmailMetaInfo;
|
||||||
import org.wso2.carbon.device.mgt.jaxrs.beans.*;
|
import org.wso2.carbon.device.mgt.jaxrs.beans.*;
|
||||||
import org.wso2.carbon.device.mgt.jaxrs.service.api.UserManagementService;
|
import org.wso2.carbon.device.mgt.jaxrs.service.api.UserManagementService;
|
||||||
|
import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil;
|
||||||
import org.wso2.carbon.device.mgt.jaxrs.util.Constants;
|
import org.wso2.carbon.device.mgt.jaxrs.util.Constants;
|
||||||
import org.wso2.carbon.device.mgt.jaxrs.util.CredentialManagementResponseBuilder;
|
import org.wso2.carbon.device.mgt.jaxrs.util.CredentialManagementResponseBuilder;
|
||||||
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
|
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
|
||||||
@ -264,6 +265,7 @@ public class UserManagementServiceImpl implements UserManagementService {
|
|||||||
log.debug("Getting the list of users with all user-related information");
|
log.debug("Getting the list of users with all user-related information");
|
||||||
}
|
}
|
||||||
List<BasicUserInfo> userList, offsetList;
|
List<BasicUserInfo> userList, offsetList;
|
||||||
|
RequestValidationUtil.validatePaginationParameters(offset, limit);
|
||||||
String appliedFilter = ((filter == null) || filter.isEmpty() ? "*" : filter);
|
String appliedFilter = ((filter == null) || filter.isEmpty() ? "*" : filter);
|
||||||
int appliedLimit = (limit <= 0) ? -1 : (limit + offset);
|
int appliedLimit = (limit <= 0) ? -1 : (limit + offset);
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
|||||||
import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceList;
|
import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceList;
|
||||||
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
|
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
|
||||||
import org.wso2.carbon.device.mgt.jaxrs.service.api.admin.DeviceManagementAdminService;
|
import org.wso2.carbon.device.mgt.jaxrs.service.api.admin.DeviceManagementAdminService;
|
||||||
|
import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil;
|
||||||
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
|
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
|
||||||
|
|
||||||
import javax.ws.rs.*;
|
import javax.ws.rs.*;
|
||||||
@ -50,6 +51,7 @@ public class DeviceManagementAdminServiceImpl implements DeviceManagementAdminSe
|
|||||||
@HeaderParam("If-Modified-Since") String ifModifiedSince,
|
@HeaderParam("If-Modified-Since") String ifModifiedSince,
|
||||||
@QueryParam("offset") int offset,
|
@QueryParam("offset") int offset,
|
||||||
@QueryParam("limit") int limit) {
|
@QueryParam("limit") int limit) {
|
||||||
|
RequestValidationUtil.validatePaginationParameters(offset, limit);
|
||||||
try {
|
try {
|
||||||
int currentTenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
int currentTenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||||
if (MultitenantConstants.SUPER_TENANT_ID != currentTenantId) {
|
if (MultitenantConstants.SUPER_TENANT_ID != currentTenantId) {
|
||||||
|
|||||||
@ -19,6 +19,7 @@
|
|||||||
package org.wso2.carbon.device.mgt.jaxrs.service.impl.util;
|
package org.wso2.carbon.device.mgt.jaxrs.service.impl.util;
|
||||||
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
|
import org.wso2.carbon.device.mgt.common.PaginationRequest;
|
||||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
|
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
|
||||||
import org.wso2.carbon.device.mgt.common.notification.mgt.Notification;
|
import org.wso2.carbon.device.mgt.common.notification.mgt.Notification;
|
||||||
import org.wso2.carbon.device.mgt.jaxrs.beans.*;
|
import org.wso2.carbon.device.mgt.jaxrs.beans.*;
|
||||||
@ -312,4 +313,17 @@ public class RequestValidationUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void validatePaginationParameters(int offset, int limit) {
|
||||||
|
if (offset < 0) {
|
||||||
|
throw new InputValidationException(
|
||||||
|
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage("Request parameter offset is s " +
|
||||||
|
"negative value.").build());
|
||||||
|
}
|
||||||
|
if (limit < 0) {
|
||||||
|
throw new InputValidationException(
|
||||||
|
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage("Request parameter limit is a " +
|
||||||
|
"negative value.").build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,6 +18,7 @@
|
|||||||
package org.wso2.carbon.device.mgt.core.config;
|
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.identity.IdentityConfigurations;
|
||||||
|
import org.wso2.carbon.device.mgt.core.config.pagination.PaginationConfiguration;
|
||||||
import org.wso2.carbon.device.mgt.core.config.policy.PolicyConfiguration;
|
import org.wso2.carbon.device.mgt.core.config.policy.PolicyConfiguration;
|
||||||
import org.wso2.carbon.device.mgt.core.config.task.TaskConfiguration;
|
import org.wso2.carbon.device.mgt.core.config.task.TaskConfiguration;
|
||||||
|
|
||||||
@ -37,6 +38,7 @@ public final class DeviceManagementConfig {
|
|||||||
private TaskConfiguration taskConfiguration;
|
private TaskConfiguration taskConfiguration;
|
||||||
private IdentityConfigurations identityConfigurations;
|
private IdentityConfigurations identityConfigurations;
|
||||||
private PolicyConfiguration policyConfiguration;
|
private PolicyConfiguration policyConfiguration;
|
||||||
|
private PaginationConfiguration paginationConfiguration;
|
||||||
private List<String> pushNotificationProviders;
|
private List<String> pushNotificationProviders;
|
||||||
|
|
||||||
|
|
||||||
@ -87,5 +89,14 @@ public final class DeviceManagementConfig {
|
|||||||
this.pushNotificationProviders = pushNotificationProviders;
|
this.pushNotificationProviders = pushNotificationProviders;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "PaginationConfiguration", required = true)
|
||||||
|
public PaginationConfiguration getPaginationConfiguration() {
|
||||||
|
return paginationConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPaginationConfiguration(PaginationConfiguration paginationConfiguration) {
|
||||||
|
this.paginationConfiguration = paginationConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,71 @@
|
|||||||
|
/*
|
||||||
|
* 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.core.config.pagination;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class represents the information related to Pagination configuration.
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "PaginationConfiguration")
|
||||||
|
public class PaginationConfiguration {
|
||||||
|
|
||||||
|
private int deviceListPageSize;
|
||||||
|
private int operationListPageSize;
|
||||||
|
private int notificationListPageSize;
|
||||||
|
private int activityListPageSize;
|
||||||
|
|
||||||
|
public int getDeviceListPageSize() {
|
||||||
|
return deviceListPageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "DeviceListPageSize", required = true)
|
||||||
|
public void setDeviceListPageSize(int deviceListPageSize) {
|
||||||
|
this.deviceListPageSize = deviceListPageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getOperationListPageSize() {
|
||||||
|
return operationListPageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "OperationListPageSize", required = true)
|
||||||
|
public void setOperationListPageSize(int operationListPageSize) {
|
||||||
|
this.operationListPageSize = operationListPageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNotificationListPageSize() {
|
||||||
|
return notificationListPageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "NotificationListPageSize", required = true)
|
||||||
|
public void setNotificationListPageSize(int notificationListPageSize) {
|
||||||
|
this.notificationListPageSize = notificationListPageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getActivityListPageSize() {
|
||||||
|
return activityListPageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "ActivityListPageSize", required = true)
|
||||||
|
public void setActivityListPageSize(int activityListPageSize) {
|
||||||
|
this.activityListPageSize = activityListPageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -102,7 +102,7 @@ public class ApplicationMappingDAOImpl implements ApplicationMappingDAO {
|
|||||||
Connection conn;
|
Connection conn;
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
try {
|
try {
|
||||||
String sql = "DELETE DM_DEVICE_APPLICATION_MAPPING WHERE DEVICE_ID = ? AND " +
|
String sql = "DELETE FROM DM_DEVICE_APPLICATION_MAPPING WHERE DEVICE_ID = ? AND " +
|
||||||
"APPLICATION_ID = ? AND TENANT_ID = ?";
|
"APPLICATION_ID = ? AND TENANT_ID = ?";
|
||||||
|
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
@ -114,7 +114,7 @@ public class ApplicationMappingDAOImpl implements ApplicationMappingDAO {
|
|||||||
stmt.execute();
|
stmt.execute();
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while adding device application mapping", e);
|
throw new DeviceManagementDAOException("Error occurred while removing device application mapping", e);
|
||||||
} finally {
|
} finally {
|
||||||
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -129,7 +129,7 @@ public class EnrollmentDAOImpl implements EnrollmentDAO {
|
|||||||
int status = -1;
|
int status = -1;
|
||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String sql = "DELETE DM_ENROLMENT WHERE DEVICE_ID = ? AND OWNER = ? AND TENANT_ID = ?";
|
String sql = "DELETE FROM DM_ENROLMENT WHERE DEVICE_ID = ? AND OWNER = ? AND TENANT_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql, new String[] {"id"});
|
stmt = conn.prepareStatement(sql, new String[] {"id"});
|
||||||
stmt.setInt(1, deviceId);
|
stmt.setInt(1, deviceId);
|
||||||
stmt.setString(2, currentOwner);
|
stmt.setString(2, currentOwner);
|
||||||
|
|||||||
@ -35,6 +35,7 @@ import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
|||||||
import org.wso2.carbon.device.mgt.core.notification.mgt.dao.NotificationDAO;
|
import org.wso2.carbon.device.mgt.core.notification.mgt.dao.NotificationDAO;
|
||||||
import org.wso2.carbon.device.mgt.core.notification.mgt.dao.NotificationManagementDAOFactory;
|
import org.wso2.carbon.device.mgt.core.notification.mgt.dao.NotificationManagementDAOFactory;
|
||||||
import org.wso2.carbon.device.mgt.core.notification.mgt.dao.util.NotificationDAOUtil;
|
import org.wso2.carbon.device.mgt.core.notification.mgt.dao.util.NotificationDAOUtil;
|
||||||
|
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
||||||
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -177,6 +178,7 @@ public class NotificationManagementServiceImpl implements NotificationManagement
|
|||||||
public PaginationResult getAllNotifications(PaginationRequest request) throws NotificationManagementException {
|
public PaginationResult getAllNotifications(PaginationRequest request) throws NotificationManagementException {
|
||||||
PaginationResult paginationResult = new PaginationResult();
|
PaginationResult paginationResult = new PaginationResult();
|
||||||
List<Notification> notifications = new ArrayList<>();
|
List<Notification> notifications = new ArrayList<>();
|
||||||
|
request = DeviceManagerUtil.validateNotificationListPageSize(request);
|
||||||
int count =0;
|
int count =0;
|
||||||
try {
|
try {
|
||||||
NotificationManagementDAOFactory.openConnection();
|
NotificationManagementDAOFactory.openConnection();
|
||||||
@ -199,6 +201,7 @@ public class NotificationManagementServiceImpl implements NotificationManagement
|
|||||||
PaginationRequest request) throws NotificationManagementException{
|
PaginationRequest request) throws NotificationManagementException{
|
||||||
PaginationResult paginationResult = new PaginationResult();
|
PaginationResult paginationResult = new PaginationResult();
|
||||||
List<Notification> notifications = new ArrayList<>();
|
List<Notification> notifications = new ArrayList<>();
|
||||||
|
request = DeviceManagerUtil.validateNotificationListPageSize(request);
|
||||||
int count =0;
|
int count =0;
|
||||||
try {
|
try {
|
||||||
NotificationManagementDAOFactory.openConnection();
|
NotificationManagementDAOFactory.openConnection();
|
||||||
|
|||||||
@ -508,6 +508,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
int count = 0;
|
int count = 0;
|
||||||
int tenantId = this.getTenantId();
|
int tenantId = this.getTenantId();
|
||||||
String deviceType = request.getDeviceType();
|
String deviceType = request.getDeviceType();
|
||||||
|
request = DeviceManagerUtil.validateDeviceListPageSize(request);
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.openConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
allDevices = deviceDAO.getDevices(request, tenantId);
|
allDevices = deviceDAO.getDevices(request, tenantId);
|
||||||
@ -569,6 +570,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
List<Device> allDevices = new ArrayList<>();
|
List<Device> allDevices = new ArrayList<>();
|
||||||
int count = 0;
|
int count = 0;
|
||||||
int tenantId = this.getTenantId();
|
int tenantId = this.getTenantId();
|
||||||
|
request = DeviceManagerUtil.validateDeviceListPageSize(request);
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.openConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
allDevices = deviceDAO.getDevices(request, tenantId);
|
allDevices = deviceDAO.getDevices(request, tenantId);
|
||||||
@ -1031,6 +1033,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
@Override
|
@Override
|
||||||
public PaginationResult getOperations(DeviceIdentifier deviceId, PaginationRequest request)
|
public PaginationResult getOperations(DeviceIdentifier deviceId, PaginationRequest request)
|
||||||
throws OperationManagementException {
|
throws OperationManagementException {
|
||||||
|
request = DeviceManagerUtil.validateOperationListPageSize(request);
|
||||||
return pluginRepository.getOperationManager(deviceId.getType(), this.getTenantId())
|
return pluginRepository.getOperationManager(deviceId.getType(), this.getTenantId())
|
||||||
.getOperations(deviceId, request);
|
.getOperations(deviceId, request);
|
||||||
}
|
}
|
||||||
@ -1091,6 +1094,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Activity> getActivitiesUpdatedAfter(long timestamp, int limit, int offset) throws OperationManagementException {
|
public List<Activity> getActivitiesUpdatedAfter(long timestamp, int limit, int offset) throws OperationManagementException {
|
||||||
|
limit = DeviceManagerUtil.validateActivityListPageSize(limit);
|
||||||
return DeviceManagementDataHolder.getInstance().getOperationManager().getActivitiesUpdatedAfter(timestamp, limit, offset);
|
return DeviceManagementDataHolder.getInstance().getOperationManager().getActivitiesUpdatedAfter(timestamp, limit, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1176,6 +1180,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
String username = request.getOwner();
|
String username = request.getOwner();
|
||||||
List<Device> devices = new ArrayList<>();
|
List<Device> devices = new ArrayList<>();
|
||||||
List<Device> userDevices = new ArrayList<>();
|
List<Device> userDevices = new ArrayList<>();
|
||||||
|
request = DeviceManagerUtil.validateDeviceListPageSize(request);
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.openConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
userDevices = deviceDAO.getDevicesOfUser(request, tenantId);
|
userDevices = deviceDAO.getDevicesOfUser(request, tenantId);
|
||||||
@ -1253,6 +1258,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
int deviceCount = 0;
|
int deviceCount = 0;
|
||||||
int tenantId = this.getTenantId();
|
int tenantId = this.getTenantId();
|
||||||
String ownerShip = request.getOwnership();
|
String ownerShip = request.getOwnership();
|
||||||
|
request = DeviceManagerUtil.validateDeviceListPageSize(request);
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.openConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
allDevices = deviceDAO.getDevicesByOwnership(request, tenantId);
|
allDevices = deviceDAO.getDevicesByOwnership(request, tenantId);
|
||||||
@ -1412,6 +1418,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
public List<Device> getDevicesByNameAndType(String deviceName, String type, int offset, int limit) throws DeviceManagementException {
|
public List<Device> getDevicesByNameAndType(String deviceName, String type, int offset, int limit) throws DeviceManagementException {
|
||||||
List<Device> devices = new ArrayList<>();
|
List<Device> devices = new ArrayList<>();
|
||||||
List<Device> allDevices;
|
List<Device> allDevices;
|
||||||
|
limit = DeviceManagerUtil.validateDeviceListPageSize(limit);
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.openConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
allDevices = deviceDAO.getDevicesByNameAndType(deviceName, type, this.getTenantId(), offset, limit);
|
allDevices = deviceDAO.getDevicesByNameAndType(deviceName, type, this.getTenantId(), offset, limit);
|
||||||
@ -1474,6 +1481,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
List<Device> devices = new ArrayList<>();
|
List<Device> devices = new ArrayList<>();
|
||||||
List<Device> allDevices = new ArrayList<>();
|
List<Device> allDevices = new ArrayList<>();
|
||||||
String deviceName = request.getDeviceName();
|
String deviceName = request.getDeviceName();
|
||||||
|
request = DeviceManagerUtil.validateDeviceListPageSize(request);
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.openConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
allDevices = deviceDAO.getDevicesByName(request, tenantId);
|
allDevices = deviceDAO.getDevicesByName(request, tenantId);
|
||||||
@ -1636,6 +1644,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
List<Device> allDevices = new ArrayList<>();
|
List<Device> allDevices = new ArrayList<>();
|
||||||
int tenantId = this.getTenantId();
|
int tenantId = this.getTenantId();
|
||||||
String status = request.getStatus();
|
String status = request.getStatus();
|
||||||
|
request = DeviceManagerUtil.validateDeviceListPageSize(request);
|
||||||
try {
|
try {
|
||||||
DeviceManagementDAOFactory.openConnection();
|
DeviceManagementDAOFactory.openConnection();
|
||||||
allDevices = deviceDAO.getDevicesByStatus(request, tenantId);
|
allDevices = deviceDAO.getDevicesByStatus(request, tenantId);
|
||||||
|
|||||||
@ -21,10 +21,11 @@ import org.apache.commons.logging.Log;
|
|||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.wso2.carbon.base.MultitenantConstants;
|
import org.wso2.carbon.base.MultitenantConstants;
|
||||||
import org.wso2.carbon.device.mgt.common.Device;
|
import org.wso2.carbon.device.mgt.common.*;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
|
||||||
import org.wso2.carbon.device.mgt.common.TransactionManagementException;
|
import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager;
|
||||||
|
import org.wso2.carbon.device.mgt.core.config.DeviceManagementConfig;
|
||||||
import org.wso2.carbon.device.mgt.core.config.datasource.DataSourceConfig;
|
import org.wso2.carbon.device.mgt.core.config.datasource.DataSourceConfig;
|
||||||
import org.wso2.carbon.device.mgt.core.config.datasource.JNDILookupDefinition;
|
import org.wso2.carbon.device.mgt.core.config.datasource.JNDILookupDefinition;
|
||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
|
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
|
||||||
@ -241,4 +242,79 @@ public final class DeviceManagerUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int validateActivityListPageSize(int limit) throws OperationManagementException {
|
||||||
|
if (limit == 0) {
|
||||||
|
DeviceManagementConfig deviceManagementConfig = DeviceConfigurationManager.getInstance().
|
||||||
|
getDeviceManagementConfig();
|
||||||
|
if (deviceManagementConfig != null) {
|
||||||
|
return deviceManagementConfig.getPaginationConfiguration().getActivityListPageSize();
|
||||||
|
} else {
|
||||||
|
throw new OperationManagementException("Device-Mgt configuration has not initialized. Please check the " +
|
||||||
|
"cdm-config.xml file.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return limit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PaginationRequest validateOperationListPageSize(PaginationRequest paginationRequest) throws
|
||||||
|
OperationManagementException {
|
||||||
|
if (paginationRequest.getRowCount() == 0) {
|
||||||
|
DeviceManagementConfig deviceManagementConfig = DeviceConfigurationManager.getInstance().
|
||||||
|
getDeviceManagementConfig();
|
||||||
|
if (deviceManagementConfig != null) {
|
||||||
|
paginationRequest.setRowCount(deviceManagementConfig.getPaginationConfiguration().
|
||||||
|
getOperationListPageSize());
|
||||||
|
} else {
|
||||||
|
throw new OperationManagementException("Device-Mgt configuration has not initialized. Please check the " +
|
||||||
|
"cdm-config.xml file.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return paginationRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PaginationRequest validateNotificationListPageSize(PaginationRequest paginationRequest) throws
|
||||||
|
NotificationManagementException {
|
||||||
|
if (paginationRequest.getRowCount() == 0) {
|
||||||
|
DeviceManagementConfig deviceManagementConfig = DeviceConfigurationManager.getInstance().
|
||||||
|
getDeviceManagementConfig();
|
||||||
|
if (deviceManagementConfig != null) {
|
||||||
|
paginationRequest.setRowCount(deviceManagementConfig.getPaginationConfiguration().
|
||||||
|
getNotificationListPageSize());
|
||||||
|
} else {
|
||||||
|
throw new NotificationManagementException("Device-Mgt configuration has not initialized. Please check the " +
|
||||||
|
"cdm-config.xml file.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return paginationRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PaginationRequest validateDeviceListPageSize(PaginationRequest paginationRequest) throws
|
||||||
|
DeviceManagementException {
|
||||||
|
if (paginationRequest.getRowCount() == 0) {
|
||||||
|
DeviceManagementConfig deviceManagementConfig = DeviceConfigurationManager.getInstance().
|
||||||
|
getDeviceManagementConfig();
|
||||||
|
if (deviceManagementConfig != null) {
|
||||||
|
paginationRequest.setRowCount(deviceManagementConfig.getPaginationConfiguration().
|
||||||
|
getDeviceListPageSize());
|
||||||
|
} else {
|
||||||
|
throw new DeviceManagementException("Device-Mgt configuration has not initialized. Please check the " +
|
||||||
|
"cdm-config.xml file.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return paginationRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int validateDeviceListPageSize(int limit) throws DeviceManagementException {
|
||||||
|
if (limit == 0) {
|
||||||
|
DeviceManagementConfig deviceManagementConfig = DeviceConfigurationManager.getInstance().
|
||||||
|
getDeviceManagementConfig();
|
||||||
|
if (deviceManagementConfig != null) {
|
||||||
|
return deviceManagementConfig.getPaginationConfiguration().getDeviceListPageSize();
|
||||||
|
} else {
|
||||||
|
throw new DeviceManagementException("Device-Mgt configuration has not initialized. Please check the " +
|
||||||
|
"cdm-config.xml file.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return limit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,7 +22,7 @@ var log = new Log("api/data-tables-invoker-api.jag");
|
|||||||
var uri = request.getRequestURI();
|
var uri = request.getRequestURI();
|
||||||
var uriMatcher = new URIMatcher(String(uri));
|
var uriMatcher = new URIMatcher(String(uri));
|
||||||
|
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
||||||
|
|
||||||
function appendQueryParam (url, queryParam , value) {
|
function appendQueryParam (url, queryParam , value) {
|
||||||
|
|||||||
@ -22,10 +22,10 @@ var uriMatcher = new URIMatcher(String(uri));
|
|||||||
|
|
||||||
var log = new Log("api/device-api.jag");
|
var log = new Log("api/device-api.jag");
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var deviceModule = require("/app/modules/device.js").deviceModule;
|
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||||
var utility = require("/app/modules/utility.js").utility;
|
var utility = require("/app/modules/utility.js").utility;
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var userModule = require("/app/modules/user.js").userModule;
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
||||||
|
|
||||||
var user = session.get(constants.USER_SESSION_KEY);
|
var user = session.get(constants.USER_SESSION_KEY);
|
||||||
|
|||||||
@ -23,7 +23,7 @@ var uriMatcher = new URIMatcher(String(uri));
|
|||||||
var log = new Log("api/device-api.jag");
|
var log = new Log("api/device-api.jag");
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var utility = require("/app/modules/utility.js").utility;
|
var utility = require("/app/modules/utility.js").utility;
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
||||||
|
|
||||||
var user = session.get(constants.USER_SESSION_KEY);
|
var user = session.get(constants.USER_SESSION_KEY);
|
||||||
|
|||||||
@ -23,7 +23,7 @@ var uri = request.getRequestURI();
|
|||||||
var uriMatcher = new URIMatcher(String(uri));
|
var uriMatcher = new URIMatcher(String(uri));
|
||||||
|
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
||||||
|
|
||||||
if (uriMatcher.match("/{context}/api/invoker/execute/")) {
|
if (uriMatcher.match("/{context}/api/invoker/execute/")) {
|
||||||
|
|||||||
@ -23,7 +23,7 @@ var uriMatcher = new URIMatcher(String(uri));
|
|||||||
var log = new Log("api/operation-api.jag");
|
var log = new Log("api/operation-api.jag");
|
||||||
|
|
||||||
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
|
|
||||||
if (uriMatcher.match("/{context}/api/operation/paginate")) {
|
if (uriMatcher.match("/{context}/api/operation/paginate")) {
|
||||||
var deviceType = request.getParameter("deviceType");
|
var deviceType = request.getParameter("deviceType");
|
||||||
|
|||||||
@ -27,7 +27,7 @@ var uriMatcher = new URIMatcher(String(uri));
|
|||||||
var log = new Log("api/policy-api.jag");
|
var log = new Log("api/policy-api.jag");
|
||||||
|
|
||||||
var constants = require("/modules/constants.js");
|
var constants = require("/modules/constants.js");
|
||||||
var policyModule = require("/modules/policy.js").policyModule;
|
var policyModule = require("/app/modules/business-controllers/group.js")["groupModule"];
|
||||||
|
|
||||||
var result;
|
var result;
|
||||||
if (uriMatcher.match("/{context}/api/policies/update")) {
|
if (uriMatcher.match("/{context}/api/policies/update")) {
|
||||||
|
|||||||
@ -23,9 +23,9 @@ var uriMatcher = new URIMatcher(String(uri));
|
|||||||
var log = new Log("api/user-api.jag");
|
var log = new Log("api/user-api.jag");
|
||||||
|
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var userModule = require("/app/modules/user.js").userModule;
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var deviceModule = require("/app/modules/device.js").deviceModule;
|
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||||
var utility = require("/app/modules/utility.js").utility;
|
var utility = require("/app/modules/utility.js").utility;
|
||||||
var apiWrapperUtil = require("/app/modules/oauth/token-handlers.js")["handlers"];
|
var apiWrapperUtil = require("/app/modules/oauth/token-handlers.js")["handlers"];
|
||||||
var util = require("/app/modules/oauth/token-handler-utils.js")["utils"];
|
var util = require("/app/modules/oauth/token-handler-utils.js")["utils"];
|
||||||
|
|||||||
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
var deviceModule;
|
var deviceModule;
|
||||||
deviceModule = function () {
|
deviceModule = function () {
|
||||||
var log = new Log("/app/modules/device.js");
|
var log = new Log("/app/modules/business-controllers/device.js");
|
||||||
|
|
||||||
var utility = require('/app/modules/utility.js').utility;
|
var utility = require('/app/modules/utility.js').utility;
|
||||||
var constants = require('/app/modules/constants.js');
|
var constants = require('/app/modules/constants.js');
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
||||||
|
|
||||||
// var ArrayList = Packages.java.util.ArrayList;
|
// var ArrayList = Packages.java.util.ArrayList;
|
||||||
@ -261,7 +261,7 @@ deviceModule = function () {
|
|||||||
publicMethods.getDevicesCount = function () {
|
publicMethods.getDevicesCount = function () {
|
||||||
var carbonUser = session.get(constants.USER_SESSION_KEY);
|
var carbonUser = session.get(constants.USER_SESSION_KEY);
|
||||||
if (carbonUser) {
|
if (carbonUser) {
|
||||||
var userModule = require("/app/modules/user.js").userModule;
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var uiPermissions = userModule.getUIPermissions();
|
var uiPermissions = userModule.getUIPermissions();
|
||||||
var url;
|
var url;
|
||||||
if (uiPermissions.LIST_DEVICES) {
|
if (uiPermissions.LIST_DEVICES) {
|
||||||
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
var groupModule = {};
|
var groupModule = {};
|
||||||
(function (groupModule) {
|
(function (groupModule) {
|
||||||
var log = new Log("/app/modules/group.js");
|
var log = new Log("/app/modules/business-controllers/group.js");
|
||||||
|
|
||||||
var userModule = require("/app/modules/user.js").userModule;
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var constants = require('/app/modules/constants.js');
|
var constants = require('/app/modules/constants.js');
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var utility = require("/app/modules/utility.js").utility;
|
var utility = require("/app/modules/utility.js").utility;
|
||||||
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
||||||
|
|
||||||
@ -17,10 +17,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var operationModule = function () {
|
var operationModule = function () {
|
||||||
var log = new Log("/app/modules/operation.js");
|
var log = new Log("/app/modules/business-controllers/operation.js");
|
||||||
var utility = require('/app/modules/utility.js').utility;
|
var utility = require('/app/modules/utility.js').utility;
|
||||||
var constants = require('/app/modules/constants.js');
|
var constants = require('/app/modules/constants.js');
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
||||||
|
|
||||||
var publicMethods = {};
|
var publicMethods = {};
|
||||||
@ -0,0 +1,151 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var policyModule;
|
||||||
|
policyModule = function () {
|
||||||
|
var log = new Log("/app/modules/business-controllers/policy.js");
|
||||||
|
|
||||||
|
var constants = require('/app/modules/constants.js');
|
||||||
|
var utility = require("/app/modules/utility.js")["utility"];
|
||||||
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
|
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
||||||
|
|
||||||
|
var publicMethods = {};
|
||||||
|
var privateMethods = {};
|
||||||
|
|
||||||
|
privateMethods.handleGetAllPoliciesResponse = function (backendResponse) {
|
||||||
|
var response = {};
|
||||||
|
if (backendResponse.status == 200 && backendResponse.responseText) {
|
||||||
|
var isUpdated = false;
|
||||||
|
var policyListFromRestEndpoint = parse(backendResponse.responseText)["policies"];
|
||||||
|
|
||||||
|
var policyListToView = [];
|
||||||
|
var i, policyObjectFromRestEndpoint, policyObjectToView;
|
||||||
|
for (i = 0; i < policyListFromRestEndpoint.length; i++) {
|
||||||
|
// get list object
|
||||||
|
policyObjectFromRestEndpoint = policyListFromRestEndpoint[i];
|
||||||
|
// populate list object values to view-object
|
||||||
|
policyObjectToView = {};
|
||||||
|
policyObjectToView["id"] = policyObjectFromRestEndpoint["id"];
|
||||||
|
policyObjectToView["priorityId"] = policyObjectFromRestEndpoint["priorityId"];
|
||||||
|
policyObjectToView["name"] = policyObjectFromRestEndpoint["policyName"];
|
||||||
|
policyObjectToView["platform"] = policyObjectFromRestEndpoint["profile"]["deviceType"];
|
||||||
|
policyObjectToView["ownershipType"] = policyObjectFromRestEndpoint["ownershipType"];
|
||||||
|
|
||||||
|
var assignedRoleCount = policyObjectFromRestEndpoint["roles"].length;
|
||||||
|
var assignedUserCount = policyObjectFromRestEndpoint["users"].length;
|
||||||
|
|
||||||
|
if (assignedRoleCount == 0) {
|
||||||
|
policyObjectToView["roles"] = "None";
|
||||||
|
} else if (assignedRoleCount == 1) {
|
||||||
|
policyObjectToView["roles"] = policyObjectFromRestEndpoint["roles"][0];
|
||||||
|
} else if (assignedRoleCount > 1) {
|
||||||
|
policyObjectToView["roles"] = policyObjectFromRestEndpoint["roles"][0] + ", ...";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (assignedUserCount == 0) {
|
||||||
|
policyObjectToView["users"] = "None";
|
||||||
|
} else if (assignedUserCount == 1) {
|
||||||
|
policyObjectToView["users"] = policyObjectFromRestEndpoint["users"][0];
|
||||||
|
} else if (assignedUserCount > 1) {
|
||||||
|
policyObjectToView["users"] = policyObjectFromRestEndpoint["users"][0] + ", ...";
|
||||||
|
}
|
||||||
|
|
||||||
|
policyObjectToView["compliance"] = policyObjectFromRestEndpoint["compliance"];
|
||||||
|
|
||||||
|
if (policyObjectFromRestEndpoint["active"] == true &&
|
||||||
|
policyObjectFromRestEndpoint["updated"] == true) {
|
||||||
|
policyObjectToView["status"] = "Active/Updated";
|
||||||
|
isUpdated = true;
|
||||||
|
} else if (policyObjectFromRestEndpoint["active"] == true &&
|
||||||
|
policyObjectFromRestEndpoint["updated"] == false) {
|
||||||
|
policyObjectToView["status"] = "Active";
|
||||||
|
} else if (policyObjectFromRestEndpoint["active"] == false &&
|
||||||
|
policyObjectFromRestEndpoint["updated"] == true) {
|
||||||
|
policyObjectToView["status"] = "Inactive/Updated";
|
||||||
|
isUpdated = true;
|
||||||
|
} else if (policyObjectFromRestEndpoint["active"] == false &&
|
||||||
|
policyObjectFromRestEndpoint["updated"] == false) {
|
||||||
|
policyObjectToView["status"] = "Inactive";
|
||||||
|
}
|
||||||
|
// push view-objects to list
|
||||||
|
policyListToView.push(policyObjectToView);
|
||||||
|
}
|
||||||
|
// generate response
|
||||||
|
response.updated = isUpdated;
|
||||||
|
response.status = "success";
|
||||||
|
response.content = policyListToView;
|
||||||
|
|
||||||
|
return response;
|
||||||
|
} else {
|
||||||
|
response.status = "error";
|
||||||
|
/* backendResponse.responseText == "Scope validation failed"
|
||||||
|
Here the response.context("Scope validation failed") is used other then response.status(401).
|
||||||
|
Reason for this is IDP return 401 as the status in 4 different situations such as,
|
||||||
|
1. UnAuthorized.
|
||||||
|
2. Scope Validation Failed.
|
||||||
|
3. Permission Denied.
|
||||||
|
4. Access Token Expired.
|
||||||
|
5. Access Token Invalid.
|
||||||
|
In these cases in order to identify the correct situation we have to compare the unique value from status and
|
||||||
|
context which is context.
|
||||||
|
*/
|
||||||
|
if (backendResponse.responseText == "Scope validation failed") {
|
||||||
|
response.content = "Permission Denied";
|
||||||
|
} else {
|
||||||
|
response.content = backendResponse.responseText;
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
@Updated
|
||||||
|
*/
|
||||||
|
publicMethods.getAllPolicies = function () {
|
||||||
|
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 {
|
||||||
|
var url = devicemgtProps["httpsURL"] + devicemgtProps["backendRestEndpoints"]["deviceMgt"] +
|
||||||
|
"/policies?offset=0&limit=100";
|
||||||
|
return serviceInvokers.XMLHttp.get(url, privateMethods.handleGetAllPoliciesResponse);
|
||||||
|
} catch (e) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
@Updated - used by getAllPolicies
|
||||||
|
*/
|
||||||
|
privateMethods.getElementsInAString = function (elementList) {
|
||||||
|
var i, elementsInAString = "";
|
||||||
|
for (i = 0; i < elementList.length; i++) {
|
||||||
|
if (i == elementList.length - 1) {
|
||||||
|
elementsInAString += elementList[i];
|
||||||
|
} else {
|
||||||
|
elementsInAString += elementList[i] + ", ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return elementsInAString;
|
||||||
|
};
|
||||||
|
|
||||||
|
return publicMethods;
|
||||||
|
}();
|
||||||
@ -20,11 +20,11 @@
|
|||||||
* This module contains user and roles related functionality.
|
* This module contains user and roles related functionality.
|
||||||
*/
|
*/
|
||||||
var userModule = function () {
|
var userModule = function () {
|
||||||
var log = new Log("/app/modules/user.js");
|
var log = new Log("/app/modules/business-controllers/user.js");
|
||||||
|
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var utility = require("/app/modules/utility.js")["utility"];
|
var utility = require("/app/modules/utility.js")["utility"];
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
||||||
|
|
||||||
/* Initializing user manager */
|
/* Initializing user manager */
|
||||||
@ -17,16 +17,18 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var conf = function () {
|
var conf = function () {
|
||||||
var conf = application.get("UI_CONF");
|
var conf = application.get("CONF");
|
||||||
if (!conf) {
|
if (!conf) {
|
||||||
conf = require("/app/conf/config.json");
|
conf = require("/app/conf/config.json");
|
||||||
var pinch = require("/app/conf/reader/pinch.min.js")["pinch"];
|
var pinch = require("/app/modules/conf-reader/pinch.min.js")["pinch"];
|
||||||
var server = require("carbon")["server"];
|
var server = require("carbon")["server"];
|
||||||
pinch(conf, /^/,
|
pinch(conf, /^/,
|
||||||
function (path, key, value) {
|
function (path, key, value) {
|
||||||
if ((typeof value === "string") && value.indexOf("%https.ip%") > -1) {
|
if ((typeof value === "string") && value.indexOf("%https.ip%") > -1) {
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
return value.replace("%https.ip%", server.address("https"));
|
return value.replace("%https.ip%", server.address("https"));
|
||||||
} else if ((typeof value === "string") && value.indexOf("%http.ip%") > -1) {
|
} else if ((typeof value === "string") && value.indexOf("%http.ip%") > -1) {
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
return value.replace("%http.ip%", server.address("http"));
|
return value.replace("%http.ip%", server.address("http"));
|
||||||
} else if ((typeof value === "string") && value.indexOf("%date-year%") > -1) {
|
} else if ((typeof value === "string") && value.indexOf("%date-year%") > -1) {
|
||||||
var year = new Date().getFullYear();
|
var year = new Date().getFullYear();
|
||||||
@ -35,7 +37,13 @@ var conf = function () {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
application.put("UI_CONF", conf);
|
if (conf.generalConfig.host) {
|
||||||
|
//TODO: Move enrollment URL into app-conf.json
|
||||||
|
var enrollmentHost = conf.generalConfig.host.replace(/https:\/\/localhost(:\d+)?/, conf.httpsURL).replace(
|
||||||
|
/http:\/\/localhost(:\d+)?/, conf.httpURL);
|
||||||
|
conf.enrollmentUrl = enrollmentHost + conf.enrollmentDir;
|
||||||
|
}
|
||||||
|
application.put("CONF", conf);
|
||||||
}
|
}
|
||||||
return conf;
|
return conf;
|
||||||
}();
|
}();
|
||||||
@ -17,14 +17,14 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var carbonModule = require("carbon");
|
var carbonModule = require("carbon");
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var carbonServer = new carbonModule.server.Server({
|
var carbonServer = new carbonModule.server.Server({
|
||||||
tenanted: true,
|
tenanted: true,
|
||||||
url: devicemgtProps["httpsURL"] + "/admin"
|
url: devicemgtProps["httpsURL"] + "/admin"
|
||||||
});
|
});
|
||||||
application.put("carbonServer", carbonServer);
|
application.put("carbonServer", carbonServer);
|
||||||
|
|
||||||
var userModule = require("/app/modules/user.js")["userModule"];
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var utility = require("/app/modules/utility.js")["utility"];
|
var utility = require("/app/modules/utility.js")["utility"];
|
||||||
|
|
||||||
var permissions = {
|
var permissions = {
|
||||||
|
|||||||
@ -30,7 +30,7 @@ var onFail;
|
|||||||
} else {
|
} else {
|
||||||
apiWrapperUtil.setupTokenPairByPasswordGrantType(context.input.username, context.input.password);
|
apiWrapperUtil.setupTokenPairByPasswordGrantType(context.input.username, context.input.password);
|
||||||
}
|
}
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var carbonServer = require("carbon").server;
|
var carbonServer = require("carbon").server;
|
||||||
(new carbonServer.Server({url: devicemgtProps["adminService"]}))
|
(new carbonServer.Server({url: devicemgtProps["adminService"]}))
|
||||||
.login(context.input.username, context.input.password);
|
.login(context.input.username, context.input.password);
|
||||||
|
|||||||
@ -19,25 +19,29 @@
|
|||||||
var utils = function () {
|
var utils = function () {
|
||||||
var log = new Log("/app/modules/oauth/token-handler-utils.js");
|
var log = new Log("/app/modules/oauth/token-handler-utils.js");
|
||||||
|
|
||||||
var deviceMgtProps = require("/app/conf/reader/main.js")["conf"];
|
var deviceMgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var carbon = require("carbon");
|
var carbon = require("carbon");
|
||||||
|
|
||||||
|
//noinspection JSUnresolvedVariable
|
||||||
var Base64 = Packages.org.apache.commons.codec.binary.Base64;
|
var Base64 = Packages.org.apache.commons.codec.binary.Base64;
|
||||||
|
//noinspection JSUnresolvedVariable
|
||||||
var String = Packages.java.lang.String;
|
var String = Packages.java.lang.String;
|
||||||
|
|
||||||
var publicMethods = {};
|
var publicMethods = {};
|
||||||
var privateMethods = {};
|
var privateMethods = {};
|
||||||
|
|
||||||
publicMethods.encode = function (payload) {
|
publicMethods["encode"] = function (payload) {
|
||||||
return new String(Base64.encodeBase64(new String(payload).getBytes()));
|
//noinspection JSUnresolvedFunction
|
||||||
|
return String(Base64.encodeBase64(String(payload).getBytes()));
|
||||||
};
|
};
|
||||||
|
|
||||||
publicMethods.decode = function (payload) {
|
publicMethods["decode"] = function (payload) {
|
||||||
return new String(Base64.decodeBase64(new String(payload).getBytes()));
|
//noinspection JSUnresolvedFunction
|
||||||
|
return String(Base64.decodeBase64(String(payload).getBytes()));
|
||||||
};
|
};
|
||||||
|
|
||||||
publicMethods.getDynamicClientAppCredentials = function () {
|
publicMethods["getDynamicClientAppCredentials"] = function () {
|
||||||
// setting up dynamic client application properties
|
// setting up dynamic client application properties
|
||||||
var dcAppProperties = {
|
var dcAppProperties = {
|
||||||
"applicationType": deviceMgtProps["oauthProvider"]["appRegistration"]["appType"],
|
"applicationType": deviceMgtProps["oauthProvider"]["appRegistration"]["appType"],
|
||||||
@ -76,7 +80,79 @@ var utils = function () {
|
|||||||
return dynamicClientAppCredentials;
|
return dynamicClientAppCredentials;
|
||||||
};
|
};
|
||||||
|
|
||||||
publicMethods.getTokenPairByPasswordGrantType = function (username, password, encodedClientAppCredentials, scopes) {
|
publicMethods["getTenantBasedClientAppCredentials"] = function (username, jwtToken) {
|
||||||
|
if (!username || !jwtToken) {
|
||||||
|
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
||||||
|
"based client app credentials. No username or jwt token is found " +
|
||||||
|
"as input - getTenantBasedClientAppCredentials(x, y)");
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
//noinspection JSUnresolvedFunction, JSUnresolvedVariable
|
||||||
|
var tenantDomain = carbon.server.tenantDomain({username: username});
|
||||||
|
if (!tenantDomain) {
|
||||||
|
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
||||||
|
"based client application credentials. Unable to obtain a valid tenant domain for provided " +
|
||||||
|
"username - getTenantBasedClientAppCredentials(x, y)");
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
var cachedTenantBasedClientAppCredentials = privateMethods.
|
||||||
|
getCachedTenantBasedClientAppCredentials(tenantDomain);
|
||||||
|
if (cachedTenantBasedClientAppCredentials) {
|
||||||
|
return cachedTenantBasedClientAppCredentials;
|
||||||
|
} else {
|
||||||
|
// register a tenant based client app at API Manager
|
||||||
|
var applicationName = "webapp_" + tenantDomain;
|
||||||
|
var requestURL = deviceMgtProps["oauthProvider"]["appRegistration"]
|
||||||
|
["apiManagerClientAppRegistrationServiceURL"] +
|
||||||
|
"?tenantDomain=" + tenantDomain + "&applicationName=" + applicationName;
|
||||||
|
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
xhr.open("POST", requestURL, false);
|
||||||
|
xhr.setRequestHeader("Content-Type", "application/json");
|
||||||
|
xhr.setRequestHeader("Authorization", "Bearer " + jwtToken);
|
||||||
|
xhr.send();
|
||||||
|
|
||||||
|
if (xhr["status"] == 201 && xhr["responseText"]) {
|
||||||
|
var responsePayload = parse(xhr["responseText"]);
|
||||||
|
var tenantBasedClientAppCredentials = {};
|
||||||
|
tenantBasedClientAppCredentials["clientId"] = responsePayload["client_id"];
|
||||||
|
tenantBasedClientAppCredentials["clientSecret"] = responsePayload["client_secret"];
|
||||||
|
privateMethods.
|
||||||
|
setCachedTenantBasedClientAppCredentials(tenantDomain, tenantBasedClientAppCredentials);
|
||||||
|
return tenantBasedClientAppCredentials;
|
||||||
|
} else {
|
||||||
|
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
||||||
|
"based client application credentials from API " +
|
||||||
|
"Manager - getTenantBasedClientAppCredentials(x, y)");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
privateMethods["setCachedTenantBasedClientAppCredentials"] = function (tenantDomain, clientAppCredentials) {
|
||||||
|
var cachedTenantBasedClientAppCredentialsMap = application.get(constants["CACHED_CREDENTIALS"]);
|
||||||
|
if (!cachedTenantBasedClientAppCredentialsMap) {
|
||||||
|
cachedTenantBasedClientAppCredentialsMap = {};
|
||||||
|
cachedTenantBasedClientAppCredentialsMap[tenantDomain] = clientAppCredentials;
|
||||||
|
application.put(constants["CACHED_CREDENTIALS"], cachedTenantBasedClientAppCredentialsMap);
|
||||||
|
} else if (!cachedTenantBasedClientAppCredentialsMap[tenantDomain]) {
|
||||||
|
cachedTenantBasedClientAppCredentialsMap[tenantDomain] = clientAppCredentials;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
privateMethods["getCachedTenantBasedClientAppCredentials"] = function (tenantDomain) {
|
||||||
|
var cachedTenantBasedClientAppCredentialsMap = application.get(constants["CACHED_CREDENTIALS"]);
|
||||||
|
if (!cachedTenantBasedClientAppCredentialsMap ||
|
||||||
|
!cachedTenantBasedClientAppCredentialsMap[tenantDomain]) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return cachedTenantBasedClientAppCredentialsMap[tenantDomain];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
publicMethods["getTokenPairByPasswordGrantType"] = function (username, password, encodedClientAppCredentials, scopes) {
|
||||||
if (!username || !password || !encodedClientAppCredentials || !scopes) {
|
if (!username || !password || !encodedClientAppCredentials || !scopes) {
|
||||||
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving access token by password " +
|
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving access token by password " +
|
||||||
"grant type. No username, password, encoded client app credentials or scopes are " +
|
"grant type. No username, password, encoded client app credentials or scopes are " +
|
||||||
@ -108,7 +184,7 @@ var utils = function () {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
publicMethods.getTokenPairBySAMLGrantType = function (assertion, encodedClientAppCredentials, scopes) {
|
publicMethods["getTokenPairBySAMLGrantType"] = function (assertion, encodedClientAppCredentials, scopes) {
|
||||||
if (!assertion || !encodedClientAppCredentials || !scopes) {
|
if (!assertion || !encodedClientAppCredentials || !scopes) {
|
||||||
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving access token by saml " +
|
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving access token by saml " +
|
||||||
"grant type. No assertion, encoded client app credentials or scopes are " +
|
"grant type. No assertion, encoded client app credentials or scopes are " +
|
||||||
@ -117,8 +193,8 @@ var utils = function () {
|
|||||||
} else {
|
} else {
|
||||||
var assertionXML = publicMethods.decode(assertion);
|
var assertionXML = publicMethods.decode(assertion);
|
||||||
/*
|
/*
|
||||||
TODO: make assertion extraction with proper parsing. Since Jaggery XML parser seem
|
TODO: make assertion extraction with proper parsing.
|
||||||
to add formatting which causes signature verification to fail.
|
Since Jaggery XML parser seem to add formatting which causes signature verification to fail.
|
||||||
*/
|
*/
|
||||||
var assertionStartMarker = "<saml2:Assertion";
|
var assertionStartMarker = "<saml2:Assertion";
|
||||||
var assertionEndMarker = "<\/saml2:Assertion>";
|
var assertionEndMarker = "<\/saml2:Assertion>";
|
||||||
@ -161,7 +237,7 @@ var utils = function () {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
publicMethods.getNewTokenPairByRefreshToken = function (refreshToken, encodedClientAppCredentials, scopes) {
|
publicMethods["getNewTokenPairByRefreshToken"] = function (refreshToken, encodedClientAppCredentials, scopes) {
|
||||||
if (!refreshToken || !encodedClientAppCredentials) {
|
if (!refreshToken || !encodedClientAppCredentials) {
|
||||||
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving new access token " +
|
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving new access token " +
|
||||||
"by current refresh token. No refresh token or encoded client app credentials are " +
|
"by current refresh token. No refresh token or encoded client app credentials are " +
|
||||||
@ -194,7 +270,7 @@ var utils = function () {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
publicMethods.getAccessTokenByJWTGrantType = function (clientAppCredentials) {
|
publicMethods["getAccessTokenByJWTGrantType"] = function (clientAppCredentials) {
|
||||||
if (!clientAppCredentials) {
|
if (!clientAppCredentials) {
|
||||||
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving new access token " +
|
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving new access token " +
|
||||||
"by current refresh token. No client app credentials are found " +
|
"by current refresh token. No client app credentials are found " +
|
||||||
@ -203,7 +279,9 @@ var utils = function () {
|
|||||||
} else {
|
} else {
|
||||||
var JWTClientManagerServicePackagePath =
|
var JWTClientManagerServicePackagePath =
|
||||||
"org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService";
|
"org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService";
|
||||||
|
//noinspection JSUnresolvedFunction, JSUnresolvedVariable
|
||||||
var JWTClientManagerService = carbon.server.osgiService(JWTClientManagerServicePackagePath);
|
var JWTClientManagerService = carbon.server.osgiService(JWTClientManagerServicePackagePath);
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
var jwtClient = JWTClientManagerService.getJWTClient();
|
var jwtClient = JWTClientManagerService.getJWTClient();
|
||||||
// returning access token by JWT grant type
|
// returning access token by JWT grant type
|
||||||
return jwtClient.getAccessToken(clientAppCredentials["clientId"], clientAppCredentials["clientSecret"],
|
return jwtClient.getAccessToken(clientAppCredentials["clientId"], clientAppCredentials["clientSecret"],
|
||||||
@ -211,76 +289,5 @@ var utils = function () {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
publicMethods.getTenantBasedClientAppCredentials = function (username, jwtToken) {
|
|
||||||
if (!username || !jwtToken) {
|
|
||||||
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
|
||||||
"based client app credentials. No username or jwt token is found " +
|
|
||||||
"as input - getTenantBasedClientAppCredentials(x, y)");
|
|
||||||
return null;
|
|
||||||
} else {
|
|
||||||
var tenantDomain = carbon.server.tenantDomain({username: username});
|
|
||||||
if (!tenantDomain) {
|
|
||||||
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
|
||||||
"based client application credentials. Unable to obtain a valid tenant domain for provided " +
|
|
||||||
"username - getTenantBasedClientAppCredentials(x, y)");
|
|
||||||
return null;
|
|
||||||
} else {
|
|
||||||
var cachedTenantBasedClientAppCredentials = privateMethods.
|
|
||||||
getCachedTenantBasedClientAppCredentials(tenantDomain);
|
|
||||||
if (cachedTenantBasedClientAppCredentials) {
|
|
||||||
return cachedTenantBasedClientAppCredentials;
|
|
||||||
} else {
|
|
||||||
// register a tenant based client app at API Manager
|
|
||||||
var applicationName = "webapp_" + tenantDomain;
|
|
||||||
var requestURL = deviceMgtProps["oauthProvider"]["appRegistration"]
|
|
||||||
["apiManagerClientAppRegistrationServiceURL"] +
|
|
||||||
"?tenantDomain=" + tenantDomain + "&applicationName=" + applicationName;
|
|
||||||
|
|
||||||
var xhr = new XMLHttpRequest();
|
|
||||||
xhr.open("POST", requestURL, false);
|
|
||||||
xhr.setRequestHeader("Content-Type", "application/json");
|
|
||||||
xhr.setRequestHeader("Authorization", "Bearer " + jwtToken);
|
|
||||||
xhr.send();
|
|
||||||
|
|
||||||
if (xhr["status"] == 201 && xhr["responseText"]) {
|
|
||||||
var responsePayload = parse(xhr["responseText"]);
|
|
||||||
var tenantBasedClientAppCredentials = {};
|
|
||||||
tenantBasedClientAppCredentials["clientId"] = responsePayload["client_id"];
|
|
||||||
tenantBasedClientAppCredentials["clientSecret"] = responsePayload["client_secret"];
|
|
||||||
privateMethods.
|
|
||||||
setCachedTenantBasedClientAppCredentials(tenantDomain, tenantBasedClientAppCredentials);
|
|
||||||
return tenantBasedClientAppCredentials;
|
|
||||||
} else {
|
|
||||||
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
|
||||||
"based client application credentials from API " +
|
|
||||||
"Manager - getTenantBasedClientAppCredentials(x, y)");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
privateMethods.setCachedTenantBasedClientAppCredentials = function (tenantDomain, clientAppCredentials) {
|
|
||||||
var cachedTenantBasedClientAppCredentialsMap = application.get(constants["CACHED_CREDENTIALS"]);
|
|
||||||
if (!cachedTenantBasedClientAppCredentialsMap) {
|
|
||||||
cachedTenantBasedClientAppCredentialsMap = {};
|
|
||||||
cachedTenantBasedClientAppCredentialsMap[tenantDomain] = clientAppCredentials;
|
|
||||||
application.put(constants["CACHED_CREDENTIALS"], cachedTenantBasedClientAppCredentialsMap);
|
|
||||||
} else if (!cachedTenantBasedClientAppCredentialsMap[tenantDomain]) {
|
|
||||||
cachedTenantBasedClientAppCredentialsMap[tenantDomain] = clientAppCredentials;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
privateMethods.getCachedTenantBasedClientAppCredentials = function (tenantDomain) {
|
|
||||||
var cachedTenantBasedClientAppCredentialsMap = application.get(constants["CACHED_CREDENTIALS"]);
|
|
||||||
if (!cachedTenantBasedClientAppCredentialsMap ||
|
|
||||||
!cachedTenantBasedClientAppCredentialsMap[tenantDomain]) {
|
|
||||||
return null;
|
|
||||||
} else {
|
|
||||||
return cachedTenantBasedClientAppCredentialsMap[tenantDomain];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return publicMethods;
|
return publicMethods;
|
||||||
}();
|
}();
|
||||||
|
|||||||
@ -27,12 +27,12 @@ var handlers = function () {
|
|||||||
|
|
||||||
var tokenUtil = require("/app/modules/oauth/token-handler-utils.js")["utils"];
|
var tokenUtil = require("/app/modules/oauth/token-handler-utils.js")["utils"];
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
|
|
||||||
var publicMethods = {};
|
var publicMethods = {};
|
||||||
var privateMethods = {};
|
var privateMethods = {};
|
||||||
|
|
||||||
publicMethods.setupTokenPairByPasswordGrantType = function (username, password) {
|
publicMethods["setupTokenPairByPasswordGrantType"] = function (username, password) {
|
||||||
if (!username || !password) {
|
if (!username || !password) {
|
||||||
throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up access token pair by " +
|
throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up access token pair by " +
|
||||||
"password grant type. Either username of logged in user, password or both are missing " +
|
"password grant type. Either username of logged in user, password or both are missing " +
|
||||||
@ -67,7 +67,7 @@ var handlers = function () {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
publicMethods.setupTokenPairBySamlGrantType = function (username, samlToken) {
|
publicMethods["setupTokenPairBySamlGrantType"] = function (username, samlToken) {
|
||||||
if (!username || !samlToken) {
|
if (!username || !samlToken) {
|
||||||
throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up access token pair by " +
|
throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up access token pair by " +
|
||||||
"saml grant type. Either username of logged in user, samlToken or both are missing " +
|
"saml grant type. Either username of logged in user, samlToken or both are missing " +
|
||||||
@ -96,7 +96,7 @@ var handlers = function () {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
publicMethods.refreshTokenPair = function () {
|
publicMethods["refreshTokenPair"] = function () {
|
||||||
var currentTokenPair = parse(session.get(constants["TOKEN_PAIR"]));
|
var currentTokenPair = parse(session.get(constants["TOKEN_PAIR"]));
|
||||||
// currentTokenPair includes current access token as well as current refresh token
|
// currentTokenPair includes current access token as well as current refresh token
|
||||||
var encodedClientAppCredentials = session.get(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS"]);
|
var encodedClientAppCredentials = session.get(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS"]);
|
||||||
@ -116,7 +116,7 @@ var handlers = function () {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
privateMethods.setUpEncodedTenantBasedClientAppCredentials = function (username) {
|
privateMethods["setUpEncodedTenantBasedClientAppCredentials"] = function (username) {
|
||||||
if (!username) {
|
if (!username) {
|
||||||
throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up encoded tenant based " +
|
throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up encoded tenant based " +
|
||||||
"client credentials to session context. No username of logged in user is found as " +
|
"client credentials to session context. No username of logged in user is found as " +
|
||||||
|
|||||||
@ -35,9 +35,9 @@ var invokers = function () {
|
|||||||
var TOKEN_EXPIRED = "Access token expired";
|
var TOKEN_EXPIRED = "Access token expired";
|
||||||
var TOKEN_INVALID = "Invalid input. Access token validation failed";
|
var TOKEN_INVALID = "Invalid input. Access token validation failed";
|
||||||
|
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var userModule = require("/app/modules/user.js")["userModule"];
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var tokenUtil = require("/app/modules/oauth/token-handlers.js")["handlers"];
|
var tokenUtil = require("/app/modules/oauth/token-handlers.js")["handlers"];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -67,7 +67,7 @@ var invokers = function () {
|
|||||||
* @param responseCallback a function to be called with response retrieved.
|
* @param responseCallback a function to be called with response retrieved.
|
||||||
* @param count a counter which hold the number of recursive execution
|
* @param count a counter which hold the number of recursive execution
|
||||||
*/
|
*/
|
||||||
privateMethods.execute = function (httpMethod, requestPayload, endpoint, responseCallback, count) {
|
privateMethods["execute"] = function (httpMethod, requestPayload, endpoint, responseCallback, count) {
|
||||||
var xmlHttpRequest = new XMLHttpRequest();
|
var xmlHttpRequest = new XMLHttpRequest();
|
||||||
|
|
||||||
xmlHttpRequest.open(httpMethod, endpoint);
|
xmlHttpRequest.open(httpMethod, endpoint);
|
||||||
@ -81,8 +81,8 @@ var invokers = function () {
|
|||||||
response.sendRedirect(devicemgtProps["appContext"] + "login");
|
response.sendRedirect(devicemgtProps["appContext"] + "login");
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
xmlHttpRequest.
|
xmlHttpRequest.setRequestHeader(constants["AUTHORIZATION_HEADER"],
|
||||||
setRequestHeader(constants["AUTHORIZATION_HEADER"], constants["BEARER_PREFIX"] + accessToken);
|
constants["BEARER_PREFIX"] + accessToken);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,11 +95,10 @@ var invokers = function () {
|
|||||||
log.debug("Service Invoker-URL: " + endpoint);
|
log.debug("Service Invoker-URL: " + endpoint);
|
||||||
log.debug("Service Invoker-Method: " + httpMethod);
|
log.debug("Service Invoker-Method: " + httpMethod);
|
||||||
|
|
||||||
log.info("Request : " + httpMethod + " " + endpoint);
|
// log.info("Request : " + httpMethod + " " + endpoint);
|
||||||
log.info("Request payload if any : " + stringify(requestPayload));
|
// log.info("Request payload if any : " + stringify(requestPayload));
|
||||||
log.info("Response status : " + xmlHttpRequest.status);
|
// log.info("Response status : " + xmlHttpRequest.status);
|
||||||
log.info("Response payload if any : " + xmlHttpRequest.responseText);
|
// log.info("Response payload if any : " + xmlHttpRequest.responseText);
|
||||||
//log.info("Response headers : " + xmlHttpRequest.getAllResponseHeaders());
|
|
||||||
|
|
||||||
if (xmlHttpRequest.status == 401 && (xmlHttpRequest.responseText == TOKEN_EXPIRED ||
|
if (xmlHttpRequest.status == 401 && (xmlHttpRequest.responseText == TOKEN_EXPIRED ||
|
||||||
xmlHttpRequest.responseText == TOKEN_INVALID ) && count < 5) {
|
xmlHttpRequest.responseText == TOKEN_INVALID ) && count < 5) {
|
||||||
@ -117,7 +116,7 @@ var invokers = function () {
|
|||||||
* @param endpoint Backend REST API url.
|
* @param endpoint Backend REST API url.
|
||||||
* @param responseCallback a function to be called with response retrieved.
|
* @param responseCallback a function to be called with response retrieved.
|
||||||
*/
|
*/
|
||||||
privateMethods.initiateXMLHTTPRequest = function (httpMethod, requestPayload, endpoint, responseCallback) {
|
privateMethods["initiateXMLHTTPRequest"] = function (httpMethod, requestPayload, endpoint, responseCallback) {
|
||||||
return privateMethods.execute(httpMethod, requestPayload, endpoint, responseCallback, 0);
|
return privateMethods.execute(httpMethod, requestPayload, endpoint, responseCallback, 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -126,7 +125,7 @@ var invokers = function () {
|
|||||||
* @param endpoint Backend REST API url.
|
* @param endpoint Backend REST API url.
|
||||||
* @param responseCallback a function to be called with response retrieved.
|
* @param responseCallback a function to be called with response retrieved.
|
||||||
*/
|
*/
|
||||||
publicXMLHTTPInvokers.get = function (endpoint, responseCallback) {
|
publicXMLHTTPInvokers["get"] = function (endpoint, responseCallback) {
|
||||||
var requestPayload = null;
|
var requestPayload = null;
|
||||||
return privateMethods.initiateXMLHTTPRequest(constants["HTTP_GET"], requestPayload, endpoint, responseCallback);
|
return privateMethods.initiateXMLHTTPRequest(constants["HTTP_GET"], requestPayload, endpoint, responseCallback);
|
||||||
};
|
};
|
||||||
@ -137,7 +136,7 @@ var invokers = function () {
|
|||||||
* @param requestPayload payload/data if exists which is needed to be send.
|
* @param requestPayload payload/data if exists which is needed to be send.
|
||||||
* @param responseCallback a function to be called with response retrieved.
|
* @param responseCallback a function to be called with response retrieved.
|
||||||
*/
|
*/
|
||||||
publicXMLHTTPInvokers.post = function (endpoint, requestPayload, responseCallback) {
|
publicXMLHTTPInvokers["post"] = function (endpoint, requestPayload, responseCallback) {
|
||||||
return privateMethods.initiateXMLHTTPRequest(constants["HTTP_POST"], requestPayload, endpoint, responseCallback);
|
return privateMethods.initiateXMLHTTPRequest(constants["HTTP_POST"], requestPayload, endpoint, responseCallback);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -147,7 +146,7 @@ var invokers = function () {
|
|||||||
* @param requestPayload payload/data if exists which is needed to be send.
|
* @param requestPayload payload/data if exists which is needed to be send.
|
||||||
* @param responseCallback a function to be called with response retrieved.
|
* @param responseCallback a function to be called with response retrieved.
|
||||||
*/
|
*/
|
||||||
publicXMLHTTPInvokers.put = function (endpoint, requestPayload, responseCallback) {
|
publicXMLHTTPInvokers["put"] = function (endpoint, requestPayload, responseCallback) {
|
||||||
return privateMethods.initiateXMLHTTPRequest(constants["HTTP_PUT"], requestPayload, endpoint, responseCallback);
|
return privateMethods.initiateXMLHTTPRequest(constants["HTTP_PUT"], requestPayload, endpoint, responseCallback);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -156,7 +155,7 @@ var invokers = function () {
|
|||||||
* @param endpoint Backend REST API url.
|
* @param endpoint Backend REST API url.
|
||||||
* @param responseCallback a function to be called with response retrieved.
|
* @param responseCallback a function to be called with response retrieved.
|
||||||
*/
|
*/
|
||||||
publicXMLHTTPInvokers.delete = function (endpoint, responseCallback) {
|
publicXMLHTTPInvokers["delete"] = function (endpoint, responseCallback) {
|
||||||
var requestPayload = null;
|
var requestPayload = null;
|
||||||
return privateMethods.initiateXMLHTTPRequest(constants["HTTP_DELETE"], requestPayload, endpoint, responseCallback);
|
return privateMethods.initiateXMLHTTPRequest(constants["HTTP_DELETE"], requestPayload, endpoint, responseCallback);
|
||||||
};
|
};
|
||||||
@ -176,8 +175,10 @@ var invokers = function () {
|
|||||||
* @param errorCallback a function to be called if en error is reserved.
|
* @param errorCallback a function to be called if en error is reserved.
|
||||||
* @param soapVersion soapVersion which need to used.
|
* @param soapVersion soapVersion which need to used.
|
||||||
*/
|
*/
|
||||||
privateMethods.initiateWSRequest = function (action, endpoint, successCallback, errorCallback, soapVersion, payload) {
|
privateMethods["initiateWSRequest"] = function (action, endpoint, successCallback,
|
||||||
|
errorCallback, soapVersion, payload) {
|
||||||
var ws = require("ws");
|
var ws = require("ws");
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
var wsRequest = new ws.WSRequest();
|
var wsRequest = new ws.WSRequest();
|
||||||
var options = [];
|
var options = [];
|
||||||
if (devicemgtProps["isOAuthEnabled"]) {
|
if (devicemgtProps["isOAuthEnabled"]) {
|
||||||
@ -222,8 +223,10 @@ var invokers = function () {
|
|||||||
* @param errorCallback a function to be called if en error is reserved.
|
* @param errorCallback a function to be called if en error is reserved.
|
||||||
* @param soapVersion soapVersion which need to used.
|
* @param soapVersion soapVersion which need to used.
|
||||||
*/
|
*/
|
||||||
publicWSInvokers.soapRequest = function (action, requestPayload, endpoint, successCallback, errorCallback, soapVersion) {
|
publicWSInvokers["soapRequest"] = function (action, requestPayload, endpoint,
|
||||||
return privateMethods.initiateWSRequest(action, endpoint, successCallback, errorCallback, soapVersion, requestPayload);
|
successCallback, errorCallback, soapVersion) {
|
||||||
|
return privateMethods.initiateWSRequest(action, endpoint, successCallback,
|
||||||
|
errorCallback, soapVersion, requestPayload);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -240,37 +243,46 @@ var invokers = function () {
|
|||||||
* @param successCallback a function to be called if the respond if successful.
|
* @param successCallback a function to be called if the respond if successful.
|
||||||
* @param errorCallback a function to be called if en error is reserved.
|
* @param errorCallback a function to be called if en error is reserved.
|
||||||
*/
|
*/
|
||||||
privateMethods.initiateHTTPClientRequest = function (method, url, successCallback, errorCallback, payload) {
|
privateMethods["initiateHTTPClientRequest"] = function (method, url, successCallback, errorCallback, payload) {
|
||||||
|
//noinspection JSUnresolvedVariable
|
||||||
var HttpClient = Packages.org.apache.commons.httpclient.HttpClient;
|
var HttpClient = Packages.org.apache.commons.httpclient.HttpClient;
|
||||||
var httpMethodObject;
|
var httpMethodObject;
|
||||||
switch (method) {
|
switch (method) {
|
||||||
case constants["HTTP_GET"]:
|
case constants["HTTP_GET"]:
|
||||||
|
//noinspection JSUnresolvedVariable
|
||||||
var GetMethod = Packages.org.apache.commons.httpclient.methods.GetMethod;
|
var GetMethod = Packages.org.apache.commons.httpclient.methods.GetMethod;
|
||||||
httpMethodObject = new GetMethod(url);
|
httpMethodObject = new GetMethod(url);
|
||||||
break;
|
break;
|
||||||
case constants["HTTP_POST"]:
|
case constants["HTTP_POST"]:
|
||||||
|
//noinspection JSUnresolvedVariable
|
||||||
var PostMethod = Packages.org.apache.commons.httpclient.methods.PostMethod;
|
var PostMethod = Packages.org.apache.commons.httpclient.methods.PostMethod;
|
||||||
httpMethodObject = new PostMethod(url);
|
httpMethodObject = new PostMethod(url);
|
||||||
break;
|
break;
|
||||||
case constants["HTTP_PUT"]:
|
case constants["HTTP_PUT"]:
|
||||||
|
//noinspection JSUnresolvedVariable
|
||||||
var PutMethod = Packages.org.apache.commons.httpclient.methods.PutMethod;
|
var PutMethod = Packages.org.apache.commons.httpclient.methods.PutMethod;
|
||||||
httpMethodObject = new PutMethod(url);
|
httpMethodObject = new PutMethod(url);
|
||||||
break;
|
break;
|
||||||
case constants["HTTP_DELETE"]:
|
case constants["HTTP_DELETE"]:
|
||||||
|
//noinspection JSUnresolvedVariable
|
||||||
var DeleteMethod = Packages.org.apache.commons.httpclient.methods.DeleteMethod;
|
var DeleteMethod = Packages.org.apache.commons.httpclient.methods.DeleteMethod;
|
||||||
httpMethodObject = new DeleteMethod(url);
|
httpMethodObject = new DeleteMethod(url);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
throw new IllegalArgumentException("Invalid HTTP request method: " + method);
|
throw new IllegalArgumentException("Invalid HTTP request method: " + method);
|
||||||
}
|
}
|
||||||
|
//noinspection JSUnresolvedVariable
|
||||||
var Header = Packages.org.apache.commons.httpclient.Header;
|
var Header = Packages.org.apache.commons.httpclient.Header;
|
||||||
var header = new Header();
|
var header = new Header();
|
||||||
header.setName(constants["CONTENT_TYPE_IDENTIFIER"]);
|
header.setName(constants["CONTENT_TYPE_IDENTIFIER"]);
|
||||||
header.setValue(constants["APPLICATION_JSON"]);
|
header.setValue(constants["APPLICATION_JSON"]);
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
httpMethodObject.addRequestHeader(header);
|
httpMethodObject.addRequestHeader(header);
|
||||||
header = new Header();
|
header = new Header();
|
||||||
header.setName(constants["ACCEPT_IDENTIFIER"]);
|
header.setName(constants["ACCEPT_IDENTIFIER"]);
|
||||||
header.setValue(constants["APPLICATION_JSON"]);
|
header.setValue(constants["APPLICATION_JSON"]);
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
httpMethodObject.addRequestHeader(header);
|
httpMethodObject.addRequestHeader(header);
|
||||||
|
|
||||||
if (devicemgtProps["isOAuthEnabled"]) {
|
if (devicemgtProps["isOAuthEnabled"]) {
|
||||||
@ -279,25 +291,33 @@ var invokers = function () {
|
|||||||
header = new Header();
|
header = new Header();
|
||||||
header.setName(constants["AUTHORIZATION_HEADER"]);
|
header.setName(constants["AUTHORIZATION_HEADER"]);
|
||||||
header.setValue(constants["BEARER_PREFIX"] + accessToken);
|
header.setValue(constants["BEARER_PREFIX"] + accessToken);
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
httpMethodObject.addRequestHeader(header);
|
httpMethodObject.addRequestHeader(header);
|
||||||
} else {
|
} else {
|
||||||
response.sendRedirect(devicemgtProps["appContext"] + "login");
|
response.sendRedirect(devicemgtProps["appContext"] + "login");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
var stringRequestEntity = new StringRequestEntity(stringify(payload));
|
var stringRequestEntity = new StringRequestEntity(stringify(payload));
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
httpMethodObject.setRequestEntity(stringRequestEntity);
|
httpMethodObject.setRequestEntity(stringRequestEntity);
|
||||||
var client = new HttpClient();
|
var client = new HttpClient();
|
||||||
try {
|
try {
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
client.executeMethod(httpMethodObject);
|
client.executeMethod(httpMethodObject);
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
var status = httpMethodObject.getStatusCode();
|
var status = httpMethodObject.getStatusCode();
|
||||||
if (status == 200) {
|
if (status == 200) {
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
return successCallback(httpMethodObject.getResponseBody());
|
return successCallback(httpMethodObject.getResponseBody());
|
||||||
} else {
|
} else {
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
return errorCallback(httpMethodObject.getResponseBody());
|
return errorCallback(httpMethodObject.getResponseBody());
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return errorCallback(response);
|
return errorCallback(response);
|
||||||
} finally {
|
} finally {
|
||||||
|
//noinspection JSUnresolvedFunction
|
||||||
method.releaseConnection();
|
method.releaseConnection();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -308,7 +328,7 @@ var invokers = function () {
|
|||||||
* @param successCallback a function to be called if the respond if successful.
|
* @param successCallback a function to be called if the respond if successful.
|
||||||
* @param errorCallback a function to be called if en error is reserved.
|
* @param errorCallback a function to be called if en error is reserved.
|
||||||
*/
|
*/
|
||||||
publicHTTPClientInvokers.get = function (url, successCallback, errorCallback) {
|
publicHTTPClientInvokers["get"] = function (url, successCallback, errorCallback) {
|
||||||
var requestPayload = null;
|
var requestPayload = null;
|
||||||
return privateMethods.
|
return privateMethods.
|
||||||
initiateHTTPClientRequest(constants["HTTP_GET"], url, successCallback, errorCallback, requestPayload);
|
initiateHTTPClientRequest(constants["HTTP_GET"], url, successCallback, errorCallback, requestPayload);
|
||||||
@ -321,7 +341,7 @@ var invokers = function () {
|
|||||||
* @param successCallback a function to be called if the respond if successful.
|
* @param successCallback a function to be called if the respond if successful.
|
||||||
* @param errorCallback a function to be called if en error is reserved.
|
* @param errorCallback a function to be called if en error is reserved.
|
||||||
*/
|
*/
|
||||||
publicHTTPClientInvokers.post = function (url, payload, successCallback, errorCallback) {
|
publicHTTPClientInvokers["post"] = function (url, payload, successCallback, errorCallback) {
|
||||||
return privateMethods.
|
return privateMethods.
|
||||||
initiateHTTPClientRequest(constants["HTTP_POST"], url, successCallback, errorCallback, payload);
|
initiateHTTPClientRequest(constants["HTTP_POST"], url, successCallback, errorCallback, payload);
|
||||||
};
|
};
|
||||||
@ -333,7 +353,7 @@ var invokers = function () {
|
|||||||
* @param successCallback a function to be called if the respond if successful.
|
* @param successCallback a function to be called if the respond if successful.
|
||||||
* @param errorCallback a function to be called if en error is reserved.
|
* @param errorCallback a function to be called if en error is reserved.
|
||||||
*/
|
*/
|
||||||
publicHTTPClientInvokers.put = function (url, payload, successCallback, errorCallback) {
|
publicHTTPClientInvokers["put"] = function (url, payload, successCallback, errorCallback) {
|
||||||
return privateMethods.
|
return privateMethods.
|
||||||
initiateHTTPClientRequest(constants["HTTP_PUT"], url, successCallback, errorCallback, payload);
|
initiateHTTPClientRequest(constants["HTTP_PUT"], url, successCallback, errorCallback, payload);
|
||||||
};
|
};
|
||||||
@ -344,7 +364,7 @@ var invokers = function () {
|
|||||||
* @param successCallback a function to be called if the respond if successful.
|
* @param successCallback a function to be called if the respond if successful.
|
||||||
* @param errorCallback a function to be called if en error is reserved.
|
* @param errorCallback a function to be called if en error is reserved.
|
||||||
*/
|
*/
|
||||||
publicHTTPClientInvokers.delete = function (url, successCallback, errorCallback) {
|
publicHTTPClientInvokers["delete"] = function (url, successCallback, errorCallback) {
|
||||||
var requestPayload = null;
|
var requestPayload = null;
|
||||||
return privateMethods.
|
return privateMethods.
|
||||||
initiateHTTPClientRequest(constants["HTTP_DELETE"], url, successCallback, errorCallback, requestPayload);
|
initiateHTTPClientRequest(constants["HTTP_DELETE"], url, successCallback, errorCallback, requestPayload);
|
||||||
|
|||||||
@ -1,274 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
||||||
*
|
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
|
||||||
* in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
@Refactored
|
|
||||||
*/
|
|
||||||
var policyModule;
|
|
||||||
policyModule = function () {
|
|
||||||
var log = new Log("/app/modules/policy.js");
|
|
||||||
|
|
||||||
var constants = require('/app/modules/constants.js');
|
|
||||||
var utility = require("/app/modules/utility.js")["utility"];
|
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
|
||||||
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
|
||||||
|
|
||||||
var publicMethods = {};
|
|
||||||
var privateMethods = {};
|
|
||||||
|
|
||||||
privateMethods.handleGetAllPoliciesError = function (responsePayload) {
|
|
||||||
var response = {};
|
|
||||||
response.status = "error";
|
|
||||||
/* responsePayload == "Scope validation failed"
|
|
||||||
Here the response.context("Scope validation failed") is used other then response.status(401).
|
|
||||||
Reason for this is IDP return 401 as the status in 4 different situations such as,
|
|
||||||
1. UnAuthorized.
|
|
||||||
2. Scope Validation Failed.
|
|
||||||
3. Permission Denied.
|
|
||||||
4. Access Token Expired.
|
|
||||||
5. Access Token Invalid.
|
|
||||||
In these cases in order to identify the correct situation we have to compare the unique value from status and
|
|
||||||
context which is context.
|
|
||||||
*/
|
|
||||||
if (responsePayload == "Scope validation failed") {
|
|
||||||
response.content = "Permission Denied";
|
|
||||||
} else {
|
|
||||||
response.content = responsePayload;
|
|
||||||
}
|
|
||||||
return response;
|
|
||||||
};
|
|
||||||
|
|
||||||
privateMethods.handleGetAllPoliciesSuccess = function (responsePayload) {
|
|
||||||
var isUpdated = false;
|
|
||||||
var policyListFromRestEndpoint = responsePayload["responseContent"];
|
|
||||||
var policyListToView = [];
|
|
||||||
var i, policyObjectFromRestEndpoint, policyObjectToView;
|
|
||||||
for (i = 0; i < policyListFromRestEndpoint.length; i++) {
|
|
||||||
// get list object
|
|
||||||
policyObjectFromRestEndpoint = policyListFromRestEndpoint[i];
|
|
||||||
// populate list object values to view-object
|
|
||||||
policyObjectToView = {};
|
|
||||||
policyObjectToView["id"] = policyObjectFromRestEndpoint["id"];
|
|
||||||
policyObjectToView["priorityId"] = policyObjectFromRestEndpoint["priorityId"];
|
|
||||||
policyObjectToView["name"] = policyObjectFromRestEndpoint["policyName"];
|
|
||||||
policyObjectToView["platform"] = policyObjectFromRestEndpoint["profile"]["deviceType"]["name"];
|
|
||||||
policyObjectToView["icon"] = utility.getDeviceThumb(policyObjectToView["platform"]);
|
|
||||||
policyObjectToView["ownershipType"] = policyObjectFromRestEndpoint["ownershipType"];
|
|
||||||
policyObjectToView["roles"] = privateMethods.
|
|
||||||
getElementsInAString(policyObjectFromRestEndpoint["roles"]);
|
|
||||||
policyObjectToView["users"] = privateMethods.
|
|
||||||
getElementsInAString(policyObjectFromRestEndpoint["users"]);
|
|
||||||
policyObjectToView["compliance"] = policyObjectFromRestEndpoint["compliance"];
|
|
||||||
|
|
||||||
if (policyObjectFromRestEndpoint["active"] == true && policyObjectFromRestEndpoint["updated"] == true) {
|
|
||||||
policyObjectToView["status"] = "Active/Updated";
|
|
||||||
isUpdated = true;
|
|
||||||
} else if (policyObjectFromRestEndpoint["active"] == true &&
|
|
||||||
policyObjectFromRestEndpoint["updated"] == false) {
|
|
||||||
policyObjectToView["status"] = "Active";
|
|
||||||
} else if (policyObjectFromRestEndpoint["active"] == false &&
|
|
||||||
policyObjectFromRestEndpoint["updated"] == true) {
|
|
||||||
policyObjectToView["status"] = "Inactive/Updated";
|
|
||||||
isUpdated = true;
|
|
||||||
} else if (policyObjectFromRestEndpoint["active"] == false &&
|
|
||||||
policyObjectFromRestEndpoint["updated"] == false) {
|
|
||||||
policyObjectToView["status"] = "Inactive";
|
|
||||||
}
|
|
||||||
// push view-objects to list
|
|
||||||
policyListToView.push(policyObjectToView);
|
|
||||||
}
|
|
||||||
// generate response
|
|
||||||
var response = {};
|
|
||||||
response.updated = isUpdated;
|
|
||||||
response.status = "success";
|
|
||||||
response.content = policyListToView;
|
|
||||||
return response;
|
|
||||||
};
|
|
||||||
|
|
||||||
publicMethods.addPolicy = function (policyName, deviceType, policyDefinition, policyDescription,
|
|
||||||
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"];
|
|
||||||
}
|
|
||||||
if (policyName && deviceType) {
|
|
||||||
var queName = "WSO2IoTServer/" + carbonUser.username + "/" + deviceType;
|
|
||||||
var deviceQueName;
|
|
||||||
if (deviceId) {
|
|
||||||
deviceQueName = queName + "/" + deviceId;
|
|
||||||
privateMethods.publish(deviceQueName, policyName, deviceType, policyDefinition);
|
|
||||||
} else {
|
|
||||||
var deviceManagementService = utility.getDeviceManagementService();
|
|
||||||
var devices = deviceManagementService.getDevicesOfUser(carbonUser.username);
|
|
||||||
var device;
|
|
||||||
for (var i = 0; i < devices.size(); i++) {
|
|
||||||
device = devices.get(i);
|
|
||||||
deviceId = device.getDeviceIdentifier();
|
|
||||||
deviceQueName = queName + "/" + deviceId;
|
|
||||||
privateMethods.publish(deviceQueName, policyName, deviceType, policyDefinition);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
privateMethods.publish = function (queName, policyName, deviceType, policyDefinition) {
|
|
||||||
var configurationService = utility.getConfigurationService();
|
|
||||||
var mqttEndPointDeviceConfig = configurationService.getControlQueue(constants.MQTT_QUEUE_CONFIG_NAME);
|
|
||||||
var mqttBrokerURL = mqttEndPointDeviceConfig.getServerURL();
|
|
||||||
var mqttBrokerPort = mqttEndPointDeviceConfig.getPort();
|
|
||||||
var mqttQueueEndpoint = mqttBrokerURL + ":" + mqttBrokerPort;
|
|
||||||
|
|
||||||
var mqttsenderClass = Packages.org.wso2.carbon.device.mgt.iot.mqtt.PolicyPush;
|
|
||||||
var mqttsender = new mqttsenderClass();
|
|
||||||
|
|
||||||
var policyPayload = "POLICY:" + policyDefinition;
|
|
||||||
var result = mqttsender.pushToMQTT(queName, policyPayload, mqttQueueEndpoint, "MQTT_Agent");
|
|
||||||
mqttsender = null;
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
@Updated
|
|
||||||
*/
|
|
||||||
publicMethods.getAllPolicies = function () {
|
|
||||||
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 {
|
|
||||||
var url = devicemgtProps["httpsURL"] + constants.ADMIN_SERVICE_CONTEXT + "/policies";
|
|
||||||
return serviceInvokers.XMLHttp.
|
|
||||||
get(url, privateMethods.handleGetAllPoliciesSuccess, privateMethods.handleGetAllPoliciesError);
|
|
||||||
} catch (e) {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
@Updated - used by getAllPolicies
|
|
||||||
*/
|
|
||||||
privateMethods.getElementsInAString = function (elementList) {
|
|
||||||
var i, elementsInAString = "";
|
|
||||||
for (i = 0; i < elementList.length; i++) {
|
|
||||||
if (i == elementList.length - 1) {
|
|
||||||
elementsInAString += elementList[i];
|
|
||||||
} else {
|
|
||||||
elementsInAString += elementList[i] + ", ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return elementsInAString;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
@Deprecated
|
|
||||||
*/
|
|
||||||
publicMethods.getProfiles = function () {
|
|
||||||
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 policyManagementService = utility.getPolicyManagementService();
|
|
||||||
var policyAdminPoint = policyManagementService.getPAP();
|
|
||||||
var profiles = policyAdminPoint.getProfiles();
|
|
||||||
var profileList = [];
|
|
||||||
var i, profile, profileObject;
|
|
||||||
for (i = 0; i < profiles.size(); i++) {
|
|
||||||
profile = profiles.get(i);
|
|
||||||
profileObject = {};
|
|
||||||
profileObject.name = profile.getProfileName();
|
|
||||||
profileObject.id = profile.getProfileId();
|
|
||||||
profileList.push(profileObject);
|
|
||||||
}
|
|
||||||
return profileList;
|
|
||||||
} catch (e) {
|
|
||||||
throw e;
|
|
||||||
} finally {
|
|
||||||
utility.endTenantFlow();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
@Deprecated
|
|
||||||
*/
|
|
||||||
publicMethods.updatePolicyPriorities = function (payload) {
|
|
||||||
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 policyManagementService = utility.getPolicyManagementService();
|
|
||||||
var policyAdminPoint = policyManagementService.getPAP();
|
|
||||||
var policyCount = payload.length;
|
|
||||||
var policyList = new java.util.ArrayList();
|
|
||||||
var i, policyObject;
|
|
||||||
for (i = 0; i < policyCount; i++) {
|
|
||||||
policyObject = new Policy();
|
|
||||||
policyObject.setId(payload[i].id);
|
|
||||||
policyObject.setPriorityId(payload[i].priority);
|
|
||||||
policyList.add(policyObject);
|
|
||||||
}
|
|
||||||
policyAdminPoint.updatePolicyPriorities(policyList);
|
|
||||||
} catch (e) {
|
|
||||||
throw e;
|
|
||||||
} finally {
|
|
||||||
utility.endTenantFlow();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
@Deprecated
|
|
||||||
*/
|
|
||||||
publicMethods.deletePolicy = function (policyId) {
|
|
||||||
var isDeleted;
|
|
||||||
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 policyManagementService = utility.getPolicyManagementService();
|
|
||||||
var policyAdminPoint = policyManagementService.getPAP();
|
|
||||||
isDeleted = policyAdminPoint.deletePolicy(policyId);
|
|
||||||
if (isDeleted) {
|
|
||||||
// http status code 200 refers to - success.
|
|
||||||
return 200;
|
|
||||||
} else {
|
|
||||||
// http status code 409 refers to - conflict.
|
|
||||||
return 409;
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
throw e;
|
|
||||||
} finally {
|
|
||||||
utility.endTenantFlow();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return publicMethods;
|
|
||||||
}();
|
|
||||||
@ -20,7 +20,7 @@ var utility;
|
|||||||
utility = function () {
|
utility = function () {
|
||||||
|
|
||||||
var constants = require('/app/modules/constants.js');
|
var constants = require('/app/modules/constants.js');
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
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;
|
||||||
|
|||||||
@ -19,9 +19,9 @@
|
|||||||
function onRequest(context) {
|
function onRequest(context) {
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var user = session.get(constants.USER_SESSION_KEY);
|
var user = session.get(constants.USER_SESSION_KEY);
|
||||||
var userModule = require("/app/modules/user.js").userModule;
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var permissions = userModule.getUIPermissions();
|
var permissions = userModule.getUIPermissions();
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
|
|
||||||
if (!permissions.VIEW_DASHBOARD) {
|
if (!permissions.VIEW_DASHBOARD) {
|
||||||
response.sendRedirect(constants.WEB_APP_CONTEXT + "/devices");
|
response.sendRedirect(constants.WEB_APP_CONTEXT + "/devices");
|
||||||
@ -31,9 +31,9 @@ function onRequest(context) {
|
|||||||
var page = {};
|
var page = {};
|
||||||
page.permissions = permissions;
|
page.permissions = permissions;
|
||||||
page.enrollmentURL = devicemgtProps.enrollmentURL;
|
page.enrollmentURL = devicemgtProps.enrollmentURL;
|
||||||
var deviceModule = require("/app/modules/device.js").deviceModule;
|
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||||
var groupModule = require("/app/modules/group.js").groupModule;
|
var groupModule = require("/app/modules/business-controllers/group.js")["groupModule"];
|
||||||
var policyModule = require("/app/modules/policy.js").policyModule;
|
var policyModule = require("/app/modules/business-controllers/policy.js")["policyModule"];
|
||||||
|
|
||||||
page.device_count = deviceModule.getDevicesCount();
|
page.device_count = deviceModule.getDevicesCount();
|
||||||
page.group_count = groupModule.getGroupCount();
|
page.group_count = groupModule.getGroupCount();
|
||||||
|
|||||||
@ -18,8 +18,8 @@
|
|||||||
|
|
||||||
function onRequest(context) {
|
function onRequest(context) {
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var userModule = require("/app/modules/user.js").userModule;
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var deviceModule = require("/app/modules/device.js").deviceModule;
|
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||||
|
|
||||||
var groupName = request.getParameter("groupName");
|
var groupName = request.getParameter("groupName");
|
||||||
var groupOwner = request.getParameter("groupOwner");
|
var groupOwner = request.getParameter("groupOwner");
|
||||||
@ -42,7 +42,7 @@ function onRequest(context) {
|
|||||||
page.currentUser = currentUser;
|
page.currentUser = currentUser;
|
||||||
var deviceCount = 0;
|
var deviceCount = 0;
|
||||||
if (groupName && groupOwner) {
|
if (groupName && groupOwner) {
|
||||||
var groupModule = require("/app/modules/group.js").groupModule;
|
var groupModule = require("/app/modules/business-controllers/group.js")["groupModule"];
|
||||||
deviceCount = groupModule.getGroupDeviceCount(groupName, groupOwner);
|
deviceCount = groupModule.getGroupDeviceCount(groupName, groupOwner);
|
||||||
} else {
|
} else {
|
||||||
deviceCount = deviceModule.getDevicesCount();
|
deviceCount = deviceModule.getDevicesCount();
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
function onRequest(context) {
|
function onRequest(context) {
|
||||||
var utility = require("/app/modules/utility.js").utility;
|
var utility = require("/app/modules/utility.js").utility;
|
||||||
var groupModule = require("/app/modules/group.js").groupModule;
|
var groupModule = require("/app/modules/business-controllers/group.js")["groupModule"];
|
||||||
var groupName = context.uriParams.name;
|
var groupName = context.uriParams.name;
|
||||||
var groupOwner = context.uriParams.owner;
|
var groupOwner = context.uriParams.owner;
|
||||||
var devices = groupModule.getGroupDevices(groupName, groupOwner).data;
|
var devices = groupModule.getGroupDevices(groupName, groupOwner).data;
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
* @returns {*} A context object that returns the dynamic state of this page to be presented
|
* @returns {*} A context object that returns the dynamic state of this page to be presented
|
||||||
*/
|
*/
|
||||||
function onRequest(context) {
|
function onRequest(context) {
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var page = {};
|
var page = {};
|
||||||
page["groupNameJSRegEx"] = devicemgtProps.groupValidationConfig.groupNameJSRegEx;
|
page["groupNameJSRegEx"] = devicemgtProps.groupValidationConfig.groupNameJSRegEx;
|
||||||
page["groupNameRegExViolationErrorMsg"] = devicemgtProps.groupValidationConfig.groupNameRegExViolationErrorMsg;
|
page["groupNameRegExViolationErrorMsg"] = devicemgtProps.groupValidationConfig.groupNameRegExViolationErrorMsg;
|
||||||
|
|||||||
@ -17,8 +17,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
function onRequest(context) {
|
function onRequest(context) {
|
||||||
var groupModule = require("/app/modules/group.js").groupModule;
|
var groupModule = require("/app/modules/business-controllers/group.js")["groupModule"];
|
||||||
var userModule = require("/app/modules/user.js").userModule;
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var currentUser = session.get(constants.USER_SESSION_KEY);
|
var currentUser = session.get(constants.USER_SESSION_KEY);
|
||||||
var page = {};
|
var page = {};
|
||||||
|
|||||||
@ -28,8 +28,8 @@ function onRequest(context) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
var page = {};
|
var page = {};
|
||||||
var policyModule = require("/app/modules/policy.js")["policyModule"];
|
var policyModule = require("/app/modules/business-controllers/group.js")["groupModule"];
|
||||||
var userModule = require("/app/modules/user.js")["userModule"];
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var response = policyModule.getAllPolicies();
|
var response = policyModule.getAllPolicies();
|
||||||
if (response["status"] == "success") {
|
if (response["status"] == "success") {
|
||||||
var policyListToView = response["content"];
|
var policyListToView = response["content"];
|
||||||
|
|||||||
@ -25,8 +25,8 @@
|
|||||||
function onRequest(context) {
|
function onRequest(context) {
|
||||||
//var log = new Log("/app/pages/cdmf.page.user.create server-side js");
|
//var log = new Log("/app/pages/cdmf.page.user.create server-side js");
|
||||||
|
|
||||||
var userModule = require("/app/modules/user.js")["userModule"];
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
|
|
||||||
var page = {};
|
var page = {};
|
||||||
var response = userModule.getRolesByUserStore();
|
var response = userModule.getRolesByUserStore();
|
||||||
|
|||||||
@ -17,10 +17,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
function onRequest(context) {
|
function onRequest(context) {
|
||||||
var userModule = require("/app/modules/user.js").userModule;
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var userName = request.getParameter("username");
|
var userName = request.getParameter("username");
|
||||||
var user = userModule.getUser(userName)["content"];
|
var user = userModule.getUser(userName)["content"];
|
||||||
var devicemgtProps = require("/app/conf/reader/main.js")["conf"];
|
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
if (user) {
|
if (user) {
|
||||||
var title;
|
var title;
|
||||||
if (user.firstname || user.lastname) {
|
if (user.firstname || user.lastname) {
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
function onRequest(context) {
|
function onRequest(context) {
|
||||||
var userModule = require("/app/modules/user.js").userModule;
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var username = request.getParameter("username");
|
var username = request.getParameter("username");
|
||||||
var user = userModule.getUser(username)["content"];
|
var user = userModule.getUser(username)["content"];
|
||||||
var userModule = require("/app/modules/user.js")["userModule"];
|
var userModule = require("/app/modules/user.js")["userModule"];
|
||||||
@ -38,7 +38,7 @@ 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/business-controllers/device.js")["deviceModule"];
|
||||||
devices = deviceModule.getDevices(userName);
|
devices = deviceModule.getDevices(userName);
|
||||||
}
|
}
|
||||||
return {"user": user, "userRoles": userRoles, "devices": devices};
|
return {"user": user, "userRoles": userRoles, "devices": devices};
|
||||||
|
|||||||
@ -29,7 +29,7 @@ function onRequest(context) {
|
|||||||
|
|
||||||
var page = {};
|
var page = {};
|
||||||
var userModule = require("/app/modules/user.js")["userModule"];
|
var userModule = require("/app/modules/user.js")["userModule"];
|
||||||
var deviceMgtProps = require("/app/conf/reader/main.js")["conf"];
|
var deviceMgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
|
|
||||||
page["adminUser"] = deviceMgtProps["adminUser"];
|
page["adminUser"] = deviceMgtProps["adminUser"];
|
||||||
page["permissions"] = userModule.getUIPermissions();
|
page["permissions"] = userModule.getUIPermissions();
|
||||||
|
|||||||
@ -27,10 +27,10 @@ function onRequest (context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//For QR Code
|
//For QR Code
|
||||||
var userModule = require("/app/modules/user.js").userModule;
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var permissions = userModule.getUIPermissions();
|
var permissions = userModule.getUIPermissions();
|
||||||
var deviceMgtProps = require("/app/conf/reader/main.js")["conf"];
|
var deviceMgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
context.permissions = permissions;
|
context.permissions = permissions;
|
||||||
context["enrollmentURL"] = deviceMgtProps.enrollmentURL;
|
context["enrollmentURL"] = deviceMgtProps.enrollmentURL;
|
||||||
|
|
||||||
|
|||||||
@ -23,7 +23,7 @@ function onRequest(context) {
|
|||||||
var DTYPE_CONF_DEVICE_TYPE_LABEL_KEY = "label";
|
var DTYPE_CONF_DEVICE_TYPE_LABEL_KEY = "label";
|
||||||
|
|
||||||
var viewModel = {};
|
var viewModel = {};
|
||||||
var deviceModule = require("/app/modules/device.js").deviceModule;
|
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||||
var utility = require("/app/modules/utility.js").utility;
|
var utility = require("/app/modules/utility.js").utility;
|
||||||
var deviceTypes = deviceModule.getDeviceTypes();
|
var deviceTypes = deviceModule.getDeviceTypes();
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@ function onRequest(context) {
|
|||||||
var deviceId = request.getParameter("id");
|
var deviceId = request.getParameter("id");
|
||||||
|
|
||||||
if (deviceType != null && deviceType != undefined && deviceId != null && deviceId != undefined) {
|
if (deviceType != null && deviceType != undefined && deviceId != null && deviceId != undefined) {
|
||||||
var deviceModule = require("/app/modules/device.js").deviceModule;
|
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||||
var device = deviceModule.viewDevice(deviceType, deviceId);
|
var device = deviceModule.viewDevice(deviceType, deviceId);
|
||||||
|
|
||||||
if (device) {
|
if (device) {
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
function onRequest(context){
|
function onRequest(context){
|
||||||
var userModule = require("/app/modules/user.js").userModule;
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var permissions = [];
|
var permissions = [];
|
||||||
if(userModule.isAuthorized("/permission/admin/device-mgt/emm-admin/notifications/list")){
|
if(userModule.isAuthorized("/permission/admin/device-mgt/emm-admin/notifications/list")){
|
||||||
|
|||||||
@ -46,7 +46,7 @@ $(document).ready(function () {
|
|||||||
$("#ast-container").on("click", ".new-notification", function(e){
|
$("#ast-container").on("click", ".new-notification", function(e){
|
||||||
var notificationId = $(this).data("id");
|
var notificationId = $(this).data("id");
|
||||||
var redirectUrl = $(this).data("url");
|
var redirectUrl = $(this).data("url");
|
||||||
var getNotificationsAPI = "/devicemgt_admin/notifications/"+notificationId+"/CHECKED";
|
var getNotificationsAPI = "/api/device-mgt/v1.0/notifications/"+notificationId+"/CHECKED";
|
||||||
var errorMsgWrapper = "#error-msg";
|
var errorMsgWrapper = "#error-msg";
|
||||||
var errorMsg = "#error-msg span";
|
var errorMsg = "#error-msg span";
|
||||||
invokerUtil.put(
|
invokerUtil.put(
|
||||||
@ -87,7 +87,7 @@ function loadNotifications(){
|
|||||||
var deviceListingSrc = deviceListing.attr("src");
|
var deviceListingSrc = deviceListing.attr("src");
|
||||||
var currentUser = deviceListing.data("currentUser");
|
var currentUser = deviceListing.data("currentUser");
|
||||||
$.template("notification-listing", deviceListingSrc, function (template) {
|
$.template("notification-listing", deviceListingSrc, function (template) {
|
||||||
var serviceURL = "/devicemgt_admin/notifications";
|
var serviceURL = "/api/device-mgt/v1.0/notifications";
|
||||||
var successCallback = function (data) {
|
var successCallback = function (data) {
|
||||||
var viewModel = {};
|
var viewModel = {};
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
|
|||||||
@ -17,8 +17,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
function onRequest(context) {
|
function onRequest(context) {
|
||||||
var utility = require("/app/modules/device.js").utility;
|
var utility = require("/app/modules/utility.js").utility;
|
||||||
var deviceModule = require("/app/modules/device.js").deviceModule;
|
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||||
//get all device types
|
//get all device types
|
||||||
var data = deviceModule.getDeviceTypes();
|
var data = deviceModule.getDeviceTypes();
|
||||||
var deviceTypesArray = [];
|
var deviceTypesArray = [];
|
||||||
|
|||||||
@ -21,14 +21,16 @@ function onRequest(context) {
|
|||||||
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/business-controllers/user.js")["userModule"];
|
||||||
|
|
||||||
var types = {};
|
var types = {};
|
||||||
types["types"] = [];
|
types["types"] = [];
|
||||||
var typesListResponse = userModule.getPlatforms();
|
var typesListResponse = userModule.getPlatforms();
|
||||||
if (typesListResponse["status"] == "success") {
|
if (typesListResponse["status"] == "success") {
|
||||||
for (var type in typesListResponse["content"]) {
|
for (var type in typesListResponse["content"]) {
|
||||||
var deviceType = typesListResponse["content"][type]["name"];
|
var content = {};
|
||||||
|
var deviceType = typesListResponse["content"]["deviceTypes"][type];
|
||||||
|
content["name"] = deviceType;
|
||||||
var configs = utility.getDeviceTypeConfig(deviceType);
|
var configs = utility.getDeviceTypeConfig(deviceType);
|
||||||
var deviceTypeLabel = deviceType;
|
var deviceTypeLabel = deviceType;
|
||||||
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]) {
|
||||||
@ -36,9 +38,9 @@ function onRequest(context) {
|
|||||||
}
|
}
|
||||||
var policyWizard = new File("/app/units/" + utility.getTenantedDeviceUnitName(deviceType, "policy-wizard"));
|
var policyWizard = new File("/app/units/" + utility.getTenantedDeviceUnitName(deviceType, "policy-wizard"));
|
||||||
if(policyWizard.isExists()){
|
if(policyWizard.isExists()){
|
||||||
typesListResponse["content"][type]["icon"] = utility.getDeviceThumb(deviceType);
|
content["icon"] = utility.getDeviceThumb(deviceType);
|
||||||
typesListResponse["content"][type]["label"] = deviceTypeLabel;
|
content["label"] = deviceTypeLabel;
|
||||||
types["types"].push(typesListResponse["content"][type]);
|
types["types"].push(content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,7 +27,7 @@ function onRequest(context) {
|
|||||||
return options.fn(this);
|
return options.fn(this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
var policyModule = require("/app/modules/policy.js")["policyModule"];
|
var policyModule = require("/app/modules/business-controllers/group.js")["groupModule"];
|
||||||
var response = policyModule.getAllPolicies();
|
var response = policyModule.getAllPolicies();
|
||||||
if (response["status"] == "success") {
|
if (response["status"] == "success") {
|
||||||
var policyListToView = response["content"];
|
var policyListToView = response["content"];
|
||||||
|
|||||||
@ -23,8 +23,8 @@
|
|||||||
* @returns {*} A context object that returns the dynamic state of this page to be presented
|
* @returns {*} A context object that returns the dynamic state of this page to be presented
|
||||||
*/
|
*/
|
||||||
function onRequest(context) {
|
function onRequest(context) {
|
||||||
var userModule = require("/app/modules/user.js")["userModule"];
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var deviceMgtProps = require("/app/conf/reader/main.js")["conf"];
|
var deviceMgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var response = userModule.getRoles();
|
var response = userModule.getRoles();
|
||||||
if (response["status"] == "success") {
|
if (response["status"] == "success") {
|
||||||
context["roles"] = response["content"];
|
context["roles"] = response["content"];
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
* @returns {*} A context object that returns the dynamic state of this page to be presented
|
* @returns {*} A context object that returns the dynamic state of this page to be presented
|
||||||
*/
|
*/
|
||||||
function onRequest(context) {
|
function onRequest(context) {
|
||||||
var userModule = require("/app/modules/user.js")["userModule"];
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var uri = request.getRequestURI();
|
var uri = request.getRequestURI();
|
||||||
var uriMatcher = new URIMatcher(String(uri));
|
var uriMatcher = new URIMatcher(String(uri));
|
||||||
var isMatched = uriMatcher.match("/{context}/roles/edit-role-permission/{rolename}");
|
var isMatched = uriMatcher.match("/{context}/roles/edit-role-permission/{rolename}");
|
||||||
|
|||||||
@ -23,8 +23,8 @@
|
|||||||
* @returns {*} A context object that returns the dynamic state of this page to be presented
|
* @returns {*} A context object that returns the dynamic state of this page to be presented
|
||||||
*/
|
*/
|
||||||
function onRequest(context) {
|
function onRequest(context) {
|
||||||
var userModule = require("/app/modules/user.js")["userModule"];
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var deviceMgtProps = require("/app/conf/reader/main.js")["conf"];
|
var deviceMgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var uri = request.getRequestURI();
|
var uri = request.getRequestURI();
|
||||||
var uriMatcher = new URIMatcher(String(uri));
|
var uriMatcher = new URIMatcher(String(uri));
|
||||||
var isMatched = uriMatcher.match("/{context}/role/edit/{rolename}");
|
var isMatched = uriMatcher.match("/{context}/role/edit/{rolename}");
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
function onRequest(context) {
|
function onRequest(context) {
|
||||||
var userModule = require("/app/modules/user.js")["userModule"];
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var response = userModule.getUsers();
|
var response = userModule.getUsers();
|
||||||
var users = {};
|
var users = {};
|
||||||
context["permissions"] = userModule.getUIPermissions();
|
context["permissions"] = userModule.getUIPermissions();
|
||||||
@ -30,7 +30,7 @@ function onRequest(context) {
|
|||||||
if (userModule.isAuthorized("/permission/admin/device-mgt/roles/remove")) {
|
if (userModule.isAuthorized("/permission/admin/device-mgt/roles/remove")) {
|
||||||
context["removePermitted"] = true;
|
context["removePermitted"] = true;
|
||||||
}
|
}
|
||||||
var deviceMgtProps = require("/app/conf/reader/main.js")["conf"];
|
var deviceMgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
context["appContext"] = deviceMgtProps.appContext;
|
context["appContext"] = deviceMgtProps.appContext;
|
||||||
context["adminRole"] = deviceMgtProps.adminRole;
|
context["adminRole"] = deviceMgtProps.adminRole;
|
||||||
return context;
|
return context;
|
||||||
|
|||||||
@ -27,8 +27,8 @@ function onRequest(context) {
|
|||||||
return options.fn(this);
|
return options.fn(this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
var userModule = require("/app/modules/user.js")["userModule"];
|
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||||
var mdmProps = require('/app/conf/reader/main.js')["conf"];
|
var mdmProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var uiPermissions = userModule.getUIPermissions();
|
var uiPermissions = userModule.getUIPermissions();
|
||||||
context["permissions"] = uiPermissions;
|
context["permissions"] = uiPermissions;
|
||||||
|
|||||||
@ -27,8 +27,8 @@
|
|||||||
</ManagementRepository>
|
</ManagementRepository>
|
||||||
<PushNotificationProviders>
|
<PushNotificationProviders>
|
||||||
<Provider>org.wso2.carbon.device.mgt.extensions.push.notification.provider.gcm.GCMBasedPushNotificationProvider</Provider>
|
<Provider>org.wso2.carbon.device.mgt.extensions.push.notification.provider.gcm.GCMBasedPushNotificationProvider</Provider>
|
||||||
<Provider>org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.MQTTBasedPushNotificationProvider</Provider>
|
<!--<Provider>org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.MQTTBasedPushNotificationProvider</Provider>-->
|
||||||
<Provider>org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.XMPPBasedPushNotificationProvider</Provider>
|
<!--<Provider>org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.XMPPBasedPushNotificationProvider</Provider>-->
|
||||||
</PushNotificationProviders>
|
</PushNotificationProviders>
|
||||||
<IdentityConfiguration>
|
<IdentityConfiguration>
|
||||||
<ServerUrl>https://localhost:9443</ServerUrl>
|
<ServerUrl>https://localhost:9443</ServerUrl>
|
||||||
@ -37,14 +37,14 @@
|
|||||||
</IdentityConfiguration>
|
</IdentityConfiguration>
|
||||||
<PolicyConfiguration>
|
<PolicyConfiguration>
|
||||||
<MonitoringClass>org.wso2.carbon.policy.mgt</MonitoringClass>
|
<MonitoringClass>org.wso2.carbon.policy.mgt</MonitoringClass>
|
||||||
<MonitoringEnable>false</MonitoringEnable>
|
<MonitoringEnable>true</MonitoringEnable>
|
||||||
<MonitoringFrequency>60000</MonitoringFrequency>
|
<MonitoringFrequency>60000</MonitoringFrequency>
|
||||||
<MaxRetries>5</MaxRetries>
|
<MaxRetries>5</MaxRetries>
|
||||||
<MinRetriesToMarkUnreachable>8</MinRetriesToMarkUnreachable>
|
<MinRetriesToMarkUnreachable>8</MinRetriesToMarkUnreachable>
|
||||||
<MinRetriesToMarkInactive>20</MinRetriesToMarkInactive>
|
<MinRetriesToMarkInactive>20</MinRetriesToMarkInactive>
|
||||||
</PolicyConfiguration>
|
</PolicyConfiguration>
|
||||||
<TaskConfiguration>
|
<TaskConfiguration>
|
||||||
<Enable>false</Enable>
|
<Enable>true</Enable>
|
||||||
<Frequency>600000</Frequency>
|
<Frequency>600000</Frequency>
|
||||||
<TaskClass>org.wso2.carbon.device.mgt.core.task.impl.DeviceDetailsRetrieverTask</TaskClass>
|
<TaskClass>org.wso2.carbon.device.mgt.core.task.impl.DeviceDetailsRetrieverTask</TaskClass>
|
||||||
<Operations>
|
<Operations>
|
||||||
@ -62,5 +62,11 @@
|
|||||||
</Operation>
|
</Operation>
|
||||||
</Operations>
|
</Operations>
|
||||||
</TaskConfiguration>
|
</TaskConfiguration>
|
||||||
|
<PaginationConfiguration>
|
||||||
|
<DeviceListPageSize>20</DeviceListPageSize>
|
||||||
|
<NotificationListPageSize>20</NotificationListPageSize>
|
||||||
|
<ActivityListPageSize>20</ActivityListPageSize>
|
||||||
|
<OperationListPageSize>20</OperationListPageSize>
|
||||||
|
</PaginationConfiguration>
|
||||||
</DeviceMgtConfiguration>
|
</DeviceMgtConfiguration>
|
||||||
|
|
||||||
|
|||||||
@ -134,7 +134,7 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE (
|
|||||||
ID INT NOT NULL AUTO_INCREMENT ,
|
ID INT NOT NULL AUTO_INCREMENT ,
|
||||||
PROFILE_NAME VARCHAR(45) NOT NULL ,
|
PROFILE_NAME VARCHAR(45) NOT NULL ,
|
||||||
TENANT_ID INT NOT NULL ,
|
TENANT_ID INT NOT NULL ,
|
||||||
DEVICE_TYPE VARCHAR(20) NOT NULL ,
|
DEVICE_TYPE VARCHAR(300) NOT NULL ,
|
||||||
CREATED_TIME DATETIME NOT NULL ,
|
CREATED_TIME DATETIME NOT NULL ,
|
||||||
UPDATED_TIME DATETIME NOT NULL ,
|
UPDATED_TIME DATETIME NOT NULL ,
|
||||||
PRIMARY KEY (ID) ,
|
PRIMARY KEY (ID) ,
|
||||||
@ -195,7 +195,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_POLICY (
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
|
CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
|
||||||
ID INT(11) NOT NULL ,
|
ID INT(11) NOT NULL ,
|
||||||
DEVICE_TYPE VARCHAR(20) NOT NULL ,
|
DEVICE_TYPE VARCHAR(300) NOT NULL ,
|
||||||
POLICY_ID INT(11) NOT NULL ,
|
POLICY_ID INT(11) NOT NULL ,
|
||||||
PRIMARY KEY (ID) ,
|
PRIMARY KEY (ID) ,
|
||||||
CONSTRAINT FK_DEVICE_TYPE_POLICY
|
CONSTRAINT FK_DEVICE_TYPE_POLICY
|
||||||
@ -218,7 +218,7 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE_FEATURES (
|
|||||||
ID INT(11) NOT NULL AUTO_INCREMENT,
|
ID INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
PROFILE_ID INT(11) NOT NULL,
|
PROFILE_ID INT(11) NOT NULL,
|
||||||
FEATURE_CODE VARCHAR(100) NOT NULL,
|
FEATURE_CODE VARCHAR(100) NOT NULL,
|
||||||
DEVICE_TYPE VARCHAR(20) NOT NULL,
|
DEVICE_TYPE VARCHAR(300) NOT NULL,
|
||||||
TENANT_ID INT(11) NOT NULL ,
|
TENANT_ID INT(11) NOT NULL ,
|
||||||
CONTENT BLOB NULL DEFAULT NULL,
|
CONTENT BLOB NULL DEFAULT NULL,
|
||||||
PRIMARY KEY (ID),
|
PRIMARY KEY (ID),
|
||||||
@ -339,7 +339,7 @@ CREATE TABLE IF NOT EXISTS DM_POLICY_COMPLIANCE_STATUS (
|
|||||||
CREATE TABLE IF NOT EXISTS DM_POLICY_CHANGE_MGT (
|
CREATE TABLE IF NOT EXISTS DM_POLICY_CHANGE_MGT (
|
||||||
ID INT NOT NULL AUTO_INCREMENT,
|
ID INT NOT NULL AUTO_INCREMENT,
|
||||||
POLICY_ID INT NOT NULL,
|
POLICY_ID INT NOT NULL,
|
||||||
DEVICE_TYPE VARCHAR(20) NOT NULL,
|
DEVICE_TYPE VARCHAR(300) NOT NULL ,
|
||||||
TENANT_ID INT(11) NOT NULL,
|
TENANT_ID INT(11) NOT NULL,
|
||||||
PRIMARY KEY (ID)
|
PRIMARY KEY (ID)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -135,13 +135,13 @@ CREATE TABLE DM_PROFILE (
|
|||||||
ID INTEGER NOT NULL IDENTITY ,
|
ID INTEGER NOT NULL IDENTITY ,
|
||||||
PROFILE_NAME VARCHAR(45) NOT NULL ,
|
PROFILE_NAME VARCHAR(45) NOT NULL ,
|
||||||
TENANT_ID INTEGER NOT NULL ,
|
TENANT_ID INTEGER NOT NULL ,
|
||||||
DEVICE_TYPE_ID INTEGER NOT NULL ,
|
DEVICE_TYPE VARCHAR(300) NOT NULL ,
|
||||||
CREATED_TIME DATETIME2(0) NOT NULL ,
|
CREATED_TIME DATETIME2(0) NOT NULL ,
|
||||||
UPDATED_TIME DATETIME2(0) NOT NULL ,
|
UPDATED_TIME DATETIME2(0) NOT NULL ,
|
||||||
PRIMARY KEY (ID) ,
|
PRIMARY KEY (ID) ,
|
||||||
CONSTRAINT DM_PROFILE_DEVICE_TYPE
|
CONSTRAINT DM_PROFILE_DEVICE_TYPE
|
||||||
FOREIGN KEY (DEVICE_TYPE_ID )
|
FOREIGN KEY (DEVICE_TYPE)
|
||||||
REFERENCES DM_DEVICE_TYPE (ID )
|
REFERENCES DM_DEVICE_TYPE (NAME )
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION
|
ON UPDATE NO ACTION
|
||||||
);
|
);
|
||||||
@ -196,7 +196,7 @@ CREATE TABLE DM_DEVICE_POLICY (
|
|||||||
|
|
||||||
CREATE TABLE DM_DEVICE_TYPE_POLICY (
|
CREATE TABLE DM_DEVICE_TYPE_POLICY (
|
||||||
ID INTEGER NOT NULL ,
|
ID INTEGER NOT NULL ,
|
||||||
DEVICE_TYPE_ID INTEGER NOT NULL ,
|
DEVICE_TYPE VARCHAR(300) NOT NULL ,
|
||||||
POLICY_ID INTEGER NOT NULL ,
|
POLICY_ID INTEGER NOT NULL ,
|
||||||
PRIMARY KEY (ID) ,
|
PRIMARY KEY (ID) ,
|
||||||
CONSTRAINT FK_DEVICE_TYPE_POLICY
|
CONSTRAINT FK_DEVICE_TYPE_POLICY
|
||||||
@ -205,8 +205,8 @@ CREATE TABLE DM_DEVICE_TYPE_POLICY (
|
|||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION,
|
ON UPDATE NO ACTION,
|
||||||
CONSTRAINT FK_DEVICE_TYPE_POLICY_DEVICE_TYPE
|
CONSTRAINT FK_DEVICE_TYPE_POLICY_DEVICE_TYPE
|
||||||
FOREIGN KEY (DEVICE_TYPE_ID )
|
FOREIGN KEY (DEVICE_TYPE)
|
||||||
REFERENCES DM_DEVICE_TYPE (ID )
|
REFERENCES DM_DEVICE_TYPE (NAME )
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION
|
ON UPDATE NO ACTION
|
||||||
);
|
);
|
||||||
@ -219,7 +219,7 @@ CREATE TABLE DM_PROFILE_FEATURES (
|
|||||||
ID INTEGER NOT NULL IDENTITY,
|
ID INTEGER NOT NULL IDENTITY,
|
||||||
PROFILE_ID INTEGER NOT NULL,
|
PROFILE_ID INTEGER NOT NULL,
|
||||||
FEATURE_CODE VARCHAR(100) NOT NULL,
|
FEATURE_CODE VARCHAR(100) NOT NULL,
|
||||||
DEVICE_TYPE_ID INTEGER NOT NULL,
|
DEVICE_TYPE VARCHAR(300) NOT NULL ,
|
||||||
TENANT_ID INTEGER NOT NULL ,
|
TENANT_ID INTEGER NOT NULL ,
|
||||||
CONTENT VARBINARY(max) NULL DEFAULT NULL,
|
CONTENT VARBINARY(max) NULL DEFAULT NULL,
|
||||||
PRIMARY KEY (ID),
|
PRIMARY KEY (ID),
|
||||||
@ -340,7 +340,7 @@ CREATE TABLE DM_POLICY_COMPLIANCE_STATUS (
|
|||||||
CREATE TABLE DM_POLICY_CHANGE_MGT (
|
CREATE TABLE DM_POLICY_CHANGE_MGT (
|
||||||
ID INTEGER NOT NULL IDENTITY,
|
ID INTEGER NOT NULL IDENTITY,
|
||||||
POLICY_ID INTEGER NOT NULL,
|
POLICY_ID INTEGER NOT NULL,
|
||||||
DEVICE_TYPE_ID INTEGER NOT NULL,
|
DEVICE_TYPE VARCHAR(300) NOT NULL,
|
||||||
TENANT_ID INTEGER NOT NULL,
|
TENANT_ID INTEGER NOT NULL,
|
||||||
PRIMARY KEY (ID)
|
PRIMARY KEY (ID)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -5,6 +5,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE (
|
|||||||
SHARED_WITH_ALL_TENANTS BOOLEAN NOT NULL DEFAULT FALSE,
|
SHARED_WITH_ALL_TENANTS BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
PRIMARY KEY (ID)
|
PRIMARY KEY (ID)
|
||||||
)ENGINE = InnoDB;
|
)ENGINE = InnoDB;
|
||||||
|
CREATE INDEX device_type_name ON DM_DEVICE_TYPE (NAME);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS DM_DEVICE (
|
CREATE TABLE IF NOT EXISTS DM_DEVICE (
|
||||||
ID INTEGER AUTO_INCREMENT NOT NULL,
|
ID INTEGER AUTO_INCREMENT NOT NULL,
|
||||||
@ -117,13 +118,13 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE (
|
|||||||
ID INT NOT NULL AUTO_INCREMENT ,
|
ID INT NOT NULL AUTO_INCREMENT ,
|
||||||
PROFILE_NAME VARCHAR(45) NOT NULL ,
|
PROFILE_NAME VARCHAR(45) NOT NULL ,
|
||||||
TENANT_ID INT NOT NULL ,
|
TENANT_ID INT NOT NULL ,
|
||||||
DEVICE_TYPE_ID INT NOT NULL ,
|
DEVICE_TYPE VARCHAR(300) NOT NULL ,
|
||||||
CREATED_TIME DATETIME NOT NULL ,
|
CREATED_TIME DATETIME NOT NULL ,
|
||||||
UPDATED_TIME DATETIME NOT NULL ,
|
UPDATED_TIME DATETIME NOT NULL ,
|
||||||
PRIMARY KEY (ID) ,
|
PRIMARY KEY (ID) ,
|
||||||
CONSTRAINT DM_PROFILE_DEVICE_TYPE
|
CONSTRAINT DM_PROFILE_DEVICE_TYPE
|
||||||
FOREIGN KEY (DEVICE_TYPE_ID )
|
FOREIGN KEY (DEVICE_TYPE)
|
||||||
REFERENCES DM_DEVICE_TYPE (ID )
|
REFERENCES DM_DEVICE_TYPE (NAME)
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION
|
ON UPDATE NO ACTION
|
||||||
)ENGINE = InnoDB;
|
)ENGINE = InnoDB;
|
||||||
@ -171,7 +172,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_POLICY (
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
|
CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
|
||||||
ID INT(11) NOT NULL ,
|
ID INT(11) NOT NULL ,
|
||||||
DEVICE_TYPE_ID INT(11) NOT NULL ,
|
DEVICE_TYPE VARCHAR(300) NOT NULL ,
|
||||||
POLICY_ID INT(11) NOT NULL ,
|
POLICY_ID INT(11) NOT NULL ,
|
||||||
PRIMARY KEY (ID) ,
|
PRIMARY KEY (ID) ,
|
||||||
CONSTRAINT FK_DEVICE_TYPE_POLICY
|
CONSTRAINT FK_DEVICE_TYPE_POLICY
|
||||||
@ -180,8 +181,8 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
|
|||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION,
|
ON UPDATE NO ACTION,
|
||||||
CONSTRAINT FK_DEVICE_TYPE_POLICY_DEVICE_TYPE
|
CONSTRAINT FK_DEVICE_TYPE_POLICY_DEVICE_TYPE
|
||||||
FOREIGN KEY (DEVICE_TYPE_ID )
|
FOREIGN KEY (DEVICE_TYPE )
|
||||||
REFERENCES DM_DEVICE_TYPE (ID )
|
REFERENCES DM_DEVICE_TYPE (NAME )
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION
|
ON UPDATE NO ACTION
|
||||||
)ENGINE = InnoDB;
|
)ENGINE = InnoDB;
|
||||||
@ -191,7 +192,7 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE_FEATURES (
|
|||||||
ID INT(11) NOT NULL AUTO_INCREMENT,
|
ID INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
PROFILE_ID INT(11) NOT NULL,
|
PROFILE_ID INT(11) NOT NULL,
|
||||||
FEATURE_CODE VARCHAR(100) NOT NULL,
|
FEATURE_CODE VARCHAR(100) NOT NULL,
|
||||||
DEVICE_TYPE_ID INT NOT NULL,
|
DEVICE_TYPE VARCHAR(300) NOT NULL ,
|
||||||
TENANT_ID INT(11) NOT NULL ,
|
TENANT_ID INT(11) NOT NULL ,
|
||||||
CONTENT BLOB NULL DEFAULT NULL,
|
CONTENT BLOB NULL DEFAULT NULL,
|
||||||
PRIMARY KEY (ID),
|
PRIMARY KEY (ID),
|
||||||
@ -308,7 +309,7 @@ CREATE TABLE IF NOT EXISTS DM_POLICY_COMPLIANCE_STATUS (
|
|||||||
CREATE TABLE IF NOT EXISTS DM_POLICY_CHANGE_MGT (
|
CREATE TABLE IF NOT EXISTS DM_POLICY_CHANGE_MGT (
|
||||||
ID INT NOT NULL AUTO_INCREMENT,
|
ID INT NOT NULL AUTO_INCREMENT,
|
||||||
POLICY_ID INT NOT NULL,
|
POLICY_ID INT NOT NULL,
|
||||||
DEVICE_TYPE_ID INT NOT NULL,
|
DEVICE_TYPE VARCHAR(300) NOT NULL ,
|
||||||
TENANT_ID INT(11) NOT NULL,
|
TENANT_ID INT(11) NOT NULL,
|
||||||
PRIMARY KEY (ID)
|
PRIMARY KEY (ID)
|
||||||
)ENGINE = InnoDB;
|
)ENGINE = InnoDB;
|
||||||
|
|||||||
@ -250,13 +250,13 @@ CREATE TABLE DM_PROFILE (
|
|||||||
ID NUMBER(10) NOT NULL ,
|
ID NUMBER(10) NOT NULL ,
|
||||||
PROFILE_NAME VARCHAR2(45) NOT NULL ,
|
PROFILE_NAME VARCHAR2(45) NOT NULL ,
|
||||||
TENANT_ID NUMBER(10) NOT NULL ,
|
TENANT_ID NUMBER(10) NOT NULL ,
|
||||||
DEVICE_TYPE_ID NUMBER(10) NOT NULL ,
|
DEVICE_TYPE VARCHAR2(300) NOT NULL ,
|
||||||
CREATED_TIME TIMESTAMP(0) NOT NULL ,
|
CREATED_TIME TIMESTAMP(0) NOT NULL ,
|
||||||
UPDATED_TIME TIMESTAMP(0) NOT NULL ,
|
UPDATED_TIME TIMESTAMP(0) NOT NULL ,
|
||||||
CONSTRAINT PK_DM_PROFILE PRIMARY KEY (ID) ,
|
CONSTRAINT PK_DM_PROFILE PRIMARY KEY (ID) ,
|
||||||
CONSTRAINT DM_PROFILE_DEVICE_TYPE
|
CONSTRAINT DM_PROFILE_DEVICE_TYPE
|
||||||
FOREIGN KEY (DEVICE_TYPE_ID )
|
FOREIGN KEY (DEVICE_TYPE )
|
||||||
REFERENCES DM_DEVICE_TYPE (ID )
|
REFERENCES DM_DEVICE_TYPE (NAME )
|
||||||
)
|
)
|
||||||
/
|
/
|
||||||
-- Generate ID using sequence and trigger
|
-- Generate ID using sequence and trigger
|
||||||
@ -338,15 +338,15 @@ WHEN (NEW.ID IS NULL)
|
|||||||
|
|
||||||
CREATE TABLE DM_DEVICE_TYPE_POLICY (
|
CREATE TABLE DM_DEVICE_TYPE_POLICY (
|
||||||
ID NUMBER(10) NOT NULL ,
|
ID NUMBER(10) NOT NULL ,
|
||||||
DEVICE_TYPE_ID NUMBER(10) NOT NULL ,
|
DEVICE_TYPE VARCHAR2(300) NOT NULL ,
|
||||||
POLICY_ID NUMBER(10) NOT NULL ,
|
POLICY_ID NUMBER(10) NOT NULL ,
|
||||||
CONSTRAINT PK_DEV_TYPE_POLICY PRIMARY KEY (ID) ,
|
CONSTRAINT PK_DEV_TYPE_POLICY PRIMARY KEY (ID) ,
|
||||||
CONSTRAINT FK_DEV_TYPE_POLICY
|
CONSTRAINT FK_DEV_TYPE_POLICY
|
||||||
FOREIGN KEY (POLICY_ID )
|
FOREIGN KEY (POLICY_ID )
|
||||||
REFERENCES DM_POLICY (ID ),
|
REFERENCES DM_POLICY (ID ),
|
||||||
CONSTRAINT FK_DEV_TYPE_POLICY_DEV_TYPE
|
CONSTRAINT FK_DEV_TYPE_POLICY_DEV_TYPE
|
||||||
FOREIGN KEY (DEVICE_TYPE_ID )
|
FOREIGN KEY (DEVICE_TYPE )
|
||||||
REFERENCES DM_DEVICE_TYPE (ID )
|
REFERENCES DM_DEVICE_TYPE (NAME )
|
||||||
)
|
)
|
||||||
/
|
/
|
||||||
|
|
||||||
@ -355,7 +355,7 @@ CREATE TABLE DM_PROFILE_FEATURES (
|
|||||||
ID NUMBER(10) NOT NULL,
|
ID NUMBER(10) NOT NULL,
|
||||||
PROFILE_ID NUMBER(10) NOT NULL,
|
PROFILE_ID NUMBER(10) NOT NULL,
|
||||||
FEATURE_CODE VARCHAR2(100) NOT NULL,
|
FEATURE_CODE VARCHAR2(100) NOT NULL,
|
||||||
DEVICE_TYPE_ID NUMBER(10) NOT NULL,
|
DEVICE_TYPE VARCHAR2(300) NOT NULL ,
|
||||||
TENANT_ID NUMBER(10) NOT NULL ,
|
TENANT_ID NUMBER(10) NOT NULL ,
|
||||||
CONTENT BLOB DEFAULT NULL NULL,
|
CONTENT BLOB DEFAULT NULL NULL,
|
||||||
CONSTRAINT PK_DM_PROF_DM_POLICY_FEATURES PRIMARY KEY (ID),
|
CONSTRAINT PK_DM_PROF_DM_POLICY_FEATURES PRIMARY KEY (ID),
|
||||||
@ -566,7 +566,7 @@ WHEN (NEW.ID IS NULL)
|
|||||||
CREATE TABLE DM_POLICY_CHANGE_MGT (
|
CREATE TABLE DM_POLICY_CHANGE_MGT (
|
||||||
ID NUMBER(10) NOT NULL,
|
ID NUMBER(10) NOT NULL,
|
||||||
POLICY_ID NUMBER(10) NOT NULL,
|
POLICY_ID NUMBER(10) NOT NULL,
|
||||||
DEVICE_TYPE_ID NUMBER(10) NOT NULL,
|
DEVICE_TYPE VARCHAR2(300) NOT NULL,
|
||||||
TENANT_ID NUMBER(10) NOT NULL,
|
TENANT_ID NUMBER(10) NOT NULL,
|
||||||
CONSTRAINT PK_DM_POLICY_CHANGE_MGT PRIMARY KEY (ID)
|
CONSTRAINT PK_DM_POLICY_CHANGE_MGT PRIMARY KEY (ID)
|
||||||
)
|
)
|
||||||
|
|||||||
@ -103,12 +103,12 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE (
|
|||||||
ID BIGSERIAL NOT NULL PRIMARY KEY,
|
ID BIGSERIAL NOT NULL PRIMARY KEY,
|
||||||
PROFILE_NAME VARCHAR(45) NOT NULL ,
|
PROFILE_NAME VARCHAR(45) NOT NULL ,
|
||||||
TENANT_ID INTEGER NOT NULL ,
|
TENANT_ID INTEGER NOT NULL ,
|
||||||
DEVICE_TYPE_ID INTEGER NOT NULL ,
|
DEVICE_TYPE VARCHAR(300) NOT NULL ,
|
||||||
CREATED_TIME TIMESTAMP NOT NULL ,
|
CREATED_TIME TIMESTAMP NOT NULL ,
|
||||||
UPDATED_TIME TIMESTAMP NOT NULL ,
|
UPDATED_TIME TIMESTAMP NOT NULL ,
|
||||||
CONSTRAINT DM_PROFILE_DEVICE_TYPE
|
CONSTRAINT DM_PROFILE_DEVICE_TYPE
|
||||||
FOREIGN KEY (DEVICE_TYPE_ID )
|
FOREIGN KEY (DEVICE_TYPE )
|
||||||
REFERENCES DM_DEVICE_TYPE (ID )
|
REFERENCES DM_DEVICE_TYPE (NAME )
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION
|
ON UPDATE NO ACTION
|
||||||
);
|
);
|
||||||
@ -151,7 +151,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_POLICY (
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
|
CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
|
||||||
ID INTEGER NOT NULL,
|
ID INTEGER NOT NULL,
|
||||||
DEVICE_TYPE_ID INTEGER NOT NULL ,
|
DEVICE_TYPE VARCHAR(300) NOT NULL ,
|
||||||
POLICY_ID INTEGER NOT NULL ,
|
POLICY_ID INTEGER NOT NULL ,
|
||||||
PRIMARY KEY (ID) ,
|
PRIMARY KEY (ID) ,
|
||||||
CONSTRAINT FK_DEVICE_TYPE_POLICY
|
CONSTRAINT FK_DEVICE_TYPE_POLICY
|
||||||
@ -160,8 +160,8 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
|
|||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION,
|
ON UPDATE NO ACTION,
|
||||||
CONSTRAINT FK_DEVICE_TYPE_POLICY_DEVICE_TYPE
|
CONSTRAINT FK_DEVICE_TYPE_POLICY_DEVICE_TYPE
|
||||||
FOREIGN KEY (DEVICE_TYPE_ID )
|
FOREIGN KEY (DEVICE_TYPE )
|
||||||
REFERENCES DM_DEVICE_TYPE (ID )
|
REFERENCES DM_DEVICE_TYPE (NAME )
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION
|
ON UPDATE NO ACTION
|
||||||
);
|
);
|
||||||
@ -170,7 +170,7 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE_FEATURES (
|
|||||||
ID BIGSERIAL NOT NULL PRIMARY KEY,
|
ID BIGSERIAL NOT NULL PRIMARY KEY,
|
||||||
PROFILE_ID INTEGER NOT NULL,
|
PROFILE_ID INTEGER NOT NULL,
|
||||||
FEATURE_CODE VARCHAR(100) NOT NULL,
|
FEATURE_CODE VARCHAR(100) NOT NULL,
|
||||||
DEVICE_TYPE_ID INT NOT NULL,
|
DEVICE_TYPE VARCHAR(300) NOT NULL ,
|
||||||
TENANT_ID INTEGER NOT NULL ,
|
TENANT_ID INTEGER NOT NULL ,
|
||||||
CONTENT BYTEA NULL DEFAULT NULL,
|
CONTENT BYTEA NULL DEFAULT NULL,
|
||||||
CONSTRAINT FK_DM_PROFILE_DM_POLICY_FEATURES
|
CONSTRAINT FK_DM_PROFILE_DM_POLICY_FEATURES
|
||||||
@ -272,7 +272,7 @@ CREATE TABLE IF NOT EXISTS DM_POLICY_COMPLIANCE_STATUS (
|
|||||||
CREATE TABLE IF NOT EXISTS DM_POLICY_CHANGE_MGT (
|
CREATE TABLE IF NOT EXISTS DM_POLICY_CHANGE_MGT (
|
||||||
ID BIGSERIAL NOT NULL PRIMARY KEY,
|
ID BIGSERIAL NOT NULL PRIMARY KEY,
|
||||||
POLICY_ID INTEGER NOT NULL,
|
POLICY_ID INTEGER NOT NULL,
|
||||||
DEVICE_TYPE_ID INTEGER NOT NULL,
|
DEVICE_TYPE VARCHAR(300) NOT NULL,
|
||||||
TENANT_ID INTEGER NOT NULL
|
TENANT_ID INTEGER NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user