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
74a3556cf4
@ -171,6 +171,7 @@ public class Policy implements Comparable<Policy>, Serializable {
|
||||
this.updated = updated;
|
||||
}
|
||||
|
||||
@XmlElement
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
@ -41,6 +41,13 @@ public interface PolicyDAO {
|
||||
*/
|
||||
Policy addPolicyToRole(List<String> roleNames, Policy policy) throws PolicyManagerDAOException;
|
||||
|
||||
/**
|
||||
* This method is used to add/update the users associated with the policy.
|
||||
* @param usernameList - List of the users that needs to be applied
|
||||
* @param policy - policy object with the current role list
|
||||
* @return
|
||||
* @throws PolicyManagerDAOException
|
||||
*/
|
||||
Policy addPolicyToUser(List<String> usernameList, Policy policy) throws PolicyManagerDAOException;
|
||||
|
||||
Policy addPolicyToDevice(List<Device> devices, Policy policy) throws PolicyManagerDAOException;
|
||||
|
||||
@ -110,23 +110,45 @@ public class PolicyDAOImpl implements PolicyDAO {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Policy addPolicyToUser(List<String> usernameList, Policy policy) throws PolicyManagerDAOException {
|
||||
public Policy addPolicyToUser(List<String> usersToAdd, Policy policy) throws PolicyManagerDAOException {
|
||||
Connection conn;
|
||||
PreparedStatement stmt = null;
|
||||
PreparedStatement insertStmt = null;
|
||||
PreparedStatement deleteStmt = null;
|
||||
final List<String> currentUsers = policy.getUsers();
|
||||
|
||||
SetReferenceTransformer<String> transformer = new SetReferenceTransformer<String>();
|
||||
|
||||
transformer.transform(currentUsers, usersToAdd);
|
||||
usersToAdd = transformer.getObjectsToAdd();
|
||||
List<String> usersToDelete = transformer.getObjectsToRemove();
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
String query = "INSERT INTO DM_USER_POLICY (POLICY_ID, USERNAME) VALUES (?, ?)";
|
||||
stmt = conn.prepareStatement(query);
|
||||
for (String username : usernameList) {
|
||||
stmt.setInt(1, policy.getId());
|
||||
stmt.setString(2, username);
|
||||
stmt.addBatch();
|
||||
if (usersToAdd.size() > 0){
|
||||
String query = "INSERT INTO DM_USER_POLICY (POLICY_ID, USERNAME) VALUES (?, ?)";
|
||||
insertStmt = conn.prepareStatement(query);
|
||||
for (String username : usersToAdd) {
|
||||
insertStmt.setInt(1, policy.getId());
|
||||
insertStmt.setString(2, username);
|
||||
insertStmt.addBatch();
|
||||
}
|
||||
insertStmt.executeBatch();
|
||||
}
|
||||
stmt.executeBatch();
|
||||
if (usersToDelete.size() > 0){
|
||||
String deleteQuery = "DELETE FROM DM_USER_POLICY WHERE USERNAME=? AND POLICY_ID=?";
|
||||
deleteStmt = conn.prepareStatement(deleteQuery);
|
||||
for (String username : usersToDelete) {
|
||||
deleteStmt.setString(1, username);
|
||||
deleteStmt.setInt(2, policy.getId());
|
||||
deleteStmt.addBatch();
|
||||
}
|
||||
deleteStmt.executeBatch();
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
throw new PolicyManagerDAOException("Error occurred while adding the user name with policy to database", e);
|
||||
} finally {
|
||||
PolicyManagementDAOUtil.cleanupResources(stmt, null);
|
||||
PolicyManagementDAOUtil.cleanupResources(insertStmt, null);
|
||||
PolicyManagementDAOUtil.cleanupResources(deleteStmt, null);
|
||||
}
|
||||
return policy;
|
||||
}
|
||||
@ -744,6 +766,8 @@ public class PolicyDAOImpl implements PolicyDAO {
|
||||
policy.setProfileId(resultSet.getInt("PROFILE_ID"));
|
||||
policy.setCompliance(resultSet.getString("COMPLIANCE"));
|
||||
policy.setDescription(resultSet.getString("DESCRIPTION"));
|
||||
policy.setUpdated(PolicyManagerUtil.convertIntToBoolean(resultSet.getInt("UPDATED")));
|
||||
policy.setActive(PolicyManagerUtil.convertIntToBoolean(resultSet.getInt("ACTIVE")));
|
||||
}
|
||||
return policy;
|
||||
|
||||
@ -778,6 +802,8 @@ public class PolicyDAOImpl implements PolicyDAO {
|
||||
policy.setPriorityId(resultSet.getInt("PRIORITY"));
|
||||
policy.setCompliance(resultSet.getString("COMPLIANCE"));
|
||||
policy.setDescription(resultSet.getString("DESCRIPTION"));
|
||||
policy.setUpdated(PolicyManagerUtil.convertIntToBoolean(resultSet.getInt("UPDATED")));
|
||||
policy.setActive(PolicyManagerUtil.convertIntToBoolean(resultSet.getInt("ACTIVE")));
|
||||
}
|
||||
return policy;
|
||||
} catch (SQLException e) {
|
||||
|
||||
@ -35,6 +35,7 @@ import org.wso2.carbon.policy.mgt.core.config.datasource.DataSourceConfig;
|
||||
import org.wso2.carbon.policy.mgt.core.dao.PolicyManagementDAOFactory;
|
||||
import org.wso2.carbon.policy.mgt.core.task.TaskScheduleService;
|
||||
import org.wso2.carbon.policy.mgt.core.task.TaskScheduleServiceImpl;
|
||||
import org.wso2.carbon.policy.mgt.core.util.PolicyManagerUtil;
|
||||
import org.wso2.carbon.user.core.service.RealmService;
|
||||
|
||||
/**
|
||||
@ -86,11 +87,13 @@ public class PolicyManagementServiceComponent {
|
||||
componentContext.getBundleContext().registerService(
|
||||
PolicyManagerService.class.getName(), new PolicyManagerServiceImpl(), null);
|
||||
|
||||
|
||||
|
||||
PolicyConfiguration policyConfiguration = DeviceConfigurationManager.getInstance().getDeviceManagementConfig().
|
||||
getDeviceManagementConfigRepository().getPolicyConfiguration();
|
||||
if(policyConfiguration.getMonitoringEnable()) {
|
||||
TaskScheduleService taskScheduleService = new TaskScheduleServiceImpl();
|
||||
taskScheduleService.startTask(policyConfiguration.getMonitoringFrequency());
|
||||
taskScheduleService.startTask(PolicyManagerUtil.getMonitoringFequency());
|
||||
}
|
||||
|
||||
} catch (Throwable t) {
|
||||
|
||||
@ -471,17 +471,18 @@ public class PolicyManagerImpl implements PolicyManager {
|
||||
Policy policy;
|
||||
List<Device> deviceList;
|
||||
List<String> roleNames;
|
||||
|
||||
List<String> userNames;
|
||||
try {
|
||||
PolicyManagementDAOFactory.openConnection();
|
||||
policy = policyDAO.getPolicy(policyId);
|
||||
|
||||
roleNames = policyDAO.getPolicyAppliedRoles(policyId);
|
||||
userNames = policyDAO.getPolicyAppliedUsers(policyId);
|
||||
Profile profile = profileDAO.getProfile(policy.getProfileId());
|
||||
|
||||
policy.setProfile(profile);
|
||||
policy.setRoles(roleNames);
|
||||
|
||||
policy.setUsers(userNames);
|
||||
|
||||
} catch (PolicyManagerDAOException e) {
|
||||
throw new PolicyManagementException("Error occurred while getting the policy related to policy ID (" +
|
||||
|
||||
@ -22,7 +22,14 @@ import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.w3c.dom.Document;
|
||||
import org.wso2.carbon.device.mgt.common.Device;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfigurationManagementService;
|
||||
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
||||
import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager;
|
||||
import org.wso2.carbon.device.mgt.core.config.policy.PolicyConfiguration;
|
||||
import org.wso2.carbon.device.mgt.core.config.tenant.TenantConfigurationManagementServiceImpl;
|
||||
import org.wso2.carbon.device.mgt.core.operation.mgt.PolicyOperation;
|
||||
import org.wso2.carbon.device.mgt.core.operation.mgt.ProfileOperation;
|
||||
import org.wso2.carbon.policy.mgt.common.Policy;
|
||||
@ -47,6 +54,10 @@ public class PolicyManagerUtil {
|
||||
|
||||
private static final Log log = LogFactory.getLog(PolicyManagerUtil.class);
|
||||
|
||||
public static final String GENERAL_CONFIG_RESOURCE_PATH = "general";
|
||||
public static final String MONITORING_FREQUENCY = "notifierFrequency";
|
||||
|
||||
|
||||
public static Document convertToDocument(File file) throws PolicyManagementException {
|
||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||
factory.setNamespaceAware(true);
|
||||
@ -156,13 +167,13 @@ public class PolicyManagerUtil {
|
||||
// }
|
||||
|
||||
|
||||
public static Cache<Integer, Policy> getPolicyCache(String name){
|
||||
public static Cache<Integer, Policy> getPolicyCache(String name) {
|
||||
CacheManager manager = getCacheManager();
|
||||
return (manager != null) ? manager.<Integer, Policy>getCache(name) :
|
||||
Caching.getCacheManager().<Integer, Policy>getCache(name);
|
||||
}
|
||||
|
||||
public static Cache<Integer, List<Policy>> getPolicyListCache(String name){
|
||||
public static Cache<Integer, List<Policy>> getPolicyListCache(String name) {
|
||||
CacheManager manager = getCacheManager();
|
||||
return (manager != null) ? manager.<Integer, List<Policy>>getCache(name) :
|
||||
Caching.getCacheManager().<Integer, List<Policy>>getCache(name);
|
||||
@ -182,4 +193,35 @@ public class PolicyManagerUtil {
|
||||
}
|
||||
return deviceHashMap;
|
||||
}
|
||||
|
||||
|
||||
public static int getMonitoringFequency() {
|
||||
|
||||
TenantConfigurationManagementService configMgtService = new TenantConfigurationManagementServiceImpl();
|
||||
TenantConfiguration tenantConfiguration = null;
|
||||
int monitoringFrequency = 0;
|
||||
try {
|
||||
tenantConfiguration = configMgtService.getConfiguration(GENERAL_CONFIG_RESOURCE_PATH);
|
||||
List<ConfigurationEntry> configuration = tenantConfiguration.getConfiguration();
|
||||
|
||||
if (configuration != null && !configuration.isEmpty()) {
|
||||
for (ConfigurationEntry cEntry : configuration) {
|
||||
if (cEntry.getName().equalsIgnoreCase(MONITORING_FREQUENCY)) {
|
||||
monitoringFrequency = (int) cEntry.getValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} catch (ConfigurationManagementException e) {
|
||||
log.error("Error while getting the configurations from registry.", e);
|
||||
}
|
||||
|
||||
if (monitoringFrequency == 0) {
|
||||
PolicyConfiguration policyConfiguration = DeviceConfigurationManager.getInstance().
|
||||
getDeviceManagementConfig().getDeviceManagementConfigRepository().getPolicyConfiguration();
|
||||
monitoringFrequency = policyConfiguration.getMonitoringFrequency();
|
||||
}
|
||||
|
||||
return monitoringFrequency;
|
||||
}
|
||||
}
|
||||
|
||||
@ -311,7 +311,6 @@ public class PolicyDAOTestCase extends BasePolicyManagementDAOTest {
|
||||
policy = pap.addPolicy(policy);
|
||||
pap.activatePolicy(policy.getId());
|
||||
List<String> users = new ArrayList<>();
|
||||
log.debug(policy.getRoles().size());
|
||||
users.add("Udara");
|
||||
users.add("Dileesha");
|
||||
policy.setUsers(users);
|
||||
|
||||
12
pom.xml
12
pom.xml
@ -317,6 +317,10 @@
|
||||
<groupId>commons-pool.wso2</groupId>
|
||||
<artifactId>commons-pool</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -391,6 +395,10 @@
|
||||
<groupId>org.wso2.carbon.registry</groupId>
|
||||
<artifactId>org.wso2.carbon.registry.extensions</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!-- End of Governance dependencies -->
|
||||
@ -813,6 +821,10 @@
|
||||
<groupId>org.wso2.carbon.registry</groupId>
|
||||
<artifactId>org.wso2.carbon.registry.ws.client</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user