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
0f3a981367
@ -19,6 +19,7 @@ package org.wso2.carbon.device.mgt.common.app.mgt;
|
|||||||
|
|
||||||
import org.wso2.carbon.device.mgt.common.Application;
|
import org.wso2.carbon.device.mgt.common.Application;
|
||||||
import org.wso2.carbon.device.mgt.common.Credential;
|
import org.wso2.carbon.device.mgt.common.Credential;
|
||||||
|
import org.wso2.carbon.device.mgt.common.Device;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@ -18,10 +18,7 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.device.mgt.common.spi;
|
package org.wso2.carbon.device.mgt.common.spi;
|
||||||
|
|
||||||
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.DeviceManagementException;
|
|
||||||
import org.wso2.carbon.device.mgt.common.FeatureManager;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -124,7 +121,7 @@ public interface DeviceManager {
|
|||||||
* @param device Updated device information related data
|
* @param device Updated device information related data
|
||||||
* @throws DeviceManagementException If some unusual behaviour is observed while updating the device info
|
* @throws DeviceManagementException If some unusual behaviour is observed while updating the device info
|
||||||
*/
|
*/
|
||||||
boolean updateDeviceInfo(Device device) throws DeviceManagementException;
|
boolean updateDeviceInfo(Device device, List<Application> applicationList) throws DeviceManagementException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method to set the ownership type of a particular device. i.e. BYOD, COPE.
|
* Method to set the ownership type of a particular device. i.e. BYOD, COPE.
|
||||||
|
|||||||
@ -82,7 +82,9 @@
|
|||||||
org.wso2.carbon.apimgt.impl,
|
org.wso2.carbon.apimgt.impl,
|
||||||
org.wso2.carbon.identity.oauth.stub,
|
org.wso2.carbon.identity.oauth.stub,
|
||||||
org.wso2.carbon.identity.oauth.stub.dto,
|
org.wso2.carbon.identity.oauth.stub.dto,
|
||||||
org.wso2.carbon.ndatasource.core
|
org.wso2.carbon.ndatasource.core,
|
||||||
|
org.wso2.carbon.device.mgt.user.core,
|
||||||
|
org.wso2.carbon.device.mgt.user.common,
|
||||||
</Import-Package>
|
</Import-Package>
|
||||||
<Export-Package>
|
<Export-Package>
|
||||||
!org.wso2.carbon.device.mgt.core.internal,
|
!org.wso2.carbon.device.mgt.core.internal,
|
||||||
@ -122,6 +124,14 @@
|
|||||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
<artifactId>org.wso2.carbon.device.mgt.common</artifactId>
|
<artifactId>org.wso2.carbon.device.mgt.common</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.mgt.user.core</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.mgt.user.common</artifactId>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.wso2.carbon</groupId>
|
<groupId>org.wso2.carbon</groupId>
|
||||||
<artifactId>org.wso2.carbon.logging</artifactId>
|
<artifactId>org.wso2.carbon.logging</artifactId>
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
|||||||
import org.wso2.carbon.device.mgt.common.spi.DeviceMgtService;
|
import org.wso2.carbon.device.mgt.common.spi.DeviceMgtService;
|
||||||
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -52,4 +53,8 @@ public class DeviceManagementRepository {
|
|||||||
return providers.get(type);
|
return providers.get(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Collection<DeviceMgtService> getDeviceManagementProviders(){
|
||||||
|
return providers.values();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -378,10 +378,10 @@ public class DeviceManagementServiceProviderImpl implements DeviceManagementServ
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateDeviceInfo(Device device) throws DeviceManagementException {
|
public boolean updateDeviceInfo(Device device, List<Application> applicationList) throws DeviceManagementException {
|
||||||
DeviceManager dms =
|
DeviceManager dms =
|
||||||
this.getPluginRepository().getDeviceManagementProvider(device.getType());
|
this.getPluginRepository().getDeviceManagementProvider(device.getType());
|
||||||
return dms.updateDeviceInfo(device);
|
return dms.updateDeviceInfo(device,applicationList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -471,4 +471,104 @@ public class DeviceManagementServiceProviderImpl implements DeviceManagementServ
|
|||||||
throws OperationManagementException {
|
throws OperationManagementException {
|
||||||
return DeviceManagementDataHolder.getInstance().getOperationManager().getOperationsForStatus(status);
|
return DeviceManagementDataHolder.getInstance().getOperationManager().getOperationsForStatus(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Device> getAllDevicesOfUser(String userName)
|
||||||
|
throws DeviceManagementException {
|
||||||
|
List<Device> devicesOfUser = new ArrayList<Device>();
|
||||||
|
List<org.wso2.carbon.device.mgt.core.dto.Device> devicesList;
|
||||||
|
Device convertedDevice;
|
||||||
|
DeviceIdentifier deviceIdentifier;
|
||||||
|
DeviceManager dms;
|
||||||
|
Device dmsDevice;
|
||||||
|
org.wso2.carbon.device.mgt.core.dto.Device device;
|
||||||
|
int tenantId = DeviceManagerUtil.getTenantId();
|
||||||
|
//Fetch the DeviceList from Core
|
||||||
|
try {
|
||||||
|
devicesList = this.getDeviceDAO().getDeviceListOfUser(userName, tenantId);
|
||||||
|
} catch (DeviceManagementDAOException e) {
|
||||||
|
throw new DeviceManagementException("Error occurred while obtaining the devices of user '"
|
||||||
|
+ userName + "'", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Fetch the DeviceList from device plugin dbs & append the properties
|
||||||
|
for (int x = 0; x < devicesList.size(); x++) {
|
||||||
|
device = devicesList.get(x);
|
||||||
|
try {
|
||||||
|
//TODO : Possible improvement if DeviceTypes have been cached
|
||||||
|
device.setDeviceType(deviceTypeDAO.getDeviceType(device.getDeviceTypeId()));
|
||||||
|
dms = this.getPluginRepository().getDeviceManagementProvider(device.getDeviceType().getName());
|
||||||
|
convertedDevice = DeviceManagementDAOUtil.convertDevice(device, device.getDeviceType());
|
||||||
|
deviceIdentifier = new DeviceIdentifier();
|
||||||
|
deviceIdentifier.setId(device.getDeviceIdentificationId());
|
||||||
|
deviceIdentifier.setType(device.getDeviceType().getName());
|
||||||
|
dmsDevice = dms.getDevice(deviceIdentifier);
|
||||||
|
if (dmsDevice != null) {
|
||||||
|
convertedDevice.setProperties(dmsDevice.getProperties());
|
||||||
|
convertedDevice.setFeatures(dmsDevice.getFeatures());
|
||||||
|
}
|
||||||
|
devicesOfUser.add(convertedDevice);
|
||||||
|
} catch (DeviceManagementDAOException e) {
|
||||||
|
log.error("Error occurred while obtaining the device type of DeviceTypeId '"+
|
||||||
|
device.getDeviceTypeId() + "'",e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return devicesOfUser;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Device> getAllDevicesOfRole(String roleName)
|
||||||
|
throws DeviceManagementException {
|
||||||
|
List<Device> devicesOfRole = new ArrayList<Device>();
|
||||||
|
List<org.wso2.carbon.device.mgt.core.dto.Device> devicesList;
|
||||||
|
List<org.wso2.carbon.device.mgt.user.common.User> users;
|
||||||
|
Device convertedDevice;
|
||||||
|
DeviceIdentifier deviceIdentifier;
|
||||||
|
DeviceManager dms;
|
||||||
|
Device dmsDevice;
|
||||||
|
org.wso2.carbon.device.mgt.core.dto.Device device;
|
||||||
|
String userName = "";
|
||||||
|
int tenantId = DeviceManagerUtil.getTenantId();
|
||||||
|
//Obtaining the list of users of role
|
||||||
|
try {
|
||||||
|
users = DeviceManagementDataHolder.getInstance().getUserManager().getUsersForTenantAndRole(
|
||||||
|
tenantId, roleName);
|
||||||
|
} catch (org.wso2.carbon.device.mgt.user.common.UserManagementException e) {
|
||||||
|
throw new DeviceManagementException("Error occurred while obtaining the users of role '"
|
||||||
|
+ roleName + "'", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Obtaining the devices per user
|
||||||
|
for(org.wso2.carbon.device.mgt.user.common.User user:users){
|
||||||
|
try {
|
||||||
|
userName = user.getUserName();
|
||||||
|
devicesList = this.getDeviceDAO().getDeviceListOfUser(userName, tenantId);
|
||||||
|
for (int x = 0; x < devicesList.size(); x++) {
|
||||||
|
device = devicesList.get(x);
|
||||||
|
try {
|
||||||
|
//TODO : Possible improvement if DeviceTypes have been cached
|
||||||
|
device.setDeviceType(deviceTypeDAO.getDeviceType(device.getDeviceTypeId()));
|
||||||
|
dms = this.getPluginRepository().getDeviceManagementProvider(device.getDeviceType().getName());
|
||||||
|
convertedDevice = DeviceManagementDAOUtil.convertDevice(device, device.getDeviceType());
|
||||||
|
deviceIdentifier = new DeviceIdentifier();
|
||||||
|
deviceIdentifier.setId(device.getDeviceIdentificationId());
|
||||||
|
deviceIdentifier.setType(device.getDeviceType().getName());
|
||||||
|
dmsDevice = dms.getDevice(deviceIdentifier);
|
||||||
|
if (dmsDevice != null) {
|
||||||
|
convertedDevice.setProperties(dmsDevice.getProperties());
|
||||||
|
convertedDevice.setFeatures(dmsDevice.getFeatures());
|
||||||
|
}
|
||||||
|
devicesOfRole.add(convertedDevice);
|
||||||
|
} catch (DeviceManagementDAOException e) {
|
||||||
|
log.error("Error occurred while obtaining the device type of DeviceTypeId '"+
|
||||||
|
device.getDeviceTypeId() + "'",e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (DeviceManagementDAOException e) {
|
||||||
|
log.error("Error occurred while obtaining the devices of user '"
|
||||||
|
+ userName + "'", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return devicesOfRole;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,18 +17,21 @@
|
|||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.mgt.core.app.mgt;
|
package org.wso2.carbon.device.mgt.core.app.mgt;
|
||||||
|
|
||||||
import org.wso2.carbon.device.mgt.common.Application;
|
import org.apache.commons.logging.Log;
|
||||||
import org.wso2.carbon.device.mgt.common.Credential;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
import org.wso2.carbon.device.mgt.common.*;
|
||||||
import org.wso2.carbon.device.mgt.common.app.mgt.AppManagerConnector;
|
import org.wso2.carbon.device.mgt.common.app.mgt.AppManagerConnector;
|
||||||
import org.wso2.carbon.device.mgt.common.app.mgt.AppManagerConnectorException;
|
import org.wso2.carbon.device.mgt.common.app.mgt.AppManagerConnectorException;
|
||||||
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
||||||
|
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
|
||||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class AppManagementServiceImpl implements AppManagerConnector {
|
public class AppManagementServiceImpl implements AppManagerConnector {
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(AppManagementServiceImpl.class);
|
||||||
@Override
|
@Override
|
||||||
public Application[] getApplicationList(String domain, int pageNumber, int size) throws AppManagerConnectorException {
|
public Application[] getApplicationList(String domain, int pageNumber, int size) throws AppManagerConnectorException {
|
||||||
return DeviceManagementDataHolder.getInstance().getAppManager().getApplicationList(domain, pageNumber, size);
|
return DeviceManagementDataHolder.getInstance().getAppManager().getApplicationList(domain, pageNumber, size);
|
||||||
@ -55,6 +58,14 @@ public class AppManagementServiceImpl implements AppManagerConnector {
|
|||||||
@Override
|
@Override
|
||||||
public void installApplication(Operation operation, List<DeviceIdentifier> deviceIdentifiers)
|
public void installApplication(Operation operation, List<DeviceIdentifier> deviceIdentifiers)
|
||||||
throws AppManagerConnectorException {
|
throws AppManagerConnectorException {
|
||||||
|
try {
|
||||||
|
DeviceManagementDataHolder.getInstance().getDeviceManagementProvider().addOperation(operation,
|
||||||
|
deviceIdentifiers);
|
||||||
|
} catch (OperationManagementException opMgtEx) {
|
||||||
|
String errorMsg = "Error occurred when add operations at install application";
|
||||||
|
log.error(errorMsg, opMgtEx);
|
||||||
|
throw new AppManagerConnectorException();
|
||||||
|
}
|
||||||
DeviceManagementDataHolder.getInstance().getAppManager().installApplication(operation, deviceIdentifiers);
|
DeviceManagementDataHolder.getInstance().getAppManager().installApplication(operation, deviceIdentifiers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -29,6 +29,7 @@ import org.wso2.carbon.device.mgt.core.service.DeviceManagementService;
|
|||||||
import org.wso2.carbon.registry.core.service.RegistryService;
|
import org.wso2.carbon.registry.core.service.RegistryService;
|
||||||
import org.wso2.carbon.user.core.service.RealmService;
|
import org.wso2.carbon.user.core.service.RealmService;
|
||||||
import org.wso2.carbon.user.core.tenant.TenantManager;
|
import org.wso2.carbon.user.core.tenant.TenantManager;
|
||||||
|
import org.wso2.carbon.device.mgt.user.core.UserManager;
|
||||||
|
|
||||||
public class DeviceManagementDataHolder {
|
public class DeviceManagementDataHolder {
|
||||||
|
|
||||||
@ -42,6 +43,7 @@ public class DeviceManagementDataHolder {
|
|||||||
private AppManagerConnector appManager;
|
private AppManagerConnector appManager;
|
||||||
private AppManagementConfig appManagerConfig;
|
private AppManagementConfig appManagerConfig;
|
||||||
private OperationManager operationManager;
|
private OperationManager operationManager;
|
||||||
|
private UserManager userManager;
|
||||||
|
|
||||||
private static DeviceManagementDataHolder thisInstance = new DeviceManagementDataHolder();
|
private static DeviceManagementDataHolder thisInstance = new DeviceManagementDataHolder();
|
||||||
|
|
||||||
@ -135,4 +137,13 @@ public class DeviceManagementDataHolder {
|
|||||||
public void setOperationManager(OperationManager operationManager) {
|
public void setOperationManager(OperationManager operationManager) {
|
||||||
this.operationManager = operationManager;
|
this.operationManager = operationManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public UserManager getUserManager() {
|
||||||
|
return userManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserManager(UserManager userManager) {
|
||||||
|
this.userManager = userManager;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,7 +29,6 @@ import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
|
|||||||
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManager;
|
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManager;
|
||||||
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
|
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
|
||||||
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager;
|
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager;
|
||||||
import org.wso2.carbon.device.mgt.common.spi.DeviceManager;
|
|
||||||
import org.wso2.carbon.device.mgt.common.spi.DeviceMgtService;
|
import org.wso2.carbon.device.mgt.common.spi.DeviceMgtService;
|
||||||
import org.wso2.carbon.device.mgt.core.DeviceManagementConstants;
|
import org.wso2.carbon.device.mgt.core.DeviceManagementConstants;
|
||||||
import org.wso2.carbon.device.mgt.core.DeviceManagementRepository;
|
import org.wso2.carbon.device.mgt.core.DeviceManagementRepository;
|
||||||
@ -55,6 +54,7 @@ import org.wso2.carbon.device.mgt.core.operation.mgt.dao.OperationManagementDAOF
|
|||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementService;
|
import org.wso2.carbon.device.mgt.core.service.DeviceManagementService;
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementServiceImpl;
|
import org.wso2.carbon.device.mgt.core.service.DeviceManagementServiceImpl;
|
||||||
import org.wso2.carbon.device.mgt.core.util.DeviceManagementSchemaInitializer;
|
import org.wso2.carbon.device.mgt.core.util.DeviceManagementSchemaInitializer;
|
||||||
|
import org.wso2.carbon.device.mgt.user.core.UserManager;
|
||||||
import org.wso2.carbon.user.core.service.RealmService;
|
import org.wso2.carbon.user.core.service.RealmService;
|
||||||
import org.wso2.carbon.ndatasource.core.DataSourceService;
|
import org.wso2.carbon.ndatasource.core.DataSourceService;
|
||||||
import org.wso2.carbon.registry.core.service.RegistryService;
|
import org.wso2.carbon.registry.core.service.RegistryService;
|
||||||
@ -93,6 +93,12 @@ import java.util.List;
|
|||||||
* policy="dynamic"
|
* policy="dynamic"
|
||||||
* bind="setDataSourceService"
|
* bind="setDataSourceService"
|
||||||
* unbind="unsetDataSourceService"
|
* unbind="unsetDataSourceService"
|
||||||
|
* @scr.reference name="org.wso2.carbon.device.mgt.usermanager.service"
|
||||||
|
* interface="org.wso2.carbon.device.mgt.user.core.UserManager"
|
||||||
|
* cardinality="1..1"
|
||||||
|
* policy="dynamic"
|
||||||
|
* bind="setUserManager"
|
||||||
|
* unbind="unsetUserManager"
|
||||||
*/
|
*/
|
||||||
public class DeviceManagementServiceComponent {
|
public class DeviceManagementServiceComponent {
|
||||||
|
|
||||||
@ -324,6 +330,30 @@ public class DeviceManagementServiceComponent {
|
|||||||
DeviceManagementDataHolder.getInstance().setRegistryService(null);
|
DeviceManagementDataHolder.getInstance().setRegistryService(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets UserManager Service.
|
||||||
|
*
|
||||||
|
* @param userMgtService An instance of UserManager
|
||||||
|
*/
|
||||||
|
protected void setUserManager(UserManager userMgtService) {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Setting UserManager Service");
|
||||||
|
}
|
||||||
|
DeviceManagementDataHolder.getInstance().setUserManager(userMgtService);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unsets UserManager Service.
|
||||||
|
*
|
||||||
|
* @param userMgtService An instance of UserManager
|
||||||
|
*/
|
||||||
|
protected void unsetUserManager(UserManager userMgtService) {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Unsetting UserManager Service");
|
||||||
|
}
|
||||||
|
DeviceManagementDataHolder.getInstance().setUserManager(null);
|
||||||
|
}
|
||||||
|
|
||||||
private DeviceManagementRepository getPluginRepository() {
|
private DeviceManagementRepository getPluginRepository() {
|
||||||
return pluginRepository;
|
return pluginRepository;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -50,4 +50,24 @@ public interface DeviceManagementService extends DeviceManager, LicenseManager,
|
|||||||
*/
|
*/
|
||||||
Device getCoreDevice(DeviceIdentifier deviceId) throws DeviceManagementException;
|
Device getCoreDevice(DeviceIdentifier deviceId) throws DeviceManagementException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to get the list of devices owned by an user.
|
||||||
|
*
|
||||||
|
* @param userName Username of the user
|
||||||
|
* @return List of devices owned by a particular user
|
||||||
|
* @throws DeviceManagementException If some unusual behaviour is observed while fetching the
|
||||||
|
* device list
|
||||||
|
*/
|
||||||
|
List<Device> getAllDevicesOfUser(String userName) throws DeviceManagementException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to get the list of devices owned by users of a particular user-role.
|
||||||
|
*
|
||||||
|
* @param roleName Role name of the users
|
||||||
|
* @return List of devices owned by users of a particular role
|
||||||
|
* @throws DeviceManagementException If some unusual behaviour is observed while fetching the
|
||||||
|
* device list
|
||||||
|
*/
|
||||||
|
List<Device> getAllDevicesOfRole(String roleName) throws DeviceManagementException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -98,8 +98,9 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateDeviceInfo(Device device) throws DeviceManagementException {
|
public boolean updateDeviceInfo(Device device, List<Application> applicationList) throws DeviceManagementException {
|
||||||
return DeviceManagementDataHolder.getInstance().getDeviceManagementProvider().updateDeviceInfo(device);
|
return DeviceManagementDataHolder.getInstance().getDeviceManagementProvider().
|
||||||
|
updateDeviceInfo(device, applicationList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -189,4 +190,18 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
|||||||
DeviceManagementDataHolder.getInstance().getDeviceManagementProvider()
|
DeviceManagementDataHolder.getInstance().getDeviceManagementProvider()
|
||||||
.sendRegistrationEmail(emailMessageProperties);
|
.sendRegistrationEmail(emailMessageProperties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Device> getAllDevicesOfUser(String userName)
|
||||||
|
throws DeviceManagementException {
|
||||||
|
return DeviceManagementDataHolder.getInstance().getDeviceManagementProvider()
|
||||||
|
.getAllDevicesOfUser(userName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Device> getAllDevicesOfRole(String roleName)
|
||||||
|
throws DeviceManagementException {
|
||||||
|
return DeviceManagementDataHolder.getInstance().getDeviceManagementProvider()
|
||||||
|
.getAllDevicesOfRole(roleName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -79,7 +79,7 @@ public class TestDeviceManager implements DeviceMgtService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateDeviceInfo(Device device) throws DeviceManagementException {
|
public boolean updateDeviceInfo(Device device, List<Application> applicationList) throws DeviceManagementException {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -34,6 +34,8 @@ import java.util.Map;
|
|||||||
@XmlRootElement
|
@XmlRootElement
|
||||||
public class Policy implements Comparable<Policy>, Serializable {
|
public class Policy implements Comparable<Policy>, Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 19981017L;
|
||||||
|
|
||||||
private int id; // Identifier of the policy.
|
private int id; // Identifier of the policy.
|
||||||
private int priorityId; // Priority of the policies. This will be used only for simple evaluation.
|
private int priorityId; // Priority of the policies. This will be used only for simple evaluation.
|
||||||
private Profile profile; // Profile
|
private Profile profile; // Profile
|
||||||
@ -44,25 +46,29 @@ public class Policy implements Comparable<Policy>, Serializable {
|
|||||||
private List<Device> devices; // Individual devices this policy should be applied
|
private List<Device> devices; // Individual devices this policy should be applied
|
||||||
private List<String> users;
|
private List<String> users;
|
||||||
|
|
||||||
|
|
||||||
|
/* Compliance data*/
|
||||||
|
private String Compliance;
|
||||||
|
|
||||||
/*Dynamic policy attributes*/
|
/*Dynamic policy attributes*/
|
||||||
|
|
||||||
/* This is related criteria based policy */
|
/* This is related criteria based policy */
|
||||||
|
|
||||||
private List<PolicyCriteria> policyCriterias;
|
private List<PolicyCriterion> policyCriterias;
|
||||||
|
|
||||||
/*These are related to time based policies*/
|
/*These are related to time based policies*/
|
||||||
|
|
||||||
private int startTime; // Start time to apply the policy.
|
// private int startTime; // Start time to apply the policy.
|
||||||
private int endTime; // After this time policy will not be applied
|
// private int endTime; // After this time policy will not be applied
|
||||||
private Date startDate; // Start date to apply the policy
|
// private Date startDate; // Start date to apply the policy
|
||||||
private Date endDate; // After this date policy will not be applied.
|
// private Date endDate; // After this date policy will not be applied.
|
||||||
|
|
||||||
|
|
||||||
/*These are related to location based policies*/
|
/*These are related to location based policies*/
|
||||||
|
|
||||||
private String latitude; // Latitude
|
// private String latitude; // Latitude
|
||||||
private String longitude; // Longitude
|
// private String longitude; // Longitude
|
||||||
|
//
|
||||||
private int tenantId;
|
private int tenantId;
|
||||||
private int profileId;
|
private int profileId;
|
||||||
|
|
||||||
@ -161,66 +167,74 @@ public class Policy implements Comparable<Policy>, Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@XmlElement
|
@XmlElement
|
||||||
public List<PolicyCriteria> getPolicyCriterias() {
|
public List<PolicyCriterion> getPolicyCriterias() {
|
||||||
return policyCriterias;
|
return policyCriterias;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPolicyCriterias(List<PolicyCriteria> policyCriterias) {
|
public void setPolicyCriterias(List<PolicyCriterion> policyCriterias) {
|
||||||
this.policyCriterias = policyCriterias;
|
this.policyCriterias = policyCriterias;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getStartTime() {
|
public String getCompliance() {
|
||||||
return startTime;
|
return Compliance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setStartTime(int startTime) {
|
public void setCompliance(String compliance) {
|
||||||
this.startTime = startTime;
|
Compliance = compliance;
|
||||||
}
|
}
|
||||||
|
|
||||||
@XmlElement
|
// public int getStartTime() {
|
||||||
public int getEndTime() {
|
// return startTime;
|
||||||
return endTime;
|
// }
|
||||||
}
|
//
|
||||||
|
// public void setStartTime(int startTime) {
|
||||||
public void setEndTime(int endTime) {
|
// this.startTime = startTime;
|
||||||
this.endTime = endTime;
|
// }
|
||||||
}
|
//
|
||||||
|
// @XmlElement
|
||||||
@XmlElement
|
// public int getEndTime() {
|
||||||
public Date getStartDate() {
|
// return endTime;
|
||||||
return startDate;
|
// }
|
||||||
}
|
//
|
||||||
|
// public void setEndTime(int endTime) {
|
||||||
public void setStartDate(Date startDate) {
|
// this.endTime = endTime;
|
||||||
this.startDate = startDate;
|
// }
|
||||||
}
|
//
|
||||||
|
// @XmlElement
|
||||||
@XmlElement
|
// public Date getStartDate() {
|
||||||
public Date getEndDate() {
|
// return startDate;
|
||||||
return endDate;
|
// }
|
||||||
}
|
//
|
||||||
|
// public void setStartDate(Date startDate) {
|
||||||
public void setEndDate(Date endDate) {
|
// this.startDate = startDate;
|
||||||
this.endDate = endDate;
|
// }
|
||||||
}
|
//
|
||||||
|
// @XmlElement
|
||||||
@XmlElement
|
// public Date getEndDate() {
|
||||||
public String getLatitude() {
|
// return endDate;
|
||||||
return latitude;
|
// }
|
||||||
}
|
//
|
||||||
|
// public void setEndDate(Date endDate) {
|
||||||
public void setLatitude(String latitude) {
|
// this.endDate = endDate;
|
||||||
this.latitude = latitude;
|
// }
|
||||||
}
|
//
|
||||||
|
// @XmlElement
|
||||||
@XmlElement
|
// public String getLatitude() {
|
||||||
public String getLongitude() {
|
// return latitude;
|
||||||
return longitude;
|
// }
|
||||||
}
|
//
|
||||||
|
// public void setLatitude(String latitude) {
|
||||||
public void setLongitude(String longitude) {
|
// this.latitude = latitude;
|
||||||
this.longitude = longitude;
|
// }
|
||||||
}
|
//
|
||||||
|
// @XmlElement
|
||||||
|
// public String getLongitude() {
|
||||||
|
// return longitude;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public void setLongitude(String longitude) {
|
||||||
|
// this.longitude = longitude;
|
||||||
|
// }
|
||||||
|
|
||||||
@XmlElement
|
@XmlElement
|
||||||
public Map<String, Object> getAttributes() {
|
public Map<String, Object> getAttributes() {
|
||||||
|
|||||||
@ -22,9 +22,10 @@ package org.wso2.carbon.policy.mgt.common;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
public class PolicyCriteria {
|
public class PolicyCriterion {
|
||||||
|
|
||||||
private int id;
|
private int id;
|
||||||
|
private int criteriaId;
|
||||||
private String name;
|
private String name;
|
||||||
private Properties properties;
|
private Properties properties;
|
||||||
private Map<String, Object> objectMap;
|
private Map<String, Object> objectMap;
|
||||||
@ -37,6 +38,14 @@ public class PolicyCriteria {
|
|||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getCriteriaId() {
|
||||||
|
return criteriaId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCriteriaId(int criteriaId) {
|
||||||
|
this.criteriaId = criteriaId;
|
||||||
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
@ -1,43 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.wso2.carbon.policy.mgt.common;
|
|
||||||
|
|
||||||
import java.sql.Date;
|
|
||||||
|
|
||||||
public class PolicyDates {
|
|
||||||
|
|
||||||
private Date startDate; // Start date to apply the policy
|
|
||||||
private Date endDate; // After this date policy will not be applied.
|
|
||||||
|
|
||||||
public Date getStartDate() {
|
|
||||||
return startDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStartDate(Date startDate) {
|
|
||||||
this.startDate = startDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getEndDate() {
|
|
||||||
return endDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEndDate(Date endDate) {
|
|
||||||
this.endDate = endDate;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
package org.wso2.carbon.policy.mgt.common;
|
||||||
|
|
||||||
|
import org.wso2.carbon.policy.mgt.common.Policy;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface PolicyFilter {
|
||||||
|
|
||||||
|
void filterRolesBasedPolicies(String roles[], List<Policy> policies);
|
||||||
|
|
||||||
|
void filterOwnershipTypeBasedPolicies(String ownershipType, List<Policy> policies);
|
||||||
|
|
||||||
|
void filterDeviceTypeBasedPolicies(String deviceType, List<Policy> policies);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,41 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.wso2.carbon.policy.mgt.common;
|
|
||||||
|
|
||||||
public class PolicyLocations {
|
|
||||||
|
|
||||||
private String latitude; // Latitude
|
|
||||||
private String longitude; // Longitude
|
|
||||||
|
|
||||||
public String getLatitude() {
|
|
||||||
return latitude;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLatitude(String latitude) {
|
|
||||||
this.latitude = latitude;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLongitude() {
|
|
||||||
return longitude;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLongitude(String longitude) {
|
|
||||||
this.longitude = longitude;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.wso2.carbon.policy.mgt.common;
|
|
||||||
|
|
||||||
import java.sql.Date;
|
|
||||||
|
|
||||||
public class PolicyTimes {
|
|
||||||
|
|
||||||
private int startTime; // Start time to apply the policy.
|
|
||||||
private int endTime; // After this time policy will not be applied
|
|
||||||
|
|
||||||
public int getStartTime() {
|
|
||||||
return startTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStartTime(int startTime) {
|
|
||||||
this.startTime = startTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getEndTime() {
|
|
||||||
return endTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEndTime(int endTime) {
|
|
||||||
this.endTime = endTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -25,7 +25,6 @@ public class ProfileFeature implements Serializable {
|
|||||||
|
|
||||||
private int id;
|
private int id;
|
||||||
private String featureCode;
|
private String featureCode;
|
||||||
// private Feature feature;
|
|
||||||
private int profileId;
|
private int profileId;
|
||||||
private int deviceTypeId;
|
private int deviceTypeId;
|
||||||
private Object content;
|
private Object content;
|
||||||
@ -46,14 +45,6 @@ public class ProfileFeature implements Serializable {
|
|||||||
this.featureCode = featureCode;
|
this.featureCode = featureCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
// public Feature getFeature() {
|
|
||||||
// return feature;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setFeature(Feature feature) {
|
|
||||||
// this.feature = feature;
|
|
||||||
// }
|
|
||||||
|
|
||||||
public int getProfileId() {
|
public int getProfileId() {
|
||||||
return profileId;
|
return profileId;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,8 +43,6 @@ public interface FeatureDAO {
|
|||||||
List<ProfileFeature> updateProfileFeatures(List<ProfileFeature> features, int profileId) throws
|
List<ProfileFeature> updateProfileFeatures(List<ProfileFeature> features, int profileId) throws
|
||||||
FeatureManagerDAOException;
|
FeatureManagerDAOException;
|
||||||
|
|
||||||
List<Feature> getAllFeatures() throws FeatureManagerDAOException;
|
|
||||||
|
|
||||||
List<ProfileFeature> getAllProfileFeatures() throws FeatureManagerDAOException;
|
List<ProfileFeature> getAllProfileFeatures() throws FeatureManagerDAOException;
|
||||||
|
|
||||||
List<Feature> getAllFeatures(String deviceType) throws FeatureManagerDAOException;
|
List<Feature> getAllFeatures(String deviceType) throws FeatureManagerDAOException;
|
||||||
|
|||||||
@ -36,11 +36,11 @@ public interface PolicyDAO {
|
|||||||
|
|
||||||
Policy addPolicyToDevice(List<Device> devices, Policy policy) throws PolicyManagerDAOException;
|
Policy addPolicyToDevice(List<Device> devices, Policy policy) throws PolicyManagerDAOException;
|
||||||
|
|
||||||
Policy addDatesToPolicy(Date startDate, Date endDate, Policy policy) throws PolicyManagerDAOException;
|
// Policy addDatesToPolicy(Date startDate, Date endDate, Policy policy) throws PolicyManagerDAOException;
|
||||||
|
//
|
||||||
Policy addTimesToPolicy(int startTime, int endTime, Policy policy) throws PolicyManagerDAOException;
|
// Policy addTimesToPolicy(int startTime, int endTime, Policy policy) throws PolicyManagerDAOException;
|
||||||
|
//
|
||||||
Policy addLocationToPolicy(String latitude, String longitude, Policy policy) throws PolicyManagerDAOException;
|
// Policy addLocationToPolicy(String latitude, String longitude, Policy policy) throws PolicyManagerDAOException;
|
||||||
|
|
||||||
Criterion addCriterion(Criterion criteria) throws PolicyManagerDAOException;
|
Criterion addCriterion(Criterion criteria) throws PolicyManagerDAOException;
|
||||||
|
|
||||||
@ -58,7 +58,9 @@ public interface PolicyDAO {
|
|||||||
|
|
||||||
Policy addPolicyCriteria(Policy policy) throws PolicyManagerDAOException;
|
Policy addPolicyCriteria(Policy policy) throws PolicyManagerDAOException;
|
||||||
|
|
||||||
List<PolicyCriteria> getPolicyCriteria(int policyId) throws PolicyManagerDAOException;
|
boolean addPolicyCriteriaProperties(List<PolicyCriterion> policyCriteria) throws PolicyManagerDAOException;
|
||||||
|
|
||||||
|
List<PolicyCriterion> getPolicyCriteria(int policyId) throws PolicyManagerDAOException;
|
||||||
|
|
||||||
Policy updatePolicy(Policy policy) throws PolicyManagerDAOException;
|
Policy updatePolicy(Policy policy) throws PolicyManagerDAOException;
|
||||||
|
|
||||||
@ -84,11 +86,11 @@ public interface PolicyDAO {
|
|||||||
|
|
||||||
List<String> getPolicyAppliedRoles(int policyId) throws PolicyManagerDAOException;
|
List<String> getPolicyAppliedRoles(int policyId) throws PolicyManagerDAOException;
|
||||||
|
|
||||||
PolicyTimes getTimesOfPolicy(Policy policy) throws PolicyManagerDAOException;
|
// PolicyTimes getTimesOfPolicy(Policy policy) throws PolicyManagerDAOException;
|
||||||
|
//
|
||||||
PolicyDates getDatesOfPolicy(Policy policy) throws PolicyManagerDAOException;
|
// PolicyDates getDatesOfPolicy(Policy policy) throws PolicyManagerDAOException;
|
||||||
|
//
|
||||||
PolicyLocations getLocationsOfPolicy(Policy policy) throws PolicyManagerDAOException;
|
// PolicyLocations getLocationsOfPolicy(Policy policy) throws PolicyManagerDAOException;
|
||||||
|
|
||||||
void addEffectivePolicyToDevice(int deviceId, int policyId, List<ProfileFeature> profileFeatures)
|
void addEffectivePolicyToDevice(int deviceId, int policyId, List<ProfileFeature> profileFeatures)
|
||||||
throws PolicyManagerDAOException;
|
throws PolicyManagerDAOException;
|
||||||
|
|||||||
@ -30,10 +30,10 @@ import org.wso2.carbon.policy.mgt.core.dao.PolicyManagementDAOFactory;
|
|||||||
import org.wso2.carbon.policy.mgt.core.dao.PolicyManagerDAOException;
|
import org.wso2.carbon.policy.mgt.core.dao.PolicyManagerDAOException;
|
||||||
import org.wso2.carbon.policy.mgt.core.dao.util.PolicyManagementDAOUtil;
|
import org.wso2.carbon.policy.mgt.core.dao.util.PolicyManagementDAOUtil;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.sql.PreparedStatement;
|
import java.io.IOException;
|
||||||
import java.sql.ResultSet;
|
import java.io.ObjectInputStream;
|
||||||
import java.sql.SQLException;
|
import java.sql.*;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -181,7 +181,11 @@ public class FeatureDAOImpl implements FeatureDAO {
|
|||||||
stmt.setInt(1, profileId);
|
stmt.setInt(1, profileId);
|
||||||
stmt.setString(2, feature.getFeatureCode());
|
stmt.setString(2, feature.getFeatureCode());
|
||||||
stmt.setInt(3, feature.getDeviceTypeId());
|
stmt.setInt(3, feature.getDeviceTypeId());
|
||||||
stmt.setObject(4, feature.getContent());
|
if (conn.getMetaData().getDriverName().contains("H2")) {
|
||||||
|
stmt.setObject(4, feature.getContent(), Types.JAVA_OBJECT);
|
||||||
|
} else {
|
||||||
|
stmt.setObject(4, feature.getContent());
|
||||||
|
}
|
||||||
stmt.addBatch();
|
stmt.addBatch();
|
||||||
//Not adding the logic to check the size of the stmt and execute if the size records added is over 1000
|
//Not adding the logic to check the size of the stmt and execute if the size records added is over 1000
|
||||||
}
|
}
|
||||||
@ -217,7 +221,11 @@ public class FeatureDAOImpl implements FeatureDAO {
|
|||||||
|
|
||||||
stmt = conn.prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);
|
||||||
for (ProfileFeature feature : features) {
|
for (ProfileFeature feature : features) {
|
||||||
stmt.setObject(1, feature.getContent());
|
if (conn.getMetaData().getDriverName().contains("H2")) {
|
||||||
|
stmt.setObject(4, feature.getContent(), Types.JAVA_OBJECT);
|
||||||
|
} else {
|
||||||
|
stmt.setObject(4, feature.getContent());
|
||||||
|
}
|
||||||
stmt.setInt(2, profileId);
|
stmt.setInt(2, profileId);
|
||||||
stmt.setString(3, feature.getFeatureCode());
|
stmt.setString(3, feature.getFeatureCode());
|
||||||
stmt.addBatch();
|
stmt.addBatch();
|
||||||
@ -259,42 +267,6 @@ public class FeatureDAOImpl implements FeatureDAO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Feature> getAllFeatures() throws FeatureManagerDAOException {
|
|
||||||
|
|
||||||
// Connection conn;
|
|
||||||
// PreparedStatement stmt = null;
|
|
||||||
// ResultSet resultSet = null;
|
|
||||||
List<Feature> featureList = new ArrayList<Feature>();
|
|
||||||
//
|
|
||||||
// try {
|
|
||||||
// conn = this.getConnection();
|
|
||||||
// String query = "SELECT ID, NAME, CODE, DEVICE_TYPE_ID, EVALUATION_RULE FROM DM_FEATURES";
|
|
||||||
// stmt = conn.prepareStatement(query);
|
|
||||||
// resultSet = stmt.executeQuery();
|
|
||||||
//
|
|
||||||
// while (resultSet.next()) {
|
|
||||||
//
|
|
||||||
// Feature feature = new Feature();
|
|
||||||
// feature.setId(resultSet.getInt("ID"));
|
|
||||||
// feature.setCode(resultSet.getString("CODE"));
|
|
||||||
// feature.setName(resultSet.getString("NAME"));
|
|
||||||
// feature.setDeviceTypeId(resultSet.getInt("DEVICE_TYPE_ID"));
|
|
||||||
// feature.setRuleValue(resultSet.getString("EVALUATION_RULE"));
|
|
||||||
// featureList.add(feature);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// } catch (SQLException e) {
|
|
||||||
// String msg = "Unable to get the list of the features from database.";
|
|
||||||
// log.error(msg);
|
|
||||||
// throw new FeatureManagerDAOException(msg, e);
|
|
||||||
// } finally {
|
|
||||||
// PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
|
||||||
// this.closeConnection();
|
|
||||||
// }
|
|
||||||
return featureList;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ProfileFeature> getAllProfileFeatures() throws FeatureManagerDAOException {
|
public List<ProfileFeature> getAllProfileFeatures() throws FeatureManagerDAOException {
|
||||||
|
|
||||||
@ -322,8 +294,34 @@ public class FeatureDAOImpl implements FeatureDAO {
|
|||||||
profileFeature.setFeatureCode(resultSet.getString("FEATURE_CODE"));
|
profileFeature.setFeatureCode(resultSet.getString("FEATURE_CODE"));
|
||||||
profileFeature.setDeviceTypeId(resultSet.getInt("DEVICE_TYPE_ID"));
|
profileFeature.setDeviceTypeId(resultSet.getInt("DEVICE_TYPE_ID"));
|
||||||
profileFeature.setId(resultSet.getInt("ID"));
|
profileFeature.setId(resultSet.getInt("ID"));
|
||||||
profileFeature.setContent(resultSet.getObject("CONTENT"));
|
// profileFeature.setContent(resultSet.getObject("CONTENT"));
|
||||||
profileFeature.setProfileId(resultSet.getInt("PROFILE_ID"));
|
profileFeature.setProfileId(resultSet.getInt("PROFILE_ID"));
|
||||||
|
|
||||||
|
ByteArrayInputStream bais = null;
|
||||||
|
ObjectInputStream ois = null;
|
||||||
|
byte[] contentBytes;
|
||||||
|
try {
|
||||||
|
contentBytes = (byte[]) resultSet.getBytes("CONTENT");
|
||||||
|
bais = new ByteArrayInputStream(contentBytes);
|
||||||
|
ois = new ObjectInputStream(bais);
|
||||||
|
profileFeature.setContent(ois.readObject().toString());
|
||||||
|
} finally {
|
||||||
|
if (bais != null) {
|
||||||
|
try {
|
||||||
|
bais.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.warn("Error occurred while closing ByteArrayOutputStream", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ois != null) {
|
||||||
|
try {
|
||||||
|
ois.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.warn("Error occurred while closing ObjectOutputStream", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
featureList.add(profileFeature);
|
featureList.add(profileFeature);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -331,6 +329,14 @@ public class FeatureDAOImpl implements FeatureDAO {
|
|||||||
String msg = "Unable to get the list of the features from database.";
|
String msg = "Unable to get the list of the features from database.";
|
||||||
log.error(msg);
|
log.error(msg);
|
||||||
throw new FeatureManagerDAOException(msg, e);
|
throw new FeatureManagerDAOException(msg, e);
|
||||||
|
} catch (IOException e) {
|
||||||
|
String msg = "Unable to read the byte stream for content";
|
||||||
|
log.error(msg);
|
||||||
|
throw new FeatureManagerDAOException(msg, e);
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
String msg = "Class not found while converting the object";
|
||||||
|
log.error(msg);
|
||||||
|
throw new FeatureManagerDAOException(msg, e);
|
||||||
} finally {
|
} finally {
|
||||||
PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
||||||
this.closeConnection();
|
this.closeConnection();
|
||||||
@ -395,17 +401,35 @@ public class FeatureDAOImpl implements FeatureDAO {
|
|||||||
|
|
||||||
while (resultSet.next()) {
|
while (resultSet.next()) {
|
||||||
ProfileFeature profileFeature = new ProfileFeature();
|
ProfileFeature profileFeature = new ProfileFeature();
|
||||||
// Feature feature = new Feature();
|
|
||||||
// feature.setId(resultSet.getInt("FEATURE_ID"));
|
|
||||||
// feature.setCode(resultSet.getString("CODE"));
|
|
||||||
// feature.setName(resultSet.getString("NAME"));
|
|
||||||
// feature.setRuleValue(resultSet.getString("RULE"));
|
|
||||||
|
|
||||||
// profileFeature.setFeature(feature);
|
|
||||||
profileFeature.setId(resultSet.getInt("ID"));
|
profileFeature.setId(resultSet.getInt("ID"));
|
||||||
profileFeature.setFeatureCode(resultSet.getString("FEATURE_CODE"));
|
profileFeature.setFeatureCode(resultSet.getString("FEATURE_CODE"));
|
||||||
profileFeature.setDeviceTypeId(resultSet.getInt("DEVICE_TYPE_ID"));
|
profileFeature.setDeviceTypeId(resultSet.getInt("DEVICE_TYPE_ID"));
|
||||||
profileFeature.setContent(resultSet.getObject("CONTENT"));
|
|
||||||
|
ByteArrayInputStream bais = null;
|
||||||
|
ObjectInputStream ois = null;
|
||||||
|
byte[] contentBytes;
|
||||||
|
try {
|
||||||
|
contentBytes = resultSet.getBytes("CONTENT");
|
||||||
|
bais = new ByteArrayInputStream(contentBytes);
|
||||||
|
ois = new ObjectInputStream(bais);
|
||||||
|
profileFeature.setContent(ois.readObject().toString());
|
||||||
|
} finally {
|
||||||
|
if (bais != null) {
|
||||||
|
try {
|
||||||
|
bais.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.warn("Error occurred while closing ByteArrayOutputStream", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ois != null) {
|
||||||
|
try {
|
||||||
|
ois.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.warn("Error occurred while closing ObjectOutputStream", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
featureList.add(profileFeature);
|
featureList.add(profileFeature);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -413,6 +437,14 @@ public class FeatureDAOImpl implements FeatureDAO {
|
|||||||
String msg = "Unable to get the list of the features from database.";
|
String msg = "Unable to get the list of the features from database.";
|
||||||
log.error(msg);
|
log.error(msg);
|
||||||
throw new FeatureManagerDAOException(msg, e);
|
throw new FeatureManagerDAOException(msg, e);
|
||||||
|
} catch (IOException e) {
|
||||||
|
String msg = "Unable to read the byte stream for content";
|
||||||
|
log.error(msg);
|
||||||
|
throw new FeatureManagerDAOException(msg, e);
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
String msg = "Class not found while converting the object";
|
||||||
|
log.error(msg);
|
||||||
|
throw new FeatureManagerDAOException(msg, e);
|
||||||
} finally {
|
} finally {
|
||||||
PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
||||||
this.closeConnection();
|
this.closeConnection();
|
||||||
|
|||||||
@ -29,9 +29,8 @@ import org.wso2.carbon.policy.mgt.core.dao.util.PolicyManagementDAOUtil;
|
|||||||
import org.wso2.carbon.policy.mgt.core.util.PolicyManagerUtil;
|
import org.wso2.carbon.policy.mgt.core.util.PolicyManagerUtil;
|
||||||
|
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
import java.util.ArrayList;
|
import java.sql.Date;
|
||||||
import java.util.Calendar;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class PolicyDAOImpl implements PolicyDAO {
|
public class PolicyDAOImpl implements PolicyDAO {
|
||||||
|
|
||||||
@ -143,81 +142,81 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
return policy;
|
return policy;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
// @Override
|
||||||
public Policy addDatesToPolicy(Date startDate, Date endDate, Policy policy) throws PolicyManagerDAOException {
|
// public Policy addDatesToPolicy(Date startDate, Date endDate, Policy policy) throws PolicyManagerDAOException {
|
||||||
|
//
|
||||||
|
// Connection conn;
|
||||||
|
// PreparedStatement stmt = null;
|
||||||
|
// try {
|
||||||
|
// conn = this.getConnection();
|
||||||
|
// String query = "INSERT INTO DM_DATE (START_DATE, END_DATE, POLICY_ID) VALUES (?, ?, ?)";
|
||||||
|
// stmt = conn.prepareStatement(query);
|
||||||
|
// stmt.setDate(1, startDate);
|
||||||
|
// stmt.setDate(2, endDate);
|
||||||
|
// stmt.setInt(3, policy.getId());
|
||||||
|
// stmt.executeUpdate();
|
||||||
|
//
|
||||||
|
// } catch (SQLException e) {
|
||||||
|
// String msg = "Error occurred while adding the start date (" + startDate + ") and end date (" +
|
||||||
|
// endDate + ") with policy to database.";
|
||||||
|
// log.error(msg, e);
|
||||||
|
// throw new PolicyManagerDAOException(msg, e);
|
||||||
|
// } finally {
|
||||||
|
// PolicyManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
|
// }
|
||||||
|
// return policy;
|
||||||
|
// }
|
||||||
|
|
||||||
Connection conn;
|
// @Override
|
||||||
PreparedStatement stmt = null;
|
// public Policy addTimesToPolicy(int startTime, int endTime, Policy policy) throws PolicyManagerDAOException {
|
||||||
try {
|
//
|
||||||
conn = this.getConnection();
|
// Connection conn;
|
||||||
String query = "INSERT INTO DM_DATE (START_DATE, END_DATE, POLICY_ID) VALUES (?, ?, ?)";
|
// PreparedStatement stmt = null;
|
||||||
stmt = conn.prepareStatement(query);
|
// try {
|
||||||
stmt.setDate(1, startDate);
|
// conn = this.getConnection();
|
||||||
stmt.setDate(2, endDate);
|
// String query = "INSERT INTO DM_TIME (STARTING_TIME, ENDING_TIME, POLICY_ID) VALUES (?, ?, ?)";
|
||||||
stmt.setInt(3, policy.getId());
|
// stmt = conn.prepareStatement(query);
|
||||||
stmt.executeUpdate();
|
// stmt.setInt(1, startTime);
|
||||||
|
// stmt.setInt(2, endTime);
|
||||||
|
// stmt.setInt(3, policy.getId());
|
||||||
|
// stmt.executeUpdate();
|
||||||
|
//
|
||||||
|
// } catch (SQLException e) {
|
||||||
|
// String msg = "Error occurred while adding the start time (" + startTime + ") and end time (" +
|
||||||
|
// endTime + ") with policy to database.";
|
||||||
|
// log.error(msg, e);
|
||||||
|
// throw new PolicyManagerDAOException(msg, e);
|
||||||
|
// } finally {
|
||||||
|
// PolicyManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
|
// }
|
||||||
|
// return policy;
|
||||||
|
// }
|
||||||
|
|
||||||
} catch (SQLException e) {
|
// @Override
|
||||||
String msg = "Error occurred while adding the start date (" + startDate + ") and end date (" +
|
// public Policy addLocationToPolicy(String latitude, String longitude, Policy policy) throws
|
||||||
endDate + ") with policy to database.";
|
// PolicyManagerDAOException {
|
||||||
log.error(msg, e);
|
//
|
||||||
throw new PolicyManagerDAOException(msg, e);
|
// Connection conn;
|
||||||
} finally {
|
// PreparedStatement stmt = null;
|
||||||
PolicyManagementDAOUtil.cleanupResources(stmt, null);
|
// try {
|
||||||
}
|
// conn = this.getConnection();
|
||||||
return policy;
|
// String query = "INSERT INTO DM_LOCATION (LATITUDE, LONGITUDE, POLICY_ID) VALUES (?, ?, ?)";
|
||||||
}
|
// stmt = conn.prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);
|
||||||
|
// stmt.setString(1, latitude);
|
||||||
@Override
|
// stmt.setString(2, longitude);
|
||||||
public Policy addTimesToPolicy(int startTime, int endTime, Policy policy) throws PolicyManagerDAOException {
|
// stmt.setInt(3, policy.getId());
|
||||||
|
// stmt.executeUpdate();
|
||||||
Connection conn;
|
//
|
||||||
PreparedStatement stmt = null;
|
// } catch (SQLException e) {
|
||||||
try {
|
// String msg = "Error occurred while adding the Location (" + latitude + ") (" +
|
||||||
conn = this.getConnection();
|
// longitude + ") with policy to database.";
|
||||||
String query = "INSERT INTO DM_TIME (STARTING_TIME, ENDING_TIME, POLICY_ID) VALUES (?, ?, ?)";
|
// log.error(msg, e);
|
||||||
stmt = conn.prepareStatement(query);
|
// throw new PolicyManagerDAOException(msg, e);
|
||||||
stmt.setInt(1, startTime);
|
// } finally {
|
||||||
stmt.setInt(2, endTime);
|
// PolicyManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
stmt.setInt(3, policy.getId());
|
// }
|
||||||
stmt.executeUpdate();
|
// return policy;
|
||||||
|
// }
|
||||||
} catch (SQLException e) {
|
|
||||||
String msg = "Error occurred while adding the start time (" + startTime + ") and end time (" +
|
|
||||||
endTime + ") with policy to database.";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new PolicyManagerDAOException(msg, e);
|
|
||||||
} finally {
|
|
||||||
PolicyManagementDAOUtil.cleanupResources(stmt, null);
|
|
||||||
}
|
|
||||||
return policy;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Policy addLocationToPolicy(String latitude, String longitude, Policy policy) throws
|
|
||||||
PolicyManagerDAOException {
|
|
||||||
|
|
||||||
Connection conn;
|
|
||||||
PreparedStatement stmt = null;
|
|
||||||
try {
|
|
||||||
conn = this.getConnection();
|
|
||||||
String query = "INSERT INTO DM_LOCATION (LATITUDE, LONGITUDE, POLICY_ID) VALUES (?, ?, ?)";
|
|
||||||
stmt = conn.prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);
|
|
||||||
stmt.setString(1, latitude);
|
|
||||||
stmt.setString(2, longitude);
|
|
||||||
stmt.setInt(3, policy.getId());
|
|
||||||
stmt.executeUpdate();
|
|
||||||
|
|
||||||
} catch (SQLException e) {
|
|
||||||
String msg = "Error occurred while adding the Location (" + latitude + ") (" +
|
|
||||||
longitude + ") with policy to database.";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new PolicyManagerDAOException(msg, e);
|
|
||||||
} finally {
|
|
||||||
PolicyManagementDAOUtil.cleanupResources(stmt, null);
|
|
||||||
}
|
|
||||||
return policy;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Criterion addCriterion(Criterion criteria) throws PolicyManagerDAOException {
|
public Criterion addCriterion(Criterion criteria) throws PolicyManagerDAOException {
|
||||||
@ -230,7 +229,7 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String query = "INSERT INTO DM_CRITERIA (TENANT_ID, NAME) VALUES (?, ?)";
|
String query = "INSERT INTO DM_CRITERIA (TENANT_ID, NAME) VALUES (?, ?)";
|
||||||
stmt = conn.prepareStatement(query);
|
stmt = conn.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
|
||||||
stmt.setInt(1, tenantId);
|
stmt.setInt(1, tenantId);
|
||||||
stmt.setString(2, criteria.getName());
|
stmt.setString(2, criteria.getName());
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
@ -303,6 +302,7 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
throw new PolicyManagerDAOException(msg, e);
|
throw new PolicyManagerDAOException(msg, e);
|
||||||
} finally {
|
} finally {
|
||||||
PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
||||||
|
this.closeConnection();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -333,6 +333,7 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
throw new PolicyManagerDAOException(msg, e);
|
throw new PolicyManagerDAOException(msg, e);
|
||||||
} finally {
|
} finally {
|
||||||
PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
||||||
|
this.closeConnection();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -391,17 +392,165 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Criterion> getAllPolicyCriteria() throws PolicyManagerDAOException {
|
public List<Criterion> getAllPolicyCriteria() throws PolicyManagerDAOException {
|
||||||
return null;
|
|
||||||
|
Connection conn;
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
ResultSet resultSet = null;
|
||||||
|
List<Criterion> criteria = new ArrayList<Criterion>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
conn = this.getConnection();
|
||||||
|
String query = "SELECT * FROM DM_CRITERIA";
|
||||||
|
stmt = conn.prepareStatement(query);
|
||||||
|
resultSet = stmt.executeQuery();
|
||||||
|
|
||||||
|
while (resultSet.next()) {
|
||||||
|
Criterion criterion = new Criterion();
|
||||||
|
criterion.setId(resultSet.getInt("ID"));
|
||||||
|
criterion.setName(resultSet.getString("NAME"));
|
||||||
|
criteria.add(criterion);
|
||||||
|
}
|
||||||
|
return criteria;
|
||||||
|
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while reading the policies from the database.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new PolicyManagerDAOException(msg, e);
|
||||||
|
} finally {
|
||||||
|
PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
||||||
|
this.closeConnection();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Policy addPolicyCriteria(Policy policy) throws PolicyManagerDAOException {
|
public Policy addPolicyCriteria(Policy policy) throws PolicyManagerDAOException {
|
||||||
return null;
|
|
||||||
|
Connection conn;
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
ResultSet generatedKeys = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
conn = this.getConnection();
|
||||||
|
String query = "INSERT INTO DM_POLICY_CRITERIA (CRITERIA_ID, POLICY_ID) VALUES (?, ?)";
|
||||||
|
stmt = conn.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
|
||||||
|
|
||||||
|
List<PolicyCriterion> criteria = policy.getPolicyCriterias();
|
||||||
|
for (PolicyCriterion criterion : criteria) {
|
||||||
|
|
||||||
|
stmt.setInt(1, criterion.getCriteriaId());
|
||||||
|
stmt.setInt(2, policy.getId());
|
||||||
|
stmt.addBatch();
|
||||||
|
}
|
||||||
|
stmt.executeUpdate();
|
||||||
|
|
||||||
|
generatedKeys = stmt.getGeneratedKeys();
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
while (generatedKeys.next()) {
|
||||||
|
policy.getPolicyCriterias().get(i).setId(generatedKeys.getInt(1));
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while inserting the criterion to policy (" + policy.getPolicyName() + ") " +
|
||||||
|
"to database.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new PolicyManagerDAOException(msg, e);
|
||||||
|
} finally {
|
||||||
|
PolicyManagementDAOUtil.cleanupResources(stmt, generatedKeys);
|
||||||
|
}
|
||||||
|
return policy;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PolicyCriteria> getPolicyCriteria(int policyId) throws PolicyManagerDAOException {
|
public boolean addPolicyCriteriaProperties(List<PolicyCriterion> policyCriteria) throws PolicyManagerDAOException {
|
||||||
return null;
|
|
||||||
|
|
||||||
|
Connection conn;
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
conn = this.getConnection();
|
||||||
|
String query = "INSERT INTO DM_POLICY_CRITERIA_PROPERTIES (POLICY_CRITERION_ID, PROP_KEY, PROP_VALUE, CONTENT) VALUES (?, ?, ?, ?)";
|
||||||
|
stmt = conn.prepareStatement(query);
|
||||||
|
|
||||||
|
for (PolicyCriterion criterion : policyCriteria) {
|
||||||
|
|
||||||
|
Properties prop = criterion.getProperties();
|
||||||
|
for (String name : prop.stringPropertyNames()) {
|
||||||
|
|
||||||
|
stmt.setInt(1, criterion.getId());
|
||||||
|
stmt.setString(2, name);
|
||||||
|
stmt.setString(3, prop.getProperty(name));
|
||||||
|
stmt.setObject(4, criterion.getObjectMap());
|
||||||
|
stmt.addBatch();
|
||||||
|
}
|
||||||
|
stmt.executeBatch();
|
||||||
|
}
|
||||||
|
// stmt.executeUpdate();
|
||||||
|
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while inserting the criterion properties to database.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new PolicyManagerDAOException(msg, e);
|
||||||
|
} finally {
|
||||||
|
PolicyManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PolicyCriterion> getPolicyCriteria(int policyId) throws PolicyManagerDAOException {
|
||||||
|
|
||||||
|
|
||||||
|
Connection conn;
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
ResultSet resultSet = null;
|
||||||
|
List<PolicyCriterion> criteria = new ArrayList<PolicyCriterion>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
conn = this.getConnection();
|
||||||
|
String query = "SELECT DPC.ID, DPC.CRITERIA_ID, DPCP.PROP_KEY, DPCP.PROP_VALUE, DPCP.CONTENT FROM " +
|
||||||
|
"DM_POLICY_CRITERIA DPC LEFT JOIN DM_POLICY_CRITERIA_PROPERTIES DPCP " +
|
||||||
|
"ON DPCP.POLICY_CRITERION_ID = DPC.ID RIGHT JOIN DM_CRITERIA DC " +
|
||||||
|
"ON DC.ID=DPC.CRITERIA_ID WHERE DPC.POLICY_ID = ?";
|
||||||
|
stmt = conn.prepareStatement(query);
|
||||||
|
stmt.setInt(1, policyId);
|
||||||
|
resultSet = stmt.executeQuery();
|
||||||
|
|
||||||
|
int criteriaId = 0;
|
||||||
|
|
||||||
|
PolicyCriterion policyCriterion = null;
|
||||||
|
Properties prop = null;
|
||||||
|
while (resultSet.next()) {
|
||||||
|
|
||||||
|
if (criteriaId != resultSet.getInt("ID")) {
|
||||||
|
if (policyCriterion != null) {
|
||||||
|
policyCriterion.setProperties(prop);
|
||||||
|
criteria.add(policyCriterion);
|
||||||
|
}
|
||||||
|
policyCriterion = new PolicyCriterion();
|
||||||
|
prop = new Properties();
|
||||||
|
criteriaId = resultSet.getInt("ID");
|
||||||
|
|
||||||
|
policyCriterion.setId(resultSet.getInt("ID"));
|
||||||
|
policyCriterion.setCriteriaId(resultSet.getInt("CRITERIA_ID"));
|
||||||
|
} else {
|
||||||
|
prop.setProperty(resultSet.getString("PROP_KEY"), resultSet.getString("PROP_VALUE"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while reading the criteria related to policies from the database.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new PolicyManagerDAOException(msg, e);
|
||||||
|
} finally {
|
||||||
|
PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
||||||
|
this.closeConnection();
|
||||||
|
}
|
||||||
|
return criteria;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -411,13 +560,14 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String query = "UPDATE DM_POLICY SET NAME= ?, TENANT_ID = ?, PROFILE_ID = ?, PRIORITY = ? WHERE ID = ?";
|
String query = "UPDATE DM_POLICY SET NAME= ?, TENANT_ID = ?, PROFILE_ID = ?, PRIORITY = ?, COMPLIANCE = ? WHERE ID = ?";
|
||||||
stmt = conn.prepareStatement(query);
|
stmt = conn.prepareStatement(query);
|
||||||
stmt.setString(1, policy.getPolicyName());
|
stmt.setString(1, policy.getPolicyName());
|
||||||
stmt.setInt(2, policy.getTenantId());
|
stmt.setInt(2, policy.getTenantId());
|
||||||
stmt.setInt(3, policy.getProfile().getProfileId());
|
stmt.setInt(3, policy.getProfile().getProfileId());
|
||||||
stmt.setInt(4, policy.getPriorityId());
|
stmt.setInt(4, policy.getPriorityId());
|
||||||
stmt.setInt(5, policy.getId());
|
stmt.setString(5, policy.getCompliance());
|
||||||
|
stmt.setInt(6, policy.getId());
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
@ -450,6 +600,7 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
policy.setTenantId(resultSet.getInt("TENANT_ID"));
|
policy.setTenantId(resultSet.getInt("TENANT_ID"));
|
||||||
policy.setPriorityId(resultSet.getInt("PRIORITY"));
|
policy.setPriorityId(resultSet.getInt("PRIORITY"));
|
||||||
policy.setProfileId(resultSet.getInt("PROFILE_ID"));
|
policy.setProfileId(resultSet.getInt("PROFILE_ID"));
|
||||||
|
policy.setCompliance(resultSet.getString("COMPLIANCE"));
|
||||||
}
|
}
|
||||||
return policy;
|
return policy;
|
||||||
|
|
||||||
@ -483,6 +634,7 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
policy.setPolicyName(resultSet.getString("NAME"));
|
policy.setPolicyName(resultSet.getString("NAME"));
|
||||||
policy.setTenantId(resultSet.getInt("TENANT_ID"));
|
policy.setTenantId(resultSet.getInt("TENANT_ID"));
|
||||||
policy.setPriorityId(resultSet.getInt("PRIORITY"));
|
policy.setPriorityId(resultSet.getInt("PRIORITY"));
|
||||||
|
policy.setCompliance(resultSet.getString("COMPLIANCE"));
|
||||||
}
|
}
|
||||||
return policy;
|
return policy;
|
||||||
|
|
||||||
@ -517,6 +669,7 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
policy.setPolicyName(resultSet.getString("NAME"));
|
policy.setPolicyName(resultSet.getString("NAME"));
|
||||||
policy.setTenantId(resultSet.getInt("TENANT_ID"));
|
policy.setTenantId(resultSet.getInt("TENANT_ID"));
|
||||||
policy.setPriorityId(resultSet.getInt("PRIORITY"));
|
policy.setPriorityId(resultSet.getInt("PRIORITY"));
|
||||||
|
policy.setCompliance(resultSet.getString("COMPLIANCE"));
|
||||||
policies.add(policy);
|
policies.add(policy);
|
||||||
}
|
}
|
||||||
return policies;
|
return policies;
|
||||||
@ -599,108 +752,98 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public PolicyTimes getTimesOfPolicy(Policy policy) throws PolicyManagerDAOException {
|
// public PolicyTimes getTimesOfPolicy(Policy policy) throws PolicyManagerDAOException {
|
||||||
|
//
|
||||||
Connection conn;
|
// Connection conn;
|
||||||
PreparedStatement stmt = null;
|
// PreparedStatement stmt = null;
|
||||||
ResultSet resultSet = null;
|
// ResultSet resultSet = null;
|
||||||
PolicyTimes times = new PolicyTimes();
|
// PolicyTimes times = new PolicyTimes();
|
||||||
|
//
|
||||||
try {
|
// try {
|
||||||
conn = this.getConnection();
|
// conn = this.getConnection();
|
||||||
String query = "SELECT STARTING_TIME, ENDING_TIME FROM DM_TIME WHERE POLICY_ID = ?";
|
// String query = "SELECT STARTING_TIME, ENDING_TIME FROM DM_TIME WHERE POLICY_ID = ?";
|
||||||
stmt = conn.prepareStatement(query);
|
// stmt = conn.prepareStatement(query);
|
||||||
stmt.setInt(1, policy.getId());
|
// stmt.setInt(1, policy.getId());
|
||||||
resultSet = stmt.executeQuery();
|
// resultSet = stmt.executeQuery();
|
||||||
|
//
|
||||||
while (resultSet.next()) {
|
// while (resultSet.next()) {
|
||||||
policy.setStartTime(resultSet.getInt("STARTING_TIME"));
|
//
|
||||||
policy.setEndTime(resultSet.getInt("ENDING_TIME"));
|
// times.setStartTime(resultSet.getInt("STARTING_TIME"));
|
||||||
|
// times.setEndTime(resultSet.getInt("ENDING_TIME"));
|
||||||
times.setStartTime(resultSet.getInt("STARTING_TIME"));
|
// }
|
||||||
times.setEndTime(resultSet.getInt("ENDING_TIME"));
|
//
|
||||||
}
|
// } catch (SQLException e) {
|
||||||
|
// String msg = "Error occurred while getting the start time and end time related to policies.";
|
||||||
} catch (SQLException e) {
|
// log.error(msg, e);
|
||||||
String msg = "Error occurred while getting the start time and end time related to policies.";
|
// throw new PolicyManagerDAOException(msg, e);
|
||||||
log.error(msg, e);
|
// } finally {
|
||||||
throw new PolicyManagerDAOException(msg, e);
|
// PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
||||||
} finally {
|
// this.closeConnection();
|
||||||
PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
// }
|
||||||
this.closeConnection();
|
// return times;
|
||||||
}
|
// }
|
||||||
return times;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public PolicyDates getDatesOfPolicy(Policy policy) throws PolicyManagerDAOException {
|
// public PolicyDates getDatesOfPolicy(Policy policy) throws PolicyManagerDAOException {
|
||||||
|
//
|
||||||
Connection conn;
|
// Connection conn;
|
||||||
PreparedStatement stmt = null;
|
// PreparedStatement stmt = null;
|
||||||
ResultSet resultSet = null;
|
// ResultSet resultSet = null;
|
||||||
PolicyDates dates = new PolicyDates();
|
// PolicyDates dates = new PolicyDates();
|
||||||
|
//
|
||||||
try {
|
// try {
|
||||||
conn = this.getConnection();
|
// conn = this.getConnection();
|
||||||
String query = "SELECT START_DATE, END_DATE FROM DM_DATE WHERE POLICY_ID = ?";
|
// String query = "SELECT START_DATE, END_DATE FROM DM_DATE WHERE POLICY_ID = ?";
|
||||||
stmt = conn.prepareStatement(query);
|
// stmt = conn.prepareStatement(query);
|
||||||
stmt.setInt(1, policy.getId());
|
// stmt.setInt(1, policy.getId());
|
||||||
resultSet = stmt.executeQuery();
|
// resultSet = stmt.executeQuery();
|
||||||
|
//
|
||||||
while (resultSet.next()) {
|
// while (resultSet.next()) {
|
||||||
|
// dates.setStartDate(resultSet.getDate("START_DATE"));
|
||||||
policy.setStartDate(resultSet.getDate("START_DATE"));
|
// dates.setEndDate(resultSet.getDate("END_DATE"));
|
||||||
policy.setEndDate(resultSet.getDate("END_DATE"));
|
// }
|
||||||
|
//
|
||||||
dates.setStartDate(resultSet.getDate("START_DATE"));
|
// } catch (SQLException e) {
|
||||||
dates.setEndDate(resultSet.getDate("END_DATE"));
|
// String msg = "Error occurred while getting the start date and end date related to policies.";
|
||||||
}
|
// log.error(msg, e);
|
||||||
|
// throw new PolicyManagerDAOException(msg, e);
|
||||||
} catch (SQLException e) {
|
// } finally {
|
||||||
String msg = "Error occurred while getting the start date and end date related to policies.";
|
// PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
||||||
log.error(msg, e);
|
// this.closeConnection();
|
||||||
throw new PolicyManagerDAOException(msg, e);
|
// }
|
||||||
} finally {
|
// return dates;
|
||||||
PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
// }
|
||||||
this.closeConnection();
|
|
||||||
}
|
|
||||||
return dates;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public PolicyLocations getLocationsOfPolicy(Policy policy) throws PolicyManagerDAOException {
|
// public PolicyLocations getLocationsOfPolicy(Policy policy) throws PolicyManagerDAOException {
|
||||||
|
//
|
||||||
Connection conn;
|
// Connection conn;
|
||||||
PreparedStatement stmt = null;
|
// PreparedStatement stmt = null;
|
||||||
ResultSet resultSet = null;
|
// ResultSet resultSet = null;
|
||||||
PolicyLocations locations = new PolicyLocations();
|
// PolicyLocations locations = new PolicyLocations();
|
||||||
|
//
|
||||||
try {
|
// try {
|
||||||
conn = this.getConnection();
|
// conn = this.getConnection();
|
||||||
String query = "SELECT LATITUDE, LONGITUDE FROM DM_LOCATION WHERE POLICY_ID = ?";
|
// String query = "SELECT LATITUDE, LONGITUDE FROM DM_LOCATION WHERE POLICY_ID = ?";
|
||||||
stmt = conn.prepareStatement(query);
|
// stmt = conn.prepareStatement(query);
|
||||||
stmt.setInt(1, policy.getId());
|
// stmt.setInt(1, policy.getId());
|
||||||
resultSet = stmt.executeQuery();
|
// resultSet = stmt.executeQuery();
|
||||||
|
//
|
||||||
while (resultSet.next()) {
|
// while (resultSet.next()) {
|
||||||
|
// locations.setLatitude(resultSet.getString("LATITUDE"));
|
||||||
policy.setLatitude(resultSet.getString("LATITUDE"));
|
// locations.setLongitude(resultSet.getString("LONGITUDE"));
|
||||||
policy.setLongitude(resultSet.getString("LONGITUDE"));
|
// }
|
||||||
|
//
|
||||||
locations.setLatitude(resultSet.getString("LATITUDE"));
|
// } catch (SQLException e) {
|
||||||
locations.setLongitude(resultSet.getString("LONGITUDE"));
|
// String msg = "Error occurred while getting the start time and end time related to policies.";
|
||||||
}
|
// log.error(msg, e);
|
||||||
|
// throw new PolicyManagerDAOException(msg, e);
|
||||||
} catch (SQLException e) {
|
// } finally {
|
||||||
String msg = "Error occurred while getting the start time and end time related to policies.";
|
// PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
||||||
log.error(msg, e);
|
// this.closeConnection();
|
||||||
throw new PolicyManagerDAOException(msg, e);
|
// }
|
||||||
} finally {
|
// return locations;
|
||||||
PolicyManagementDAOUtil.cleanupResources(stmt, resultSet);
|
// }
|
||||||
this.closeConnection();
|
|
||||||
}
|
|
||||||
return locations;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addEffectivePolicyToDevice(int deviceId, int policyId, List<ProfileFeature> profileFeatures)
|
public void addEffectivePolicyToDevice(int deviceId, int policyId, List<ProfileFeature> profileFeatures)
|
||||||
@ -972,6 +1115,13 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
stmt.setInt(1, policyId);
|
stmt.setInt(1, policyId);
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
|
|
||||||
|
|
||||||
|
String deleteCriteria = "DELETE FROM DM_POLICY_CRITERIA WHERE POLICY_ID = ?";
|
||||||
|
stmt = conn.prepareStatement(deleteCriteria);
|
||||||
|
stmt.setInt(1, policyId);
|
||||||
|
stmt.executeUpdate();
|
||||||
|
|
||||||
|
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Policy (" + policyId + ") related configs deleted from database.");
|
log.debug("Policy (" + policyId + ") related configs deleted from database.");
|
||||||
}
|
}
|
||||||
@ -1007,13 +1157,14 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String query = "INSERT INTO DM_POLICY (NAME, PROFILE_ID, TENANT_ID, PRIORITY) VALUES (?, ?, ?, ?)";
|
String query = "INSERT INTO DM_POLICY (NAME, PROFILE_ID, TENANT_ID, PRIORITY, COMPLIANCE) VALUES (?, ?, ?, ?, ?)";
|
||||||
stmt = conn.prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);
|
||||||
|
|
||||||
stmt.setString(1, policy.getPolicyName());
|
stmt.setString(1, policy.getPolicyName());
|
||||||
stmt.setInt(2, policy.getProfile().getProfileId());
|
stmt.setInt(2, policy.getProfile().getProfileId());
|
||||||
stmt.setInt(3, tenantId);
|
stmt.setInt(3, tenantId);
|
||||||
stmt.setInt(4, readHighestPriorityOfPolicies());
|
stmt.setInt(4, readHighestPriorityOfPolicies());
|
||||||
|
stmt.setString(5, policy.getCompliance());
|
||||||
|
|
||||||
int affectedRows = stmt.executeUpdate();
|
int affectedRows = stmt.executeUpdate();
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,84 @@
|
|||||||
|
/*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
package org.wso2.carbon.policy.mgt.core.impl;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.policy.mgt.common.Policy;
|
||||||
|
import org.wso2.carbon.policy.mgt.common.PolicyFilter;
|
||||||
|
import org.wso2.carbon.policy.mgt.core.util.PolicyManagementConstants;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class PolicyFilterImpl implements PolicyFilter {
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(PolicyFilterImpl.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void filterRolesBasedPolicies(String roles[], List<Policy> policies) {
|
||||||
|
|
||||||
|
List<Policy> temp = new ArrayList<Policy>();
|
||||||
|
for (Policy policy : policies) {
|
||||||
|
|
||||||
|
List<String> tempRoles = policy.getRoles();
|
||||||
|
if (PolicyManagementConstants.ANY.equalsIgnoreCase(tempRoles.get(0))) {
|
||||||
|
temp.add(policy);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (String role : roles) {
|
||||||
|
for (String policyRole : tempRoles) {
|
||||||
|
if (role.equalsIgnoreCase(policyRole)) {
|
||||||
|
temp.add(policy);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
policies = temp;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void filterOwnershipTypeBasedPolicies(String ownershipType, List<Policy> policies) {
|
||||||
|
|
||||||
|
List<Policy> temp = new ArrayList<Policy>();
|
||||||
|
for (Policy policy : policies) {
|
||||||
|
if (ownershipType.equalsIgnoreCase(policy.getOwnershipType())) {
|
||||||
|
temp.add(policy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
policies = temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void filterDeviceTypeBasedPolicies(String deviceType, List<Policy> policies) {
|
||||||
|
List<Policy> temp = new ArrayList<Policy>();
|
||||||
|
for (Policy policy : policies) {
|
||||||
|
if (deviceType.equalsIgnoreCase(policy.getProfile().getDeviceType().getName())) {
|
||||||
|
temp.add(policy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
policies = temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -27,11 +27,7 @@ import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
|||||||
import org.wso2.carbon.device.mgt.core.dto.DeviceType;
|
import org.wso2.carbon.device.mgt.core.dto.DeviceType;
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementService;
|
import org.wso2.carbon.device.mgt.core.service.DeviceManagementService;
|
||||||
import org.wso2.carbon.device.mgt.common.Feature;
|
import org.wso2.carbon.device.mgt.common.Feature;
|
||||||
import org.wso2.carbon.policy.mgt.common.FeatureManagementException;
|
import org.wso2.carbon.policy.mgt.common.*;
|
||||||
import org.wso2.carbon.policy.mgt.common.PIPDevice;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.Policy;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.PolicyInformationPoint;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
|
|
||||||
import org.wso2.carbon.policy.mgt.core.internal.PolicyManagementDataHolder;
|
import org.wso2.carbon.policy.mgt.core.internal.PolicyManagementDataHolder;
|
||||||
import org.wso2.carbon.policy.mgt.core.mgt.FeatureManager;
|
import org.wso2.carbon.policy.mgt.core.mgt.FeatureManager;
|
||||||
import org.wso2.carbon.policy.mgt.core.mgt.PolicyManager;
|
import org.wso2.carbon.policy.mgt.core.mgt.PolicyManager;
|
||||||
@ -92,19 +88,30 @@ public class PolicyInformationPointImpl implements PolicyInformationPoint {
|
|||||||
@Override
|
@Override
|
||||||
public List<Policy> getRelatedPolicies(PIPDevice pipDevice) throws PolicyManagementException {
|
public List<Policy> getRelatedPolicies(PIPDevice pipDevice) throws PolicyManagementException {
|
||||||
|
|
||||||
List<List<Policy>> policies = new ArrayList<List<Policy>>();
|
// List<List<Policy>> policies = new ArrayList<List<Policy>>();
|
||||||
|
List<Policy> policies = new ArrayList<Policy>();
|
||||||
try {
|
try {
|
||||||
// Get the device type related policies
|
// Get the device type related policies
|
||||||
policies.add(policyManager.getPoliciesOfDeviceType(pipDevice.getDeviceType().getName()));
|
// policies.add(policyManager.getPoliciesOfDeviceType(pipDevice.getDeviceType().getName()));
|
||||||
|
|
||||||
// Get the roles related policies
|
|
||||||
for (String role : pipDevice.getRoles()) {
|
|
||||||
policies.add(policyManager.getPoliciesOfRole(role));
|
|
||||||
}
|
|
||||||
// Get policy related to the device
|
|
||||||
policies.add(policyManager.getPoliciesOfDevice(pipDevice.getDeviceIdentifier()));
|
|
||||||
|
|
||||||
return removeDuplicatePolicies(policies);
|
// Commented out because these are already taken when device type based policies retrieved
|
||||||
|
|
||||||
|
// // Get the roles related policies
|
||||||
|
// for (String role : pipDevice.getRoles()) {
|
||||||
|
// policies.add(policyManager.getPoliciesOfRole(role));
|
||||||
|
// }
|
||||||
|
// // Get policy related to the device
|
||||||
|
// policies.add(policyManager.getPoliciesOfDevice(pipDevice.getDeviceIdentifier()));
|
||||||
|
|
||||||
|
policies = policyManager.getPoliciesOfDeviceType(pipDevice.getDeviceType().getName());
|
||||||
|
|
||||||
|
PolicyFilter policyFilter = new PolicyFilterImpl();
|
||||||
|
policyFilter.filterDeviceTypeBasedPolicies(pipDevice.getDeviceType().getName(), policies);
|
||||||
|
policyFilter.filterOwnershipTypeBasedPolicies(pipDevice.getOwnershipType(), policies);
|
||||||
|
policyFilter.filterRolesBasedPolicies(pipDevice.getRoles(), policies);
|
||||||
|
|
||||||
|
return policies;
|
||||||
} catch (PolicyManagementException e) {
|
} catch (PolicyManagementException e) {
|
||||||
String msg = "Error occurred when retrieving related to given device " +
|
String msg = "Error occurred when retrieving related to given device " +
|
||||||
pipDevice.getDeviceIdentifier().getId() + " " + pipDevice.getDeviceIdentifier().getType() + ".";
|
pipDevice.getDeviceIdentifier().getId() + " " + pipDevice.getDeviceIdentifier().getType() + ".";
|
||||||
|
|||||||
@ -45,7 +45,6 @@ public interface FeatureManager {
|
|||||||
|
|
||||||
List<ProfileFeature> updateProfileFeatures(List<ProfileFeature> features, int profileId) throws FeatureManagementException;
|
List<ProfileFeature> updateProfileFeatures(List<ProfileFeature> features, int profileId) throws FeatureManagementException;
|
||||||
|
|
||||||
List<Feature> getAllFeatures() throws FeatureManagementException;
|
|
||||||
|
|
||||||
List<Feature> getAllFeatures(String deviceType) throws FeatureManagementException;
|
List<Feature> getAllFeatures(String deviceType) throws FeatureManagementException;
|
||||||
|
|
||||||
|
|||||||
@ -273,17 +273,7 @@ public class FeatureManagerImpl implements FeatureManager {
|
|||||||
}
|
}
|
||||||
return features;
|
return features;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Feature> getAllFeatures() throws FeatureManagementException {
|
|
||||||
try {
|
|
||||||
return featureDAO.getAllFeatures();
|
|
||||||
} catch (FeatureManagerDAOException e) {
|
|
||||||
String msg = "Error occurred while getting the features.";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new FeatureManagementException(msg, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Feature> getAllFeatures(String deviceType) throws FeatureManagementException {
|
public List<Feature> getAllFeatures(String deviceType) throws FeatureManagementException {
|
||||||
|
|||||||
@ -24,7 +24,6 @@ import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
|||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceDAO;
|
import org.wso2.carbon.device.mgt.core.dao.DeviceDAO;
|
||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
|
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
|
||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceTypeDAO;
|
|
||||||
import org.wso2.carbon.device.mgt.core.dto.Device;
|
import org.wso2.carbon.device.mgt.core.dto.Device;
|
||||||
import org.wso2.carbon.policy.mgt.common.*;
|
import org.wso2.carbon.policy.mgt.common.*;
|
||||||
import org.wso2.carbon.policy.mgt.core.dao.*;
|
import org.wso2.carbon.policy.mgt.core.dao.*;
|
||||||
@ -40,7 +39,7 @@ public class PolicyManagerImpl implements PolicyManager {
|
|||||||
private ProfileDAO profileDAO;
|
private ProfileDAO profileDAO;
|
||||||
private FeatureDAO featureDAO;
|
private FeatureDAO featureDAO;
|
||||||
private DeviceDAO deviceDAO;
|
private DeviceDAO deviceDAO;
|
||||||
private DeviceTypeDAO deviceTypeDAO;
|
// private DeviceTypeDAO deviceTypeDAO;
|
||||||
private ProfileManager profileManager;
|
private ProfileManager profileManager;
|
||||||
private static Log log = LogFactory.getLog(PolicyManagerImpl.class);
|
private static Log log = LogFactory.getLog(PolicyManagerImpl.class);
|
||||||
|
|
||||||
@ -49,7 +48,7 @@ public class PolicyManagerImpl implements PolicyManager {
|
|||||||
this.profileDAO = PolicyManagementDAOFactory.getProfileDAO();
|
this.profileDAO = PolicyManagementDAOFactory.getProfileDAO();
|
||||||
this.featureDAO = PolicyManagementDAOFactory.getFeatureDAO();
|
this.featureDAO = PolicyManagementDAOFactory.getFeatureDAO();
|
||||||
this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
|
this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
|
||||||
this.deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO();
|
// this.deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO();
|
||||||
this.profileManager = new ProfileManagerImpl();
|
this.profileManager = new ProfileManagerImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,17 +76,32 @@ public class PolicyManagerImpl implements PolicyManager {
|
|||||||
policyDAO.addPolicyToDevice(policy.getDevices(), policy);
|
policyDAO.addPolicyToDevice(policy.getDevices(), policy);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (policy.getEndDate() != null & policy.getStartDate() != null) {
|
if (policy.getPolicyCriterias() != null) {
|
||||||
policyDAO.addDatesToPolicy(policy.getStartDate(), policy.getEndDate(), policy);
|
List<PolicyCriterion> criteria = policy.getPolicyCriterias();
|
||||||
|
for (PolicyCriterion criterion : criteria) {
|
||||||
|
if (!policyDAO.checkCriterionExists(criterion.getName())) {
|
||||||
|
Criterion criteriaObj = new Criterion();
|
||||||
|
criteriaObj.setName(criterion.getName());
|
||||||
|
policyDAO.addCriterion(criteriaObj);
|
||||||
|
criterion.setCriteriaId(criteriaObj.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
policyDAO.addPolicyCriteria(policy);
|
||||||
|
policyDAO.addPolicyCriteriaProperties(policy.getPolicyCriterias());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (policy.getStartTime() != 0 & policy.getEndTime() != 0) {
|
// if (policy.getEndDate() != null & policy.getStartDate() != null) {
|
||||||
policyDAO.addTimesToPolicy(policy.getStartTime(), policy.getEndTime(), policy);
|
// policyDAO.addDatesToPolicy(policy.getStartDate(), policy.getEndDate(), policy);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (policy.getLatitude() != null && policy.getLongitude() != null) {
|
// if (policy.getStartTime() != 0 & policy.getEndTime() != 0) {
|
||||||
policyDAO.addLocationToPolicy(policy.getLatitude(), policy.getLongitude(), policy);
|
// policyDAO.addTimesToPolicy(policy.getStartTime(), policy.getEndTime(), policy);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
// if (policy.getLatitude() != null && policy.getLongitude() != null) {
|
||||||
|
// policyDAO.addLocationToPolicy(policy.getLatitude(), policy.getLongitude(), policy);
|
||||||
|
// }
|
||||||
PolicyManagementDAOFactory.commitTransaction();
|
PolicyManagementDAOFactory.commitTransaction();
|
||||||
|
|
||||||
} catch (PolicyManagerDAOException e) {
|
} catch (PolicyManagerDAOException e) {
|
||||||
@ -145,17 +159,32 @@ public class PolicyManagerImpl implements PolicyManager {
|
|||||||
policyDAO.addPolicyToDevice(policy.getDevices(), policy);
|
policyDAO.addPolicyToDevice(policy.getDevices(), policy);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (policy.getEndDate() != null & policy.getStartDate() != null) {
|
if (policy.getPolicyCriterias() != null) {
|
||||||
policyDAO.addDatesToPolicy(policy.getStartDate(), policy.getEndDate(), policy);
|
List<PolicyCriterion> criteria = policy.getPolicyCriterias();
|
||||||
|
for (PolicyCriterion criterion : criteria) {
|
||||||
|
if (!policyDAO.checkCriterionExists(criterion.getName())) {
|
||||||
|
Criterion criteriaObj = new Criterion();
|
||||||
|
criteriaObj.setName(criterion.getName());
|
||||||
|
policyDAO.addCriterion(criteriaObj);
|
||||||
|
criterion.setCriteriaId(criteriaObj.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
policyDAO.addPolicyCriteria(policy);
|
||||||
|
policyDAO.addPolicyCriteriaProperties(policy.getPolicyCriterias());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (policy.getStartTime() != 0 & policy.getEndTime() != 0) {
|
// if (policy.getEndDate() != null & policy.getStartDate() != null) {
|
||||||
policyDAO.addTimesToPolicy(policy.getStartTime(), policy.getEndTime(), policy);
|
// policyDAO.addDatesToPolicy(policy.getStartDate(), policy.getEndDate(), policy);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (policy.getLatitude() != null && policy.getLongitude() != null) {
|
// if (policy.getStartTime() != 0 & policy.getEndTime() != 0) {
|
||||||
policyDAO.addLocationToPolicy(policy.getLatitude(), policy.getLongitude(), policy);
|
// policyDAO.addTimesToPolicy(policy.getStartTime(), policy.getEndTime(), policy);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
// if (policy.getLatitude() != null && policy.getLongitude() != null) {
|
||||||
|
// policyDAO.addLocationToPolicy(policy.getLatitude(), policy.getLongitude(), policy);
|
||||||
|
// }
|
||||||
|
|
||||||
PolicyManagementDAOFactory.commitTransaction();
|
PolicyManagementDAOFactory.commitTransaction();
|
||||||
|
|
||||||
@ -335,9 +364,9 @@ public class PolicyManagerImpl implements PolicyManager {
|
|||||||
policy = policyDAO.getPolicyByProfileID(profileId);
|
policy = policyDAO.getPolicyByProfileID(profileId);
|
||||||
deviceList = getPolicyAppliedDevicesIds(policy.getId());
|
deviceList = getPolicyAppliedDevicesIds(policy.getId());
|
||||||
roleNames = policyDAO.getPolicyAppliedRoles(policy.getId());
|
roleNames = policyDAO.getPolicyAppliedRoles(policy.getId());
|
||||||
policyDAO.getDatesOfPolicy(policy);
|
// policyDAO.getDatesOfPolicy(policy);
|
||||||
policyDAO.getTimesOfPolicy(policy);
|
// policyDAO.getTimesOfPolicy(policy);
|
||||||
policyDAO.getLocationsOfPolicy(policy);
|
// policyDAO.getLocationsOfPolicy(policy);
|
||||||
|
|
||||||
profile = profileDAO.getProfiles(profileId);
|
profile = profileDAO.getProfiles(profileId);
|
||||||
|
|
||||||
@ -368,9 +397,9 @@ public class PolicyManagerImpl implements PolicyManager {
|
|||||||
policy = policyDAO.getPolicy(policyId);
|
policy = policyDAO.getPolicy(policyId);
|
||||||
deviceList = getPolicyAppliedDevicesIds(policyId);
|
deviceList = getPolicyAppliedDevicesIds(policyId);
|
||||||
roleNames = policyDAO.getPolicyAppliedRoles(policyId);
|
roleNames = policyDAO.getPolicyAppliedRoles(policyId);
|
||||||
policyDAO.getDatesOfPolicy(policy);
|
// policyDAO.getDatesOfPolicy(policy);
|
||||||
policyDAO.getTimesOfPolicy(policy);
|
// policyDAO.getTimesOfPolicy(policy);
|
||||||
policyDAO.getLocationsOfPolicy(policy);
|
// policyDAO.getLocationsOfPolicy(policy);
|
||||||
|
|
||||||
Profile profile = profileDAO.getProfiles(policy.getProfileId());
|
Profile profile = profileDAO.getProfiles(policy.getProfileId());
|
||||||
|
|
||||||
@ -397,7 +426,8 @@ public class PolicyManagerImpl implements PolicyManager {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
policyList = policyDAO.getAllPolicies();
|
policyList = policyDAO.getAllPolicies();
|
||||||
List<Profile> profileList = profileDAO.getAllProfiles();
|
// List<Profile> profileList = profileDAO.getAllProfiles();
|
||||||
|
List<Profile> profileList = profileManager.getAllProfiles();
|
||||||
|
|
||||||
for (Policy policy : policyList) {
|
for (Policy policy : policyList) {
|
||||||
for (Profile profile : profileList) {
|
for (Profile profile : profileList) {
|
||||||
@ -407,16 +437,17 @@ public class PolicyManagerImpl implements PolicyManager {
|
|||||||
}
|
}
|
||||||
policy.setDevices(getPolicyAppliedDevicesIds(policy.getId()));
|
policy.setDevices(getPolicyAppliedDevicesIds(policy.getId()));
|
||||||
policy.setRoles(policyDAO.getPolicyAppliedRoles(policy.getId()));
|
policy.setRoles(policyDAO.getPolicyAppliedRoles(policy.getId()));
|
||||||
policyDAO.getDatesOfPolicy(policy);
|
policy.setPolicyCriterias(policyDAO.getPolicyCriteria(policy.getId()));
|
||||||
policyDAO.getTimesOfPolicy(policy);
|
// policyDAO.getDatesOfPolicy(policy);
|
||||||
policyDAO.getLocationsOfPolicy(policy);
|
// policyDAO.getTimesOfPolicy(policy);
|
||||||
|
// policyDAO.getLocationsOfPolicy(policy);
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (PolicyManagerDAOException e) {
|
} catch (PolicyManagerDAOException e) {
|
||||||
String msg = "Error occurred while getting all the policies.";
|
String msg = "Error occurred while getting all the policies.";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
throw new PolicyManagementException(msg, e);
|
throw new PolicyManagementException(msg, e);
|
||||||
} catch (ProfileManagerDAOException e) {
|
} catch (ProfileManagementException e) {
|
||||||
String msg = "Error occurred while getting all the profiles.";
|
String msg = "Error occurred while getting all the profiles.";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
throw new PolicyManagementException(msg, e);
|
throw new PolicyManagementException(msg, e);
|
||||||
@ -432,7 +463,7 @@ public class PolicyManagerImpl implements PolicyManager {
|
|||||||
try {
|
try {
|
||||||
Device device = deviceDAO.getDevice(deviceIdentifier);
|
Device device = deviceDAO.getDevice(deviceIdentifier);
|
||||||
policyIdList = policyDAO.getPolicyIdsOfDevice(device);
|
policyIdList = policyDAO.getPolicyIdsOfDevice(device);
|
||||||
List<Policy> tempPolicyList = policyDAO.getAllPolicies();
|
List<Policy> tempPolicyList = this.getPolicies();
|
||||||
|
|
||||||
for (Policy policy : tempPolicyList) {
|
for (Policy policy : tempPolicyList) {
|
||||||
for (Integer i : policyIdList) {
|
for (Integer i : policyIdList) {
|
||||||
@ -465,7 +496,7 @@ public class PolicyManagerImpl implements PolicyManager {
|
|||||||
// DeviceType deviceType = deviceTypeDAO.getDeviceType(deviceTypeName);
|
// DeviceType deviceType = deviceTypeDAO.getDeviceType(deviceTypeName);
|
||||||
|
|
||||||
List<Profile> profileList = profileManager.getProfilesOfDeviceType(deviceTypeName);
|
List<Profile> profileList = profileManager.getProfilesOfDeviceType(deviceTypeName);
|
||||||
List<Policy> allPolicies = policyDAO.getAllPolicies();
|
List<Policy> allPolicies = this.getPolicies();
|
||||||
|
|
||||||
|
|
||||||
for (Profile profile : profileList) {
|
for (Profile profile : profileList) {
|
||||||
@ -477,10 +508,10 @@ public class PolicyManagerImpl implements PolicyManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (PolicyManagerDAOException e) {
|
// } catch (PolicyManagerDAOException e) {
|
||||||
String msg = "Error occurred while getting all the policies.";
|
// String msg = "Error occurred while getting all the policies.";
|
||||||
log.error(msg, e);
|
// log.error(msg, e);
|
||||||
throw new PolicyManagementException(msg, e);
|
// throw new PolicyManagementException(msg, e);
|
||||||
// } catch (ProfileManagerDAOException e) {
|
// } catch (ProfileManagerDAOException e) {
|
||||||
// String msg = "Error occurred while getting the profiles related to device type (" + deviceTypeName + ")";
|
// String msg = "Error occurred while getting the profiles related to device type (" + deviceTypeName + ")";
|
||||||
// log.error(msg, e);
|
// log.error(msg, e);
|
||||||
@ -505,7 +536,7 @@ public class PolicyManagerImpl implements PolicyManager {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
policyIdList = policyDAO.getPolicyOfRole(roleName);
|
policyIdList = policyDAO.getPolicyOfRole(roleName);
|
||||||
List<Policy> tempPolicyList = policyDAO.getAllPolicies();
|
List<Policy> tempPolicyList = this.getPolicies();
|
||||||
|
|
||||||
for (Policy policy : tempPolicyList) {
|
for (Policy policy : tempPolicyList) {
|
||||||
for (Integer i : policyIdList) {
|
for (Integer i : policyIdList) {
|
||||||
@ -531,7 +562,7 @@ public class PolicyManagerImpl implements PolicyManager {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
policyIdList = policyDAO.getPolicyOfUser(username);
|
policyIdList = policyDAO.getPolicyOfUser(username);
|
||||||
List<Policy> tempPolicyList = policyDAO.getAllPolicies();
|
List<Policy> tempPolicyList = this.getPolicies();
|
||||||
|
|
||||||
for (Policy policy : tempPolicyList) {
|
for (Policy policy : tempPolicyList) {
|
||||||
for (Integer i : policyIdList) {
|
for (Integer i : policyIdList) {
|
||||||
|
|||||||
@ -19,5 +19,8 @@
|
|||||||
package org.wso2.carbon.policy.mgt.core.util;
|
package org.wso2.carbon.policy.mgt.core.util;
|
||||||
|
|
||||||
public final class PolicyManagementConstants {
|
public final class PolicyManagementConstants {
|
||||||
|
|
||||||
public static final String DEVICE_CONFIG_XML_NAME = "cdm-config.xml";
|
public static final String DEVICE_CONFIG_XML_NAME = "cdm-config.xml";
|
||||||
|
public static final String ANY = "ANY";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,13 +32,7 @@ import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
|||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceTypeDAO;
|
import org.wso2.carbon.device.mgt.core.dao.DeviceTypeDAO;
|
||||||
import org.wso2.carbon.device.mgt.core.dto.Device;
|
import org.wso2.carbon.device.mgt.core.dto.Device;
|
||||||
import org.wso2.carbon.device.mgt.common.Feature;
|
import org.wso2.carbon.device.mgt.common.Feature;
|
||||||
import org.wso2.carbon.policy.mgt.common.FeatureManagementException;
|
import org.wso2.carbon.policy.mgt.common.*;
|
||||||
import org.wso2.carbon.policy.mgt.common.Policy;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.PolicyAdministratorPoint;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.Profile;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.ProfileFeature;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.ProfileManagementException;
|
|
||||||
import org.wso2.carbon.policy.mgt.core.common.DBTypes;
|
import org.wso2.carbon.policy.mgt.core.common.DBTypes;
|
||||||
import org.wso2.carbon.policy.mgt.core.common.TestDBConfiguration;
|
import org.wso2.carbon.policy.mgt.core.common.TestDBConfiguration;
|
||||||
import org.wso2.carbon.policy.mgt.core.common.TestDBConfigurations;
|
import org.wso2.carbon.policy.mgt.core.common.TestDBConfigurations;
|
||||||
@ -62,6 +56,7 @@ import java.sql.Connection;
|
|||||||
import java.sql.Statement;
|
import java.sql.Statement;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
public class PolicyDAOTestCase {
|
public class PolicyDAOTestCase {
|
||||||
|
|
||||||
@ -250,6 +245,15 @@ public class PolicyDAOTestCase {
|
|||||||
policyManager.addPolicy(policy);
|
policyManager.addPolicy(policy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test(dependsOnMethods = ("addPolicyToDevice"))
|
||||||
|
public void addThirdPolicy() throws PolicyManagementException {
|
||||||
|
|
||||||
|
PolicyManager policyManager = new PolicyManagerImpl();
|
||||||
|
policy = PolicyCreator.createPolicy4(profile);
|
||||||
|
policyManager.addPolicy(policy);
|
||||||
|
}
|
||||||
|
|
||||||
@Test(dependsOnMethods = ("addNewPolicy"))
|
@Test(dependsOnMethods = ("addNewPolicy"))
|
||||||
public void getPolicies() throws PolicyManagementException {
|
public void getPolicies() throws PolicyManagementException {
|
||||||
PolicyAdministratorPoint policyAdministratorPoint = new PolicyAdministratorPointImpl();
|
PolicyAdministratorPoint policyAdministratorPoint = new PolicyAdministratorPointImpl();
|
||||||
@ -302,5 +306,66 @@ public class PolicyDAOTestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test(dependsOnMethods = ("getRoleRelatedPolicy"))
|
||||||
|
public void addSecondPolicy() throws PolicyManagementException {
|
||||||
|
PolicyManager policyManager = new PolicyManagerImpl();
|
||||||
|
policy = PolicyCreator.createPolicy3(profile);
|
||||||
|
policyManager.addPolicy(policy);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(dependsOnMethods = ("getDeviceTypeRelatedPolicy"))
|
||||||
|
public void getRoleRelatedPolicySecondTime() throws PolicyManagementException {
|
||||||
|
|
||||||
|
PolicyAdministratorPoint policyAdministratorPoint = new PolicyAdministratorPointImpl();
|
||||||
|
List<Policy> policyList = policyAdministratorPoint.getPoliciesOfRole("Role_01");
|
||||||
|
|
||||||
|
log.debug("----------Roles related policy second time ---------");
|
||||||
|
|
||||||
|
for (Policy policy : policyList) {
|
||||||
|
log.debug("Policy Id : " + policy.getId() + " Policy Name : " + policy.getPolicyName());
|
||||||
|
|
||||||
|
List<ProfileFeature> profileFeatures = policy.getProfile().getProfileFeaturesList();
|
||||||
|
|
||||||
|
for (ProfileFeature profileFeature : profileFeatures) {
|
||||||
|
log.debug("Feature Content" + profileFeature.getId() + " - " + profileFeature.getContent());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(dependsOnMethods = ("getRoleRelatedPolicySecondTime"))
|
||||||
|
public void getRoleRelatedPolicyThirdTime() throws PolicyManagementException {
|
||||||
|
|
||||||
|
PolicyAdministratorPoint policyAdministratorPoint = new PolicyAdministratorPointImpl();
|
||||||
|
List<Policy> policyList = policyAdministratorPoint.getPoliciesOfRole("Role_02");
|
||||||
|
|
||||||
|
|
||||||
|
log.debug("----------Roles related policy third time ---------");
|
||||||
|
|
||||||
|
for (Policy policy : policyList) {
|
||||||
|
log.debug("Policy Id : " + policy.getId() + " Policy Name : " + policy.getPolicyName());
|
||||||
|
|
||||||
|
List<ProfileFeature> profileFeatures = policy.getProfile().getProfileFeaturesList();
|
||||||
|
|
||||||
|
// for (ProfileFeature profileFeature : profileFeatures) {
|
||||||
|
// log.debug("Feature Content" + profileFeature.getId() + " - " + profileFeature.getContent());
|
||||||
|
// }
|
||||||
|
|
||||||
|
List<PolicyCriterion> criteria = policy.getPolicyCriterias();
|
||||||
|
|
||||||
|
for (PolicyCriterion criterion : criteria) {
|
||||||
|
log.debug("Criterias " + criterion.getName() + " -- " + criterion.getCriteriaId() + " -- "
|
||||||
|
+ criterion.getId());
|
||||||
|
|
||||||
|
Properties prop = criterion.getProperties();
|
||||||
|
|
||||||
|
for (String key : prop.stringPropertyNames()) {
|
||||||
|
log.debug("Property Names : " + key + " -- " + prop.getProperty(key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,10 +19,12 @@
|
|||||||
package org.wso2.carbon.policy.mgt.core.util;
|
package org.wso2.carbon.policy.mgt.core.util;
|
||||||
|
|
||||||
import org.wso2.carbon.policy.mgt.common.Policy;
|
import org.wso2.carbon.policy.mgt.common.Policy;
|
||||||
|
import org.wso2.carbon.policy.mgt.common.PolicyCriterion;
|
||||||
import org.wso2.carbon.policy.mgt.common.Profile;
|
import org.wso2.carbon.policy.mgt.common.Profile;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
public class PolicyCreator {
|
public class PolicyCreator {
|
||||||
|
|
||||||
@ -35,6 +37,7 @@ public class PolicyCreator {
|
|||||||
List<String> users = new ArrayList<String>();
|
List<String> users = new ArrayList<String>();
|
||||||
users.add("Dilshan");
|
users.add("Dilshan");
|
||||||
policy.setUsers(users);
|
policy.setUsers(users);
|
||||||
|
policy.setCompliance("ENFORCE");
|
||||||
|
|
||||||
return policy;
|
return policy;
|
||||||
}
|
}
|
||||||
@ -43,11 +46,13 @@ public class PolicyCreator {
|
|||||||
public static Policy createPolicy2(Profile profile) {
|
public static Policy createPolicy2(Profile profile) {
|
||||||
Policy policy = new Policy();
|
Policy policy = new Policy();
|
||||||
|
|
||||||
policy.setPolicyName("New test Policy");
|
policy.setPolicyName("Test_Policy_02");
|
||||||
policy.setGeneric(true);
|
policy.setGeneric(true);
|
||||||
policy.setProfile(profile);
|
policy.setProfile(profile);
|
||||||
policy.setDevices(DeviceCreator.getDeviceList(DeviceTypeCreator.getDeviceType()));
|
policy.setDevices(DeviceCreator.getDeviceList(DeviceTypeCreator.getDeviceType()));
|
||||||
|
|
||||||
|
policy.setCompliance("NOTIFY");
|
||||||
|
|
||||||
List<String> roles = new ArrayList<String>();
|
List<String> roles = new ArrayList<String>();
|
||||||
roles.add("Role_01");
|
roles.add("Role_01");
|
||||||
roles.add("Role_02");
|
roles.add("Role_02");
|
||||||
@ -63,8 +68,128 @@ public class PolicyCreator {
|
|||||||
|
|
||||||
policy.setUsers(users);
|
policy.setUsers(users);
|
||||||
|
|
||||||
policy.setLatitude("6.927079");
|
|
||||||
policy.setLongitude("79.861243");
|
PolicyCriterion criterion = new PolicyCriterion();
|
||||||
|
|
||||||
|
Properties prop = new Properties();
|
||||||
|
prop.put("Start_time", "10.00 AM");
|
||||||
|
prop.put("End_time", "4.00 PM");
|
||||||
|
|
||||||
|
criterion.setProperties(prop);
|
||||||
|
criterion.setName("Time");
|
||||||
|
|
||||||
|
|
||||||
|
List<PolicyCriterion> criteria = new ArrayList<PolicyCriterion>();
|
||||||
|
|
||||||
|
criteria.add(criterion);
|
||||||
|
|
||||||
|
policy.setPolicyCriterias(criteria);
|
||||||
|
//
|
||||||
|
// policy.setLatitude("6.927079");
|
||||||
|
// policy.setLongitude("79.861243");
|
||||||
|
|
||||||
|
/* DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd ");
|
||||||
|
java.util.Date date = new java.util.Date();
|
||||||
|
|
||||||
|
policy.setStartDate(new java.sql.Timestamp(date.getDate()));*/
|
||||||
|
|
||||||
|
return policy;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static Policy createPolicy3(Profile profile) {
|
||||||
|
Policy policy = new Policy();
|
||||||
|
|
||||||
|
policy.setPolicyName("Test_Policy_03");
|
||||||
|
policy.setGeneric(true);
|
||||||
|
policy.setProfile(profile);
|
||||||
|
policy.setDevices(DeviceCreator.getDeviceList(DeviceTypeCreator.getDeviceType()));
|
||||||
|
|
||||||
|
List<String> roles = new ArrayList<String>();
|
||||||
|
roles.add("Role_01");
|
||||||
|
roles.add("Role_02");
|
||||||
|
|
||||||
|
policy.setRoles(roles);
|
||||||
|
policy.setCompliance("ENFORCE");
|
||||||
|
|
||||||
|
// List<String> users = new ArrayList<String>();
|
||||||
|
// users.add("Geeth");
|
||||||
|
// users.add("Manoj");
|
||||||
|
// users.add("Milan");
|
||||||
|
// users.add("Dulitha");
|
||||||
|
//
|
||||||
|
// policy.setUsers(users);
|
||||||
|
|
||||||
|
|
||||||
|
PolicyCriterion criterion = new PolicyCriterion();
|
||||||
|
|
||||||
|
Properties prop = new Properties();
|
||||||
|
prop.put("Start_time", "10.00 AM");
|
||||||
|
prop.put("End_time", "4.00 PM");
|
||||||
|
|
||||||
|
criterion.setProperties(prop);
|
||||||
|
criterion.setName("Location");
|
||||||
|
|
||||||
|
|
||||||
|
List<PolicyCriterion> criteria = new ArrayList<PolicyCriterion>();
|
||||||
|
|
||||||
|
criteria.add(criterion);
|
||||||
|
|
||||||
|
policy.setPolicyCriterias(criteria);
|
||||||
|
|
||||||
|
/* DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd ");
|
||||||
|
java.util.Date date = new java.util.Date();
|
||||||
|
|
||||||
|
policy.setStartDate(new java.sql.Timestamp(date.getDate()));*/
|
||||||
|
|
||||||
|
return policy;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static Policy createPolicy4(Profile profile) {
|
||||||
|
Policy policy = new Policy();
|
||||||
|
|
||||||
|
policy.setPolicyName("Test_Policy_04");
|
||||||
|
policy.setGeneric(true);
|
||||||
|
policy.setProfile(profile);
|
||||||
|
policy.setDevices(DeviceCreator.getDeviceList(DeviceTypeCreator.getDeviceType()));
|
||||||
|
|
||||||
|
policy.setCompliance("MONITOR");
|
||||||
|
|
||||||
|
List<String> roles = new ArrayList<String>();
|
||||||
|
roles.add("Role_04");
|
||||||
|
roles.add("Role_05");
|
||||||
|
roles.add("Role_02");
|
||||||
|
|
||||||
|
policy.setRoles(roles);
|
||||||
|
|
||||||
|
List<String> users = new ArrayList<String>();
|
||||||
|
users.add("Geeth");
|
||||||
|
users.add("Manoj");
|
||||||
|
users.add("Milan");
|
||||||
|
users.add("Dulitha");
|
||||||
|
|
||||||
|
policy.setUsers(users);
|
||||||
|
|
||||||
|
|
||||||
|
PolicyCriterion criterion = new PolicyCriterion();
|
||||||
|
|
||||||
|
Properties prop = new Properties();
|
||||||
|
prop.put("Start_time", "10.00 AM");
|
||||||
|
prop.put("End_time", "4.00 PM");
|
||||||
|
|
||||||
|
criterion.setProperties(prop);
|
||||||
|
criterion.setName("LOCATIONGGGGG");
|
||||||
|
|
||||||
|
|
||||||
|
List<PolicyCriterion> criteria = new ArrayList<PolicyCriterion>();
|
||||||
|
|
||||||
|
criteria.add(criterion);
|
||||||
|
|
||||||
|
policy.setPolicyCriterias(criteria);
|
||||||
|
|
||||||
|
// policy.setLatitude("6.927079");
|
||||||
|
// policy.setLongitude("79.861243");
|
||||||
|
|
||||||
/* DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd ");
|
/* DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd ");
|
||||||
java.util.Date date = new java.util.Date();
|
java.util.Date date = new java.util.Date();
|
||||||
|
|||||||
@ -23,25 +23,100 @@ import org.wso2.carbon.policy.mgt.common.ProfileFeature;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ProfileFeatureCreator {
|
public class ProfileFeatureCreator {
|
||||||
|
|
||||||
public static List<ProfileFeature> getProfileFeature(List<Feature> features) {
|
public static List<ProfileFeature> getProfileFeature(List<Feature> features) {
|
||||||
List<ProfileFeature> profileFeatureList = new ArrayList<ProfileFeature>();
|
List<ProfileFeature> profileFeatureList = new ArrayList<ProfileFeature>();
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
for (Feature feature : features) {
|
for (Feature feature : features) {
|
||||||
|
|
||||||
ProfileFeature profileFeature = new ProfileFeature();
|
ProfileFeature profileFeature = new ProfileFeature();
|
||||||
profileFeature.setContent(feature);
|
if (i % 2 == 0) {
|
||||||
|
profileFeature.setContent( getJSON());
|
||||||
|
} else {
|
||||||
|
profileFeature.setContent(getJSON2());
|
||||||
|
}
|
||||||
profileFeature.setDeviceTypeId(1);
|
profileFeature.setDeviceTypeId(1);
|
||||||
profileFeature.setFeatureCode(feature.getCode());
|
profileFeature.setFeatureCode(feature.getCode());
|
||||||
|
|
||||||
// profileFeature.setContent("rrrrrrrrrrrrrrrrrrrrrrrrrrrrr");
|
// profileFeature.setContent("rrrrrrrrrrrrrrrrrrrrrrrrrrrrr");
|
||||||
// profileFeature.setProfileId(1);
|
// profileFeature.setProfileId(1);
|
||||||
// profileFeature.setFeature(feature);
|
// profileFeature.setFeature(feature);
|
||||||
profileFeatureList.add(profileFeature);
|
profileFeatureList.add(profileFeature);
|
||||||
|
|
||||||
|
i++;
|
||||||
|
|
||||||
}
|
}
|
||||||
return profileFeatureList;
|
return profileFeatureList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static String getJSON() {
|
||||||
|
return "{\n" +
|
||||||
|
" \"userNameList\": [\n" +
|
||||||
|
" \"admin\"\n" +
|
||||||
|
" ],\n" +
|
||||||
|
" \"roleNameList\": [\n" +
|
||||||
|
" \"admin\"\n" +
|
||||||
|
" ],\n" +
|
||||||
|
" \"deviceIdentifiers\": [\n" +
|
||||||
|
" {\n" +
|
||||||
|
" \"id\": \"08:00:27:fe:27:7b\",\n" +
|
||||||
|
" \"type\": \"ios\"\n" +
|
||||||
|
" }\n" +
|
||||||
|
" ],\n" +
|
||||||
|
" \"application\": {\n" +
|
||||||
|
" \"id\": \"id\",\n" +
|
||||||
|
" \"name\": \"test\",\n" +
|
||||||
|
" \"type\": \"ENTERPRISE\",\n" +
|
||||||
|
" \"platform\": \"android\",\n" +
|
||||||
|
" \"version\": \"1.0\",\n" +
|
||||||
|
" \"identifier\": \"sdfsdfldfs\",\n" +
|
||||||
|
" \"iconImage\": \"http://gogle.com\",\n" +
|
||||||
|
" \"packageName\": \"com.google.mail\",\n" +
|
||||||
|
" \"appIdentifier\": \"asdf\",\n" +
|
||||||
|
" \"location\": \"location\",\n" +
|
||||||
|
" \"properties\": {\n" +
|
||||||
|
" \"isRemoveApp\": true,\n" +
|
||||||
|
" \"isPreventBackup\": true\n" +
|
||||||
|
" }\n" +
|
||||||
|
" }\n" +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getJSON2() {
|
||||||
|
return "{\n" +
|
||||||
|
" \"userNameList\": [\n" +
|
||||||
|
" \"admin\"\n" +
|
||||||
|
" ],\n" +
|
||||||
|
" \"roleNameList\": [\n" +
|
||||||
|
" \"admin\"\n" +
|
||||||
|
" ],\n" +
|
||||||
|
" \"deviceIdentifiers\": [\n" +
|
||||||
|
" {\n" +
|
||||||
|
" \"id\": \"11:11:11:12\",\n" +
|
||||||
|
" \"type\": \"ios\"\n" +
|
||||||
|
" }\n" +
|
||||||
|
" ],\n" +
|
||||||
|
" \"application\": {\n" +
|
||||||
|
" \"id\": \"1d548206-14ee-4672-91f6-9c230626a056\",\n" +
|
||||||
|
" \"platform\": \"ios\",\n" +
|
||||||
|
" \"packageName\": \"com.imangi.templerun2\",\n" +
|
||||||
|
" \"name\": \"Temle Run\",\n" +
|
||||||
|
" \"appIdentifier\": \"572395608\",\n" +
|
||||||
|
" \"iconImage\": \"http://10.100.5.6:9763/publisher/api/mobileapp/getfile/FHmJReGEV3cExtf.png\",\n" +
|
||||||
|
" \"type\": \"PUBLIC\",\n" +
|
||||||
|
" \"identifier\": \"572395608\",\n" +
|
||||||
|
" \"version\": \"1\",\n" +
|
||||||
|
" \"properties\": {\n" +
|
||||||
|
" \"isRemoveApp\": true,\n" +
|
||||||
|
" \"isPreventBackup\": true,\n" +
|
||||||
|
" \"iTunesId\": 572395608\n" +
|
||||||
|
" }\n" +
|
||||||
|
" }\n" +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -72,6 +72,7 @@ CREATE TABLE IF NOT EXISTS DM_POLICY (
|
|||||||
NAME VARCHAR(45) NULL DEFAULT NULL ,
|
NAME VARCHAR(45) NULL DEFAULT NULL ,
|
||||||
TENANT_ID INT(11) NOT NULL ,
|
TENANT_ID INT(11) NOT NULL ,
|
||||||
PROFILE_ID INT(11) NOT NULL ,
|
PROFILE_ID INT(11) NOT NULL ,
|
||||||
|
COMPLIANCE VARCHAR(100) NULL,
|
||||||
PRIORITY INT NOT NULL ,
|
PRIORITY INT NOT NULL ,
|
||||||
PRIMARY KEY (ID) ,
|
PRIMARY KEY (ID) ,
|
||||||
CONSTRAINT FK_DM_PROFILE_DM_POLICY
|
CONSTRAINT FK_DM_PROFILE_DM_POLICY
|
||||||
@ -172,56 +173,6 @@ CREATE TABLE IF NOT EXISTS DM_ROLE_POLICY (
|
|||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
-- Table DM_LOCATION
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS DM_LOCATION (
|
|
||||||
LATITUDE VARCHAR(45) NOT NULL ,
|
|
||||||
LONGITUDE VARCHAR(45) NOT NULL ,
|
|
||||||
POLICY_ID INT(11) NOT NULL ,
|
|
||||||
CONSTRAINT FK_DM_POLICY_DM_LOCATION
|
|
||||||
FOREIGN KEY (POLICY_ID )
|
|
||||||
REFERENCES DM_POLICY (ID )
|
|
||||||
ON DELETE NO ACTION
|
|
||||||
ON UPDATE NO ACTION)
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
-- Table DM_TIME
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS DM_TIME (
|
|
||||||
STARTING_TIME DATETIME NOT NULL ,
|
|
||||||
ENDING_TIME DATETIME NOT NULL ,
|
|
||||||
POLICY_ID INT(11) NOT NULL ,
|
|
||||||
CONSTRAINT FK_DM_POLICY_DM_TIME
|
|
||||||
FOREIGN KEY (POLICY_ID )
|
|
||||||
REFERENCES DM_POLICY (ID )
|
|
||||||
ON DELETE NO ACTION
|
|
||||||
ON UPDATE NO ACTION)
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
-- Table DM_DATE
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS DM_DATE (
|
|
||||||
START_DATE DATE NOT NULL ,
|
|
||||||
END_DATE DATE NOT NULL ,
|
|
||||||
POLICY_ID INT NOT NULL ,
|
|
||||||
CONSTRAINT DM_DATE_POLICY
|
|
||||||
FOREIGN KEY (POLICY_ID )
|
|
||||||
REFERENCES DM_POLICY (ID )
|
|
||||||
ON DELETE NO ACTION
|
|
||||||
ON UPDATE NO ACTION)
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table .DM_USER_POLICY
|
-- Table .DM_USER_POLICY
|
||||||
@ -263,3 +214,59 @@ CREATE TABLE IF NOT EXISTS DM_USER_POLICY (
|
|||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
-- Table DM_CRITERIA
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
DROP TABLE IF EXISTS DM_CRITERIA ;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS DM_CRITERIA (
|
||||||
|
ID INT NOT NULL AUTO_INCREMENT,
|
||||||
|
TENANT_ID INT NOT NULL,
|
||||||
|
NAME VARCHAR(50) NULL,
|
||||||
|
PRIMARY KEY (ID)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
-- Table DM_POLICY_CRITERIA
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
DROP TABLE IF EXISTS DM_POLICY_CRITERIA ;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS DM_POLICY_CRITERIA (
|
||||||
|
ID INT NOT NULL AUTO_INCREMENT,
|
||||||
|
CRITERIA_ID INT NOT NULL,
|
||||||
|
POLICY_ID INT NOT NULL,
|
||||||
|
PRIMARY KEY (ID),
|
||||||
|
CONSTRAINT FK_CRITERIA_POLICY_CRITERIA
|
||||||
|
FOREIGN KEY (CRITERIA_ID)
|
||||||
|
REFERENCES DM_CRITERIA (ID)
|
||||||
|
ON DELETE NO ACTION
|
||||||
|
ON UPDATE NO ACTION,
|
||||||
|
CONSTRAINT FK_POLICY_POLICY_CRITERIA
|
||||||
|
FOREIGN KEY (POLICY_ID)
|
||||||
|
REFERENCES DM_POLICY (ID)
|
||||||
|
ON DELETE NO ACTION
|
||||||
|
ON UPDATE NO ACTION
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
-- Table DM_POLICY_CRITERIA_PROPERTIES
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
DROP TABLE IF EXISTS DM_POLICY_CRITERIA_PROPERTIES ;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS DM_POLICY_CRITERIA_PROPERTIES (
|
||||||
|
ID INT NOT NULL AUTO_INCREMENT,
|
||||||
|
POLICY_CRITERION_ID INT NOT NULL,
|
||||||
|
PROP_KEY VARCHAR(45) NULL,
|
||||||
|
PROP_VALUE VARCHAR(100) NULL,
|
||||||
|
CONTENT BLOB NULL COMMENT 'This is used to ',
|
||||||
|
PRIMARY KEY (ID),
|
||||||
|
CONSTRAINT FK_POLICY_CRITERIA_PROPERTIES
|
||||||
|
FOREIGN KEY (POLICY_CRITERION_ID)
|
||||||
|
REFERENCES DM_POLICY_CRITERIA (ID)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
ON UPDATE NO ACTION
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,19 @@
|
|||||||
|
-- MySQL Workbench Forward Engineering
|
||||||
|
|
||||||
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
|
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
|
||||||
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
|
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
|
||||||
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
|
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
|
||||||
|
|
||||||
DROP SCHEMA IF EXISTS `WSO2CDM` ;
|
-- -----------------------------------------------------
|
||||||
|
-- Schema mydb
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
-- Schema WSO2CDM
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
-- Schema WSO2CDM
|
||||||
|
-- -----------------------------------------------------
|
||||||
CREATE SCHEMA IF NOT EXISTS `WSO2CDM` DEFAULT CHARACTER SET latin1 ;
|
CREATE SCHEMA IF NOT EXISTS `WSO2CDM` DEFAULT CHARACTER SET latin1 ;
|
||||||
USE `WSO2CDM` ;
|
USE `WSO2CDM` ;
|
||||||
|
|
||||||
@ -11,38 +22,10 @@ USE `WSO2CDM` ;
|
|||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_DEVICE_TYPE` ;
|
DROP TABLE IF EXISTS `WSO2CDM`.`DM_DEVICE_TYPE` ;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_DEVICE_TYPE` (
|
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_DEVICE_TYPE` (
|
||||||
`ID` INT(11) NOT NULL AUTO_INCREMENT ,
|
`ID` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
`NAME` VARCHAR(300) NULL DEFAULT NULL ,
|
`NAME` VARCHAR(300) NULL DEFAULT NULL,
|
||||||
PRIMARY KEY (`ID`) )
|
PRIMARY KEY (`ID`))
|
||||||
ENGINE = InnoDB
|
|
||||||
DEFAULT CHARACTER SET = latin1;
|
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
-- Table `WSO2CDM`.`DM_DEVICE`
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_DEVICE` ;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_DEVICE` (
|
|
||||||
`ID` INT(11) NOT NULL AUTO_INCREMENT ,
|
|
||||||
`DESCRIPTION` TEXT NULL DEFAULT NULL ,
|
|
||||||
`NAME` VARCHAR(100) NULL DEFAULT NULL ,
|
|
||||||
`DATE_OF_ENROLLMENT` BIGINT(20) NULL DEFAULT NULL ,
|
|
||||||
`DATE_OF_LAST_UPDATE` BIGINT(20) NULL DEFAULT NULL ,
|
|
||||||
`OWNERSHIP` VARCHAR(45) NULL DEFAULT NULL ,
|
|
||||||
`STATUS` VARCHAR(15) NULL DEFAULT NULL ,
|
|
||||||
`DEVICE_TYPE_ID` INT(11) NULL DEFAULT NULL ,
|
|
||||||
`DEVICE_IDENTIFICATION` VARCHAR(300) NULL DEFAULT NULL ,
|
|
||||||
`OWNER` VARCHAR(45) NULL DEFAULT NULL ,
|
|
||||||
`TENANT_ID` INT(11) NULL DEFAULT '0' ,
|
|
||||||
PRIMARY KEY (`ID`) ,
|
|
||||||
INDEX `fk_DM_DEVICE_DM_DEVICE_TYPE2` (`DEVICE_TYPE_ID` ASC) ,
|
|
||||||
CONSTRAINT `fk_DM_DEVICE_DM_DEVICE_TYPE2`
|
|
||||||
FOREIGN KEY (`DEVICE_TYPE_ID` )
|
|
||||||
REFERENCES `WSO2CDM`.`DM_DEVICE_TYPE` (`ID` )
|
|
||||||
ON DELETE NO ACTION
|
|
||||||
ON UPDATE NO ACTION)
|
|
||||||
ENGINE = InnoDB
|
ENGINE = InnoDB
|
||||||
DEFAULT CHARACTER SET = latin1;
|
DEFAULT CHARACTER SET = latin1;
|
||||||
|
|
||||||
@ -52,21 +35,22 @@ DEFAULT CHARACTER SET = latin1;
|
|||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_PROFILE` ;
|
DROP TABLE IF EXISTS `WSO2CDM`.`DM_PROFILE` ;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_PROFILE` (
|
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_PROFILE` (
|
||||||
`ID` INT NOT NULL AUTO_INCREMENT ,
|
`ID` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
`PROFILE_NAME` VARCHAR(45) NOT NULL ,
|
`PROFILE_NAME` VARCHAR(45) NOT NULL,
|
||||||
`TENANT_ID` INT NOT NULL ,
|
`TENANT_ID` INT(11) NOT NULL,
|
||||||
`DEVICE_TYPE_ID` INT NOT NULL ,
|
`DEVICE_TYPE_ID` INT(11) 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`),
|
||||||
INDEX `DM_PROFILE_DEVICE_TYPE` (`DEVICE_TYPE_ID` ASC) ,
|
INDEX `DM_PROFILE_DEVICE_TYPE` (`DEVICE_TYPE_ID` ASC),
|
||||||
CONSTRAINT `DM_PROFILE_DEVICE_TYPE`
|
CONSTRAINT `DM_PROFILE_DEVICE_TYPE`
|
||||||
FOREIGN KEY (`DEVICE_TYPE_ID` )
|
FOREIGN KEY (`DEVICE_TYPE_ID`)
|
||||||
REFERENCES `WSO2CDM`.`DM_DEVICE_TYPE` (`ID` )
|
REFERENCES `WSO2CDM`.`DM_DEVICE_TYPE` (`ID`)
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION)
|
ON UPDATE NO ACTION)
|
||||||
ENGINE = InnoDB;
|
ENGINE = InnoDB
|
||||||
|
DEFAULT CHARACTER SET = latin1;
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
@ -74,17 +58,65 @@ ENGINE = InnoDB;
|
|||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_POLICY` ;
|
DROP TABLE IF EXISTS `WSO2CDM`.`DM_POLICY` ;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_POLICY` (
|
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_POLICY` (
|
||||||
`ID` INT(11) NOT NULL AUTO_INCREMENT ,
|
`ID` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
`NAME` VARCHAR(45) NULL DEFAULT NULL ,
|
`NAME` VARCHAR(45) NULL DEFAULT NULL,
|
||||||
`TENANT_ID` INT(11) NOT NULL ,
|
`TENANT_ID` INT(11) NOT NULL,
|
||||||
`PROFILE_ID` INT(11) NOT NULL ,
|
`PROFILE_ID` INT(11) NOT NULL,
|
||||||
`PRIORITY` INT NOT NULL ,
|
`COMPLIANCE` VARCHAR(100) NULL,
|
||||||
PRIMARY KEY (`ID`) ,
|
`PRIORITY` INT(11) NOT NULL,
|
||||||
INDEX `FK_DM_PROFILE_DM_POLICY` (`PROFILE_ID` ASC) ,
|
PRIMARY KEY (`ID`),
|
||||||
|
INDEX `FK_DM_PROFILE_DM_POLICY` (`PROFILE_ID` ASC),
|
||||||
CONSTRAINT `FK_DM_PROFILE_DM_POLICY`
|
CONSTRAINT `FK_DM_PROFILE_DM_POLICY`
|
||||||
FOREIGN KEY (`PROFILE_ID` )
|
FOREIGN KEY (`PROFILE_ID`)
|
||||||
REFERENCES `WSO2CDM`.`DM_PROFILE` (`ID` )
|
REFERENCES `WSO2CDM`.`DM_PROFILE` (`ID`)
|
||||||
|
ON DELETE NO ACTION
|
||||||
|
ON UPDATE NO ACTION)
|
||||||
|
ENGINE = InnoDB
|
||||||
|
DEFAULT CHARACTER SET = latin1;
|
||||||
|
|
||||||
|
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
-- Table `WSO2CDM`.`DM_DATE`
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
DROP TABLE IF EXISTS `WSO2CDM`.`DM_DATE` ;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_DATE` (
|
||||||
|
`START_DATE` DATE NOT NULL,
|
||||||
|
`END_DATE` DATE NOT NULL,
|
||||||
|
`POLICY_ID` INT(11) NOT NULL,
|
||||||
|
INDEX `DM_DATE_POLICY` (`POLICY_ID` ASC),
|
||||||
|
CONSTRAINT `DM_DATE_POLICY`
|
||||||
|
FOREIGN KEY (`POLICY_ID`)
|
||||||
|
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID`)
|
||||||
|
ON DELETE NO ACTION
|
||||||
|
ON UPDATE NO ACTION)
|
||||||
|
ENGINE = InnoDB
|
||||||
|
DEFAULT CHARACTER SET = latin1;
|
||||||
|
|
||||||
|
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
-- Table `WSO2CDM`.`DM_DEVICE`
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
DROP TABLE IF EXISTS `WSO2CDM`.`DM_DEVICE` ;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_DEVICE` (
|
||||||
|
`ID` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`DESCRIPTION` TEXT NULL DEFAULT NULL,
|
||||||
|
`NAME` VARCHAR(100) NULL DEFAULT NULL,
|
||||||
|
`DATE_OF_ENROLLMENT` BIGINT(20) NULL DEFAULT NULL,
|
||||||
|
`DATE_OF_LAST_UPDATE` BIGINT(20) NULL DEFAULT NULL,
|
||||||
|
`OWNERSHIP` VARCHAR(45) NULL DEFAULT NULL,
|
||||||
|
`STATUS` VARCHAR(15) NULL DEFAULT NULL,
|
||||||
|
`DEVICE_TYPE_ID` INT(11) NULL DEFAULT NULL,
|
||||||
|
`DEVICE_IDENTIFICATION` VARCHAR(300) NULL DEFAULT NULL,
|
||||||
|
`OWNER` VARCHAR(45) NULL DEFAULT NULL,
|
||||||
|
`TENANT_ID` INT(11) NULL DEFAULT '0',
|
||||||
|
PRIMARY KEY (`ID`),
|
||||||
|
INDEX `fk_DM_DEVICE_DM_DEVICE_TYPE2` (`DEVICE_TYPE_ID` ASC),
|
||||||
|
CONSTRAINT `fk_DM_DEVICE_DM_DEVICE_TYPE2`
|
||||||
|
FOREIGN KEY (`DEVICE_TYPE_ID`)
|
||||||
|
REFERENCES `WSO2CDM`.`DM_DEVICE_TYPE` (`ID`)
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION)
|
ON UPDATE NO ACTION)
|
||||||
ENGINE = InnoDB
|
ENGINE = InnoDB
|
||||||
@ -96,47 +128,21 @@ DEFAULT CHARACTER SET = latin1;
|
|||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_DEVICE_POLICY` ;
|
DROP TABLE IF EXISTS `WSO2CDM`.`DM_DEVICE_POLICY` ;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_DEVICE_POLICY` (
|
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_DEVICE_POLICY` (
|
||||||
`ID` INT(11) NOT NULL AUTO_INCREMENT ,
|
`ID` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
`DEVICE_ID` INT(11) NOT NULL ,
|
`DEVICE_ID` INT(11) NOT NULL,
|
||||||
`POLICY_ID` INT(11) NOT NULL ,
|
`POLICY_ID` INT(11) NOT NULL,
|
||||||
PRIMARY KEY (`ID`) ,
|
PRIMARY KEY (`ID`),
|
||||||
INDEX `FK_POLICY_DEVICE_POLICY` (`POLICY_ID` ASC) ,
|
INDEX `FK_POLICY_DEVICE_POLICY` (`POLICY_ID` ASC),
|
||||||
INDEX `FK_DEVICE_DEVICE_POLICY` (`DEVICE_ID` ASC) ,
|
INDEX `FK_DEVICE_DEVICE_POLICY` (`DEVICE_ID` ASC),
|
||||||
CONSTRAINT `FK_POLICY_DEVICE_POLICY`
|
|
||||||
FOREIGN KEY (`POLICY_ID` )
|
|
||||||
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID` )
|
|
||||||
ON DELETE NO ACTION
|
|
||||||
ON UPDATE NO ACTION,
|
|
||||||
CONSTRAINT `FK_DEVICE_DEVICE_POLICY`
|
CONSTRAINT `FK_DEVICE_DEVICE_POLICY`
|
||||||
FOREIGN KEY (`DEVICE_ID` )
|
FOREIGN KEY (`DEVICE_ID`)
|
||||||
REFERENCES `WSO2CDM`.`DM_DEVICE` (`ID` )
|
REFERENCES `WSO2CDM`.`DM_DEVICE` (`ID`)
|
||||||
ON DELETE NO ACTION
|
|
||||||
ON UPDATE NO ACTION)
|
|
||||||
ENGINE = InnoDB
|
|
||||||
DEFAULT CHARACTER SET = latin1;
|
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
-- Table `WSO2CDM`.`DM_DEVICE_TYPE_POLICY`
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_DEVICE_TYPE_POLICY` ;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_DEVICE_TYPE_POLICY` (
|
|
||||||
`ID` INT(11) NOT NULL ,
|
|
||||||
`DEVICE_TYPE_ID` INT(11) NOT NULL ,
|
|
||||||
`POLICY_ID` INT(11) NOT NULL ,
|
|
||||||
PRIMARY KEY (`ID`) ,
|
|
||||||
INDEX `FK_DEVICE_TYPE_POLICY` (`POLICY_ID` ASC) ,
|
|
||||||
INDEX `FK_DEVICE_TYPE_POLICY_DEVICE_TYPE` (`DEVICE_TYPE_ID` ASC) ,
|
|
||||||
CONSTRAINT `FK_DEVICE_TYPE_POLICY`
|
|
||||||
FOREIGN KEY (`POLICY_ID` )
|
|
||||||
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID` )
|
|
||||||
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_POLICY_DEVICE_POLICY`
|
||||||
FOREIGN KEY (`DEVICE_TYPE_ID` )
|
FOREIGN KEY (`POLICY_ID`)
|
||||||
REFERENCES `WSO2CDM`.`DM_DEVICE_TYPE` (`ID` )
|
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID`)
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION)
|
ON UPDATE NO ACTION)
|
||||||
ENGINE = InnoDB
|
ENGINE = InnoDB
|
||||||
@ -144,49 +150,53 @@ DEFAULT CHARACTER SET = latin1;
|
|||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table `WSO2CDM`.`DM_FEATURES`
|
-- Table `WSO2CDM`.`DM_DEVICE_POLICY_APPLIED`
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_FEATURES` ;
|
DROP TABLE IF EXISTS `WSO2CDM`.`DM_DEVICE_POLICY_APPLIED` ;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_FEATURES` (
|
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_DEVICE_POLICY_APPLIED` (
|
||||||
`ID` INT(11) NOT NULL AUTO_INCREMENT ,
|
`ID` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
`NAME` VARCHAR(256) NOT NULL ,
|
`DEVICE_ID` INT(11) NOT NULL,
|
||||||
`CODE` VARCHAR(45) NULL DEFAULT NULL ,
|
`POLICY_ID` INT(11) NOT NULL,
|
||||||
`DEVICE_TYPE_ID` INT NOT NULL ,
|
`POLICY_CONTENT` BLOB NULL DEFAULT NULL,
|
||||||
`DESCRIPTION` TEXT NULL DEFAULT NULL ,
|
`APPLIED` TINYINT(1) NULL DEFAULT NULL,
|
||||||
`EVALUATION_RULE` VARCHAR(60) NOT NULL ,
|
`CREATED_TIME` TIMESTAMP NULL DEFAULT NULL,
|
||||||
PRIMARY KEY (`ID`) ,
|
`UPDATED_TIME` TIMESTAMP NULL DEFAULT NULL,
|
||||||
INDEX `DM_FEATURES_DEVICE_TYPE` (`DEVICE_TYPE_ID` ASC) ,
|
`APPLIED_TIME` TIMESTAMP NULL DEFAULT NULL,
|
||||||
CONSTRAINT `DM_FEATURES_DEVICE_TYPE`
|
PRIMARY KEY (`ID`),
|
||||||
FOREIGN KEY (`DEVICE_TYPE_ID` )
|
INDEX `FK_DM_POLICY_DEVCIE_APPLIED` (`DEVICE_ID` ASC),
|
||||||
REFERENCES `WSO2CDM`.`DM_DEVICE_TYPE` (`ID` )
|
INDEX `FK_DM_POLICY_DEVICE_APPLIED_POLICY` (`POLICY_ID` ASC),
|
||||||
|
CONSTRAINT `FK_DM_POLICY_DEVCIE_APPLIED`
|
||||||
|
FOREIGN KEY (`DEVICE_ID`)
|
||||||
|
REFERENCES `WSO2CDM`.`DM_DEVICE` (`ID`)
|
||||||
|
ON DELETE NO ACTION
|
||||||
|
ON UPDATE NO ACTION,
|
||||||
|
CONSTRAINT `FK_DM_POLICY_DEVICE_APPLIED_POLICY`
|
||||||
|
FOREIGN KEY (`POLICY_ID`)
|
||||||
|
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID`)
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION)
|
ON UPDATE NO ACTION)
|
||||||
ENGINE = InnoDB
|
ENGINE = InnoDB
|
||||||
DEFAULT CHARACTER SET = latin1;
|
DEFAULT CHARACTER SET = latin1;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table `WSO2CDM`.`DM_PROFILE_FEATURES`
|
-- Table `WSO2CDM`.`DM_PROFILE_FEATURES`
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_PROFILE_FEATURES` ;
|
DROP TABLE IF EXISTS `WSO2CDM`.`DM_PROFILE_FEATURES` ;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_PROFILE_FEATURES` (
|
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`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_ID` INT(11) NOT NULL ,
|
`FEATURE_CODE` VARCHAR(10) NOT NULL,
|
||||||
`CONTENT` BLOB NULL DEFAULT NULL ,
|
`DEVICE_TYPE_ID` INT NOT NULL,
|
||||||
PRIMARY KEY (`ID`) ,
|
`CONTENT` BLOB NULL DEFAULT NULL,
|
||||||
INDEX `fk_DM_POLICY_FEATURES_DM_FEATURES1` (`FEATURE_ID` ASC) ,
|
PRIMARY KEY (`ID`),
|
||||||
INDEX `FK_DM_PROFILE_DM_POLICY_FEATURES` (`PROFILE_ID` ASC) ,
|
INDEX `FK_DM_PROFILE_DM_POLICY_FEATURES` (`PROFILE_ID` ASC),
|
||||||
CONSTRAINT `fk_DM_POLICY_FEATURES_DM_FEATURES1`
|
|
||||||
FOREIGN KEY (`FEATURE_ID` )
|
|
||||||
REFERENCES `WSO2CDM`.`DM_FEATURES` (`ID` )
|
|
||||||
ON DELETE NO ACTION
|
|
||||||
ON UPDATE NO ACTION,
|
|
||||||
CONSTRAINT `FK_DM_PROFILE_DM_POLICY_FEATURES`
|
CONSTRAINT `FK_DM_PROFILE_DM_POLICY_FEATURES`
|
||||||
FOREIGN KEY (`PROFILE_ID` )
|
FOREIGN KEY (`PROFILE_ID`)
|
||||||
REFERENCES `WSO2CDM`.`DM_PROFILE` (`ID` )
|
REFERENCES `WSO2CDM`.`DM_PROFILE` (`ID`)
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION)
|
ON UPDATE NO ACTION)
|
||||||
ENGINE = InnoDB
|
ENGINE = InnoDB
|
||||||
@ -198,124 +208,100 @@ DEFAULT CHARACTER SET = latin1;
|
|||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_ROLE_POLICY` ;
|
DROP TABLE IF EXISTS `WSO2CDM`.`DM_ROLE_POLICY` ;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_ROLE_POLICY` (
|
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_ROLE_POLICY` (
|
||||||
`ID` INT(11) NOT NULL AUTO_INCREMENT ,
|
`ID` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
`ROLE_NAME` VARCHAR(45) NOT NULL ,
|
`ROLE_NAME` VARCHAR(45) NOT NULL,
|
||||||
`POLICY_ID` INT(11) NOT NULL ,
|
`POLICY_ID` INT(11) NOT NULL,
|
||||||
PRIMARY KEY (`ID`) ,
|
PRIMARY KEY (`ID`),
|
||||||
INDEX `FK_ROLE_POLICY_POLICY` (`POLICY_ID` ASC) ,
|
INDEX `FK_ROLE_POLICY_POLICY` (`POLICY_ID` ASC),
|
||||||
CONSTRAINT `FK_ROLE_POLICY_POLICY`
|
CONSTRAINT `FK_ROLE_POLICY_POLICY`
|
||||||
FOREIGN KEY (`POLICY_ID` )
|
FOREIGN KEY (`POLICY_ID`)
|
||||||
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID` )
|
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID`)
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION)
|
ON UPDATE NO ACTION)
|
||||||
ENGINE = InnoDB
|
ENGINE = InnoDB
|
||||||
DEFAULT CHARACTER SET = latin1;
|
DEFAULT CHARACTER SET = latin1;
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
-- Table `WSO2CDM`.`DM_LOCATION`
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_LOCATION` ;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_LOCATION` (
|
|
||||||
`LATITUDE` VARCHAR(45) NOT NULL ,
|
|
||||||
`LONGITUDE` VARCHAR(45) NOT NULL ,
|
|
||||||
`POLICY_ID` INT(11) NOT NULL ,
|
|
||||||
INDEX `FK_DM_POLICY_DM_LOCATION` (`POLICY_ID` ASC) ,
|
|
||||||
CONSTRAINT `FK_DM_POLICY_DM_LOCATION`
|
|
||||||
FOREIGN KEY (`POLICY_ID` )
|
|
||||||
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID` )
|
|
||||||
ON DELETE NO ACTION
|
|
||||||
ON UPDATE NO ACTION)
|
|
||||||
ENGINE = InnoDB;
|
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
-- Table `WSO2CDM`.`DM_TIME`
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_TIME` ;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_TIME` (
|
|
||||||
`STARTING_TIME` DATETIME NOT NULL ,
|
|
||||||
`ENDING_TIME` DATETIME NOT NULL ,
|
|
||||||
`POLICY_ID` INT(11) NOT NULL ,
|
|
||||||
INDEX `FK_DM_POLICY_DM_TIME` (`POLICY_ID` ASC) ,
|
|
||||||
CONSTRAINT `FK_DM_POLICY_DM_TIME`
|
|
||||||
FOREIGN KEY (`POLICY_ID` )
|
|
||||||
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID` )
|
|
||||||
ON DELETE NO ACTION
|
|
||||||
ON UPDATE NO ACTION)
|
|
||||||
ENGINE = InnoDB;
|
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
-- Table `WSO2CDM`.`DM_DATE`
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_DATE` ;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_DATE` (
|
|
||||||
`START_DATE` DATE NOT NULL ,
|
|
||||||
`END_DATE` DATE NOT NULL ,
|
|
||||||
`POLICY_ID` INT NOT NULL ,
|
|
||||||
INDEX `DM_DATE_POLICY` (`POLICY_ID` ASC) ,
|
|
||||||
CONSTRAINT `DM_DATE_POLICY`
|
|
||||||
FOREIGN KEY (`POLICY_ID` )
|
|
||||||
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID` )
|
|
||||||
ON DELETE NO ACTION
|
|
||||||
ON UPDATE NO ACTION)
|
|
||||||
ENGINE = InnoDB;
|
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table `WSO2CDM`.`DM_USER_POLICY`
|
-- Table `WSO2CDM`.`DM_USER_POLICY`
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_USER_POLICY` ;
|
DROP TABLE IF EXISTS `WSO2CDM`.`DM_USER_POLICY` ;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_USER_POLICY` (
|
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_USER_POLICY` (
|
||||||
`ID` INT NOT NULL AUTO_INCREMENT ,
|
`ID` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
`POLICY_ID` INT NOT NULL ,
|
`POLICY_ID` INT(11) NOT NULL,
|
||||||
`USERNAME` VARCHAR(45) NOT NULL ,
|
`USERNAME` VARCHAR(45) NOT NULL,
|
||||||
PRIMARY KEY (`ID`) ,
|
PRIMARY KEY (`ID`),
|
||||||
INDEX `DM_POLICY_USER_POLICY` (`POLICY_ID` ASC) ,
|
INDEX `DM_POLICY_USER_POLICY` (`POLICY_ID` ASC),
|
||||||
CONSTRAINT `DM_POLICY_USER_POLICY`
|
CONSTRAINT `DM_POLICY_USER_POLICY`
|
||||||
FOREIGN KEY (`POLICY_ID` )
|
FOREIGN KEY (`POLICY_ID`)
|
||||||
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID` )
|
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID`)
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION)
|
ON UPDATE NO ACTION)
|
||||||
|
ENGINE = InnoDB
|
||||||
|
DEFAULT CHARACTER SET = latin1;
|
||||||
|
|
||||||
|
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
-- Table `WSO2CDM`.`DM_CRITERIA`
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
DROP TABLE IF EXISTS `WSO2CDM`.`DM_CRITERIA` ;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_CRITERIA` (
|
||||||
|
`ID` INT NOT NULL AUTO_INCREMENT,
|
||||||
|
`TENANT_ID` INT NOT NULL,
|
||||||
|
`NAME` VARCHAR(50) NULL,
|
||||||
|
PRIMARY KEY (`ID`))
|
||||||
ENGINE = InnoDB;
|
ENGINE = InnoDB;
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table `WSO2CDM`.`DM_DEVICE_POLICY_APPLIED`
|
-- Table `WSO2CDM`.`DM_POLICY_CRITERIA`
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
DROP TABLE IF EXISTS `WSO2CDM`.`DM_DEVICE_POLICY_APPLIED` ;
|
DROP TABLE IF EXISTS `WSO2CDM`.`DM_POLICY_CRITERIA` ;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_DEVICE_POLICY_APPLIED` (
|
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_POLICY_CRITERIA` (
|
||||||
`ID` INT NOT NULL AUTO_INCREMENT ,
|
`ID` INT NOT NULL AUTO_INCREMENT,
|
||||||
`DEVICE_ID` INT NOT NULL ,
|
`CRITERIA_ID` INT NOT NULL,
|
||||||
`POLICY_ID` INT NOT NULL ,
|
`POLICY_ID` INT NOT NULL,
|
||||||
`POLICY_CONTENT` BLOB NULL ,
|
PRIMARY KEY (`ID`),
|
||||||
`APPLIED` TINYINT(1) NULL ,
|
INDEX `FK_CRITERIA_POLICY_CRITERIA_idx` (`CRITERIA_ID` ASC),
|
||||||
`CREATED_TIME` TIMESTAMP NULL ,
|
INDEX `FK_POLICY_POLICY_CRITERIA_idx` (`POLICY_ID` ASC),
|
||||||
`UPDATED_TIME` TIMESTAMP NULL ,
|
CONSTRAINT `FK_CRITERIA_POLICY_CRITERIA`
|
||||||
`APPLIED_TIME` TIMESTAMP NULL ,
|
FOREIGN KEY (`CRITERIA_ID`)
|
||||||
PRIMARY KEY (`ID`) ,
|
REFERENCES `WSO2CDM`.`DM_CRITERIA` (`ID`)
|
||||||
INDEX `FK_DM_POLICY_DEVCIE_APPLIED` (`DEVICE_ID` ASC) ,
|
|
||||||
INDEX `FK_DM_POLICY_DEVICE_APPLIED_POLICY` (`POLICY_ID` ASC) ,
|
|
||||||
CONSTRAINT `FK_DM_POLICY_DEVCIE_APPLIED`
|
|
||||||
FOREIGN KEY (`DEVICE_ID` )
|
|
||||||
REFERENCES `WSO2CDM`.`DM_DEVICE` (`ID` )
|
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION,
|
ON UPDATE NO ACTION,
|
||||||
CONSTRAINT `FK_DM_POLICY_DEVICE_APPLIED_POLICY`
|
CONSTRAINT `FK_POLICY_POLICY_CRITERIA`
|
||||||
FOREIGN KEY (`POLICY_ID` )
|
FOREIGN KEY (`POLICY_ID`)
|
||||||
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID` )
|
REFERENCES `WSO2CDM`.`DM_POLICY` (`ID`)
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION)
|
ON UPDATE NO ACTION)
|
||||||
ENGINE = InnoDB;
|
ENGINE = InnoDB;
|
||||||
|
|
||||||
|
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
-- Table `WSO2CDM`.`DM_POLICY_CRITERIA_PROPERTIES`
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
DROP TABLE IF EXISTS `WSO2CDM`.`DM_POLICY_CRITERIA_PROPERTIES` ;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `WSO2CDM`.`DM_POLICY_CRITERIA_PROPERTIES` (
|
||||||
|
`ID` INT NOT NULL AUTO_INCREMENT,
|
||||||
|
`POLICY_CRITERION_ID` INT NOT NULL,
|
||||||
|
`PROP_KEY` VARCHAR(45) NULL,
|
||||||
|
`PROP_VALUE` VARCHAR(100) NULL,
|
||||||
|
`CONTENT` BLOB NULL COMMENT 'This is used to ',
|
||||||
|
PRIMARY KEY (`ID`),
|
||||||
|
INDEX `FK_POLICY_CRITERIA_PROPERTIES_idx` (`POLICY_CRITERION_ID` ASC),
|
||||||
|
CONSTRAINT `FK_POLICY_CRITERIA_PROPERTIES`
|
||||||
|
FOREIGN KEY (`POLICY_CRITERION_ID`)
|
||||||
|
REFERENCES `WSO2CDM`.`DM_POLICY_CRITERIA` (`ID`)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
ON UPDATE NO ACTION)
|
||||||
|
ENGINE = InnoDB;
|
||||||
|
|
||||||
|
|
||||||
SET SQL_MODE=@OLD_SQL_MODE;
|
SET SQL_MODE=@OLD_SQL_MODE;
|
||||||
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
|
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
|
||||||
|
|||||||
@ -55,7 +55,7 @@ public class DeviceMgtUserServiceComponent {
|
|||||||
}
|
}
|
||||||
/* Registering User Management service */
|
/* Registering User Management service */
|
||||||
BundleContext bundleContext = componentContext.getBundleContext();
|
BundleContext bundleContext = componentContext.getBundleContext();
|
||||||
bundleContext.registerService(UserManagementService.class.getName(),
|
bundleContext.registerService(UserManager.class,
|
||||||
new UserManagementService(), null);
|
new UserManagementService(), null);
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("User management core bundle has been successfully initialized");
|
log.debug("User management core bundle has been successfully initialized");
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
<artifactId>org.wso2.carbon.devicemgt.user.server.feature</artifactId>
|
<artifactId>org.wso2.carbon.device.mgt.user.server.feature</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<version>0.9.2-SNAPSHOT</version>
|
<version>0.9.2-SNAPSHOT</version>
|
||||||
<name>WSO2 Carbon - User Management Server Feature</name>
|
<name>WSO2 Carbon - User Management Server Feature</name>
|
||||||
@ -91,7 +91,7 @@
|
|||||||
<goal>p2-feature-gen</goal>
|
<goal>p2-feature-gen</goal>
|
||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<id>org.wso2.carbon.devicemgt.user.server</id>
|
<id>org.wso2.carbon.device.mgt.user.server</id>
|
||||||
<propertiesFile>../../../features/etc/feature.properties</propertiesFile>
|
<propertiesFile>../../../features/etc/feature.properties</propertiesFile>
|
||||||
<adviceFile>
|
<adviceFile>
|
||||||
<properties>
|
<properties>
|
||||||
@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>org.wso2.carbon.devicemgt.user.server.feature</module>
|
<module>org.wso2.carbon.device.mgt.user.server.feature</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
2
pom.xml
2
pom.xml
@ -1081,7 +1081,7 @@
|
|||||||
<repository>
|
<repository>
|
||||||
<id>wso2-staging</id>
|
<id>wso2-staging</id>
|
||||||
<name>WSO2 Staging Repository</name>
|
<name>WSO2 Staging Repository</name>
|
||||||
<url>http://maven.wso2.org/nexus/content/repositories/orgwso2carbonapimgt-004/</url>
|
<url>http://maven.wso2.org/nexus/content/repositories/orgwso2carbonapimgt-009/</url>
|
||||||
<releases>
|
<releases>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
<updatePolicy>daily</updatePolicy>
|
<updatePolicy>daily</updatePolicy>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user