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
0646b424ed
@ -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;
|
||||
}
|
||||
|
||||
@ -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 (" +
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user