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://repository.entgra.net/community/device-mgt-core into sync-master
This commit is contained in:
commit
8289db1af8
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>grafana-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>grafana-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>grafana-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>analytics-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>apimgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>application-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>application-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>certificate-mgt</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>certificate-mgt</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>certificate-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -825,8 +825,9 @@ public class CertificateGenerator {
|
||||
X500Name issuerName = new X500Name(subjectDn);
|
||||
String commonName = certificationRequest.getSubject().getRDNs(BCStyle.CN)[0].getFirst()
|
||||
.getValue().toString();
|
||||
X500Name subjectName = new X500Name("O=" + commonName + "O=AndroidDevice,CN=" +
|
||||
serialNumber);
|
||||
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||
X500Name subjectName = new X500Name("O=" + commonName + " ,CN=" +
|
||||
serialNumber + ", OU=tenant_" + tenantId);
|
||||
Date startDate = new Date(System.currentTimeMillis());
|
||||
Date endDate = new Date(System.currentTimeMillis()
|
||||
+ TimeUnit.DAYS.toMillis(365 * 100));
|
||||
@ -847,7 +848,7 @@ public class CertificateGenerator {
|
||||
io.entgra.device.mgt.core.certificate.mgt.core.bean.Certificate certificate =
|
||||
new io.entgra.device.mgt.core.certificate.mgt.core.bean.Certificate();
|
||||
List<io.entgra.device.mgt.core.certificate.mgt.core.bean.Certificate> certificates = new ArrayList<>();
|
||||
certificate.setTenantId(PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId());
|
||||
certificate.setTenantId(tenantId);
|
||||
certificate.setCertificate(issuedCert);
|
||||
certificates.add(certificate);
|
||||
saveCertInKeyStore(certificates);
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt-extensions</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -1736,7 +1736,6 @@ public interface DeviceManagementService {
|
||||
@ApiParam(
|
||||
name = "owner",
|
||||
value = "Provides the owner of the required device.",
|
||||
required = true,
|
||||
defaultValue = "")
|
||||
@QueryParam("owner")
|
||||
String owner,
|
||||
|
||||
@ -533,7 +533,14 @@ public interface GroupManagementService {
|
||||
defaultValue = "1")
|
||||
@DefaultValue("1")
|
||||
@QueryParam("depth")
|
||||
int depth);
|
||||
int depth,
|
||||
@ApiParam(
|
||||
name = "allowed",
|
||||
value = "Whether to return allowed group",
|
||||
defaultValue = "false")
|
||||
@QueryParam("allowed")
|
||||
@DefaultValue("false")
|
||||
boolean allowed);
|
||||
|
||||
@Path("/name/{groupName}")
|
||||
@GET
|
||||
|
||||
@ -1064,10 +1064,11 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
||||
@QueryParam("operationStatus") List<String> status) {
|
||||
OperationList operationsList = new OperationList();
|
||||
RequestValidationUtil requestValidationUtil = new RequestValidationUtil();
|
||||
RequestValidationUtil.validateOwnerParameter(owner);
|
||||
RequestValidationUtil.validatePaginationParameters(offset, limit);
|
||||
PaginationRequest request = new PaginationRequest(offset, limit);
|
||||
request.setOwner(owner);
|
||||
if(owner != null){
|
||||
request.setOwner(owner);
|
||||
}
|
||||
try {
|
||||
//validating the operation log filters
|
||||
OperationLogFilters olf = requestValidationUtil.validateOperationLogFilters(operationCode, createdFrom,
|
||||
|
||||
@ -169,10 +169,11 @@ public class GroupManagementServiceImpl implements GroupManagementService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Response getGroup(int groupId, boolean requireGroupProps, int depth) {
|
||||
public Response getGroup(int groupId, boolean requireGroupProps, int depth, boolean allowed) {
|
||||
try {
|
||||
GroupManagementProviderService service = DeviceMgtAPIUtils.getGroupManagementProviderService();
|
||||
DeviceGroup deviceGroup = service.getGroup(groupId, requireGroupProps, depth);
|
||||
DeviceGroup deviceGroup = allowed ? service.getUserOwnGroup(groupId, requireGroupProps, depth):
|
||||
service.getGroup(groupId, requireGroupProps, depth);
|
||||
if (deviceGroup != null) {
|
||||
return Response.status(Response.Status.OK).entity(deviceGroup).build();
|
||||
} else {
|
||||
|
||||
@ -146,11 +146,14 @@ public class RoleManagementServiceImpl implements RoleManagementService {
|
||||
List<String> visibleRoles;
|
||||
RoleList visibleRoleList = new RoleList();
|
||||
try {
|
||||
metadata = DeviceMgtAPIUtils.getMetadataManagementService().retrieveMetadata(metaKey);
|
||||
String metaValue = metadata.getMetaValue();
|
||||
JSONParser parser = new JSONParser();
|
||||
JSONObject jsonObject = (JSONObject) parser.parse(metaValue);
|
||||
boolean decision = (boolean) jsonObject.get(Constants.IS_USER_ABLE_TO_VIEW_ALL_ROLES);
|
||||
boolean decision = false;
|
||||
if(DeviceMgtAPIUtils.getMetadataManagementService().retrieveMetadata(metaKey) != null){
|
||||
metadata = DeviceMgtAPIUtils.getMetadataManagementService().retrieveMetadata(metaKey);
|
||||
String metaValue = metadata.getMetaValue();
|
||||
JSONParser parser = new JSONParser();
|
||||
JSONObject jsonObject = (JSONObject) parser.parse(metaValue);
|
||||
decision = (boolean) jsonObject.get(Constants.IS_USER_ABLE_TO_VIEW_ALL_ROLES);
|
||||
}
|
||||
if (decision) {
|
||||
if (Strings.isNullOrEmpty(userStore)){
|
||||
userStore = PRIMARY_USER_STORE;
|
||||
|
||||
@ -172,13 +172,13 @@ public class GroupManagementServiceImplTest {
|
||||
Mockito.doReturn(new DeviceGroup()).when(groupManagementProviderService).getGroup(1, false, 1);
|
||||
Mockito.doReturn(null).when(groupManagementProviderService).getGroup(2, false, 1);
|
||||
Mockito.doThrow(new GroupManagementException()).when(groupManagementProviderService).getGroup(3, false, 1);
|
||||
Response response = groupManagementService.getGroup(1, false, 1);
|
||||
Response response = groupManagementService.getGroup(1, false, 1, false);
|
||||
Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode(),
|
||||
"getGroup request failed for a request with valid parameters");
|
||||
response = groupManagementService.getGroup(2, false, 1);
|
||||
response = groupManagementService.getGroup(2, false, 1, false);
|
||||
Assert.assertEquals(response.getStatus(), Response.Status.NOT_FOUND.getStatusCode(),
|
||||
"getGroup request returned a group for a non-existing group");
|
||||
response = groupManagementService.getGroup(3, false, 1);
|
||||
response = groupManagementService.getGroup(3, false, 1, false);
|
||||
Assert.assertEquals(response.getStatus(), Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(),
|
||||
"getGroup request returned a group for a in-valid request");
|
||||
}
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -245,6 +245,15 @@ public interface GroupDAO {
|
||||
List<DeviceGroup> getGroups(GroupPaginationRequest paginationRequest, List<Integer> deviceGroupIds,
|
||||
int tenantId) throws GroupManagementDAOException;
|
||||
|
||||
/**
|
||||
* Get the list of Device Groups in tenant.
|
||||
*
|
||||
* @param tenantId of user's tenant.
|
||||
* @return List of all Device Groups in tenant.
|
||||
* @throws GroupManagementDAOException
|
||||
*/
|
||||
List<DeviceGroup> getGroups(List<Integer> deviceGroupIds, int tenantId) throws GroupManagementDAOException;
|
||||
|
||||
/**
|
||||
* Get the list of Device Groups in tenant.
|
||||
*
|
||||
|
||||
@ -169,6 +169,46 @@ public abstract class AbstractGroupDAOImpl implements GroupDAO {
|
||||
throw new GroupManagementDAOException(msg, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeviceGroup> getGroups(List<Integer> deviceGroupIds, int tenantId) throws GroupManagementDAOException {
|
||||
int deviceGroupIdsCount = deviceGroupIds.size();
|
||||
if (deviceGroupIdsCount == 0) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
try {
|
||||
Connection conn = GroupManagementDAOFactory.getConnection();
|
||||
String sql = "SELECT ID, DESCRIPTION, GROUP_NAME, OWNER, STATUS, PARENT_PATH, PARENT_GROUP_ID FROM DM_GROUP WHERE TENANT_ID = ?";
|
||||
|
||||
sql += " AND ID IN (";
|
||||
for (int i = 0; i < deviceGroupIdsCount; i++) {
|
||||
sql += (deviceGroupIdsCount - 1 != i) ? "?," : "?";
|
||||
}
|
||||
sql += ")";
|
||||
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
int paramIndex = 1;
|
||||
stmt.setInt(paramIndex++, tenantId);
|
||||
|
||||
for (Integer deviceGroupId : deviceGroupIds) {
|
||||
stmt.setInt(paramIndex++, deviceGroupId);
|
||||
}
|
||||
List<DeviceGroup> deviceGroupList = new ArrayList<>();
|
||||
try (ResultSet resultSet = stmt.executeQuery()) {
|
||||
while (resultSet.next()) {
|
||||
deviceGroupList.add(GroupManagementDAOUtil.loadGroup(resultSet));
|
||||
}
|
||||
}
|
||||
return deviceGroupList;
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while retrieving groups of groups IDs " + deviceGroupIds
|
||||
+ " in tenant: " + tenantId;
|
||||
log.error(msg);
|
||||
throw new GroupManagementDAOException(msg, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<DeviceGroup> getGroups(GroupPaginationRequest request, List<Integer> deviceGroupIds,
|
||||
int tenantId, boolean isWithParentPath) throws GroupManagementDAOException {
|
||||
@ -1313,7 +1353,7 @@ public abstract class AbstractGroupDAOImpl implements GroupDAO {
|
||||
+ "FROM DM_DEVICE d, "
|
||||
+ "(SELECT dgm.DEVICE_ID "
|
||||
+ "FROM DM_DEVICE_GROUP_MAP dgm "
|
||||
+ "WHERE dgm.GROUP_ID = (SELECT ID FROM DM_GROUP WHERE GROUP_NAME = ? )) dgm1 "
|
||||
+ "WHERE dgm.GROUP_ID = (SELECT ID FROM DM_GROUP WHERE GROUP_NAME = ? AND TENANT_ID = ?)) dgm1 "
|
||||
+ "WHERE d.ID = dgm1.DEVICE_ID AND d.TENANT_ID = ?) gd, DM_DEVICE_TYPE t "
|
||||
+ "WHERE gd.DEVICE_TYPE_ID = t.ID) d1 "
|
||||
+ "WHERE d1.DEVICE_ID = e.DEVICE_ID AND TENANT_ID = ?";
|
||||
@ -1322,6 +1362,7 @@ public abstract class AbstractGroupDAOImpl implements GroupDAO {
|
||||
stmt.setString(1, groupName);
|
||||
stmt.setInt(2, tenantId);
|
||||
stmt.setInt(3, tenantId);
|
||||
stmt.setInt(4, tenantId);
|
||||
try (ResultSet rs = stmt.executeQuery()) {
|
||||
devices = new ArrayList<>();
|
||||
while (rs.next()) {
|
||||
|
||||
@ -637,23 +637,34 @@ public class OperationManagerImpl implements OperationManager {
|
||||
deviceId.getType() + "' device, which carries the identifier '" +
|
||||
deviceId.getId() + "' of owner '" + owner + "'");
|
||||
}
|
||||
EnrolmentInfo enrolmentInfo = this.getEnrolmentInfo(deviceId, request);
|
||||
if (enrolmentInfo == null){
|
||||
throw new OperationManagementException("Enrollment info not found for given device which has device "
|
||||
+ "Identifier:" + deviceId.getId() + " and device type: " + deviceId.getType() + "Further, device "
|
||||
+ "is own to: " + owner);
|
||||
|
||||
paginationResult = new PaginationResult();
|
||||
int enrolmentId = 0;
|
||||
List<? extends io.entgra.device.mgt.core.device.mgt.core.dto.operation.mgt.Operation> operationList;
|
||||
int count;
|
||||
|
||||
if (owner != null) {
|
||||
EnrolmentInfo enrolmentInfo = this.getEnrolmentInfo(deviceId, request);
|
||||
if (enrolmentInfo == null) {
|
||||
throw new OperationManagementException("Enrollment info not found for given device which has device "
|
||||
+ "Identifier:" + deviceId.getId() + " and device type: " + deviceId.getType() + "Further, device "
|
||||
+ "is own to: " + owner);
|
||||
}
|
||||
enrolmentId = enrolmentInfo.getId();
|
||||
}
|
||||
int enrolmentId = enrolmentInfo.getId();
|
||||
try {
|
||||
OperationManagementDAOFactory.openConnection();
|
||||
List<? extends io.entgra.device.mgt.core.device.mgt.core.dto.operation.mgt.Operation> operationList =
|
||||
operationDAO.getOperationsForDevice(enrolmentId, request);
|
||||
if (owner != null) {
|
||||
operationList = operationDAO.getOperationsForDevice(enrolmentId, request);
|
||||
count = operationDAO.getOperationCountForDevice(enrolmentId, request);
|
||||
} else {
|
||||
operationList = operationDAO.getOperationsForDeviceByDeviceIdentifier(deviceId, request);
|
||||
count = operationDAO.getOperationCountForDeviceWithDeviceIdentifier(deviceId, request);
|
||||
}
|
||||
for (io.entgra.device.mgt.core.device.mgt.core.dto.operation.mgt.Operation dtoOperation : operationList) {
|
||||
Operation operation = OperationDAOUtil.convertOperation(dtoOperation);
|
||||
operations.add(operation);
|
||||
}
|
||||
paginationResult = new PaginationResult();
|
||||
int count = operationDAO.getOperationCountForDevice(enrolmentId, request);
|
||||
paginationResult.setData(operations);
|
||||
paginationResult.setRecordsTotal(count);
|
||||
paginationResult.setRecordsFiltered(count);
|
||||
@ -1590,7 +1601,7 @@ public class OperationManagerImpl implements OperationManager {
|
||||
return deviceSpecificOperation != null;
|
||||
} catch (OperationManagementDAOException e) {
|
||||
String msg = "Error occurred while checking if operation with operation id "
|
||||
+ operationId +" exist for " + deviceId.getType() + "' device '" + deviceId.getId() + "'";
|
||||
+ operationId + " exist for " + deviceId.getType() + "' device '" + deviceId.getId() + "'";
|
||||
log.error(msg, e);
|
||||
throw new OperationManagementException(msg, e);
|
||||
} catch (SQLException e) {
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
package io.entgra.device.mgt.core.device.mgt.core.operation.mgt.dao;
|
||||
|
||||
import io.entgra.device.mgt.core.device.mgt.common.ActivityPaginationRequest;
|
||||
import io.entgra.device.mgt.core.device.mgt.common.DeviceIdentifier;
|
||||
import io.entgra.device.mgt.core.device.mgt.common.PaginationRequest;
|
||||
import io.entgra.device.mgt.core.device.mgt.common.operation.mgt.Activity;
|
||||
import io.entgra.device.mgt.core.device.mgt.common.operation.mgt.OperationResponse;
|
||||
@ -46,8 +47,12 @@ public interface OperationDAO {
|
||||
|
||||
int getOperationCountForDevice(int enrolmentId, PaginationRequest request) throws OperationManagementDAOException;
|
||||
|
||||
int getOperationCountForDeviceWithDeviceIdentifier(DeviceIdentifier deviceId, PaginationRequest request) throws OperationManagementDAOException;
|
||||
|
||||
List<? extends Operation> getOperationsForDevice(int enrolmentId, PaginationRequest request) throws OperationManagementDAOException;
|
||||
|
||||
List<? extends Operation> getOperationsForDeviceByDeviceIdentifier(DeviceIdentifier deviceId, PaginationRequest request) throws OperationManagementDAOException;
|
||||
|
||||
Operation getNextOperation(int enrolmentId, Operation.Status status) throws OperationManagementDAOException;
|
||||
|
||||
boolean updateOperationStatus(int enrolmentId, int operationId,Operation.Status status)
|
||||
|
||||
@ -1478,6 +1478,146 @@ public class GenericOperationDAOImpl implements OperationDAO {
|
||||
return operations;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Operation> getOperationsForDeviceByDeviceIdentifier(DeviceIdentifier deviceId, PaginationRequest request)
|
||||
throws OperationManagementDAOException {
|
||||
Operation operation;
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
String createdTo = null;
|
||||
String createdFrom = null;
|
||||
DateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
|
||||
boolean isCreatedDayProvided = false;
|
||||
boolean isUpdatedDayProvided = false; //updated day = received day
|
||||
boolean isOperationCodeProvided = false;
|
||||
boolean isStatusProvided = false;
|
||||
if (request.getOperationLogFilters().getCreatedDayFrom() != null) {
|
||||
createdFrom = simple.format(request.getOperationLogFilters().getCreatedDayFrom());
|
||||
}
|
||||
if (request.getOperationLogFilters().getCreatedDayTo() != null) {
|
||||
createdTo = simple.format(request.getOperationLogFilters().getCreatedDayTo());
|
||||
}
|
||||
Long updatedFrom = request.getOperationLogFilters().getUpdatedDayFrom();
|
||||
Long updatedTo = request.getOperationLogFilters().getUpdatedDayTo();
|
||||
List<String> operationCode = request.getOperationLogFilters().getOperationCode();
|
||||
List<String> status = request.getOperationLogFilters().getStatus();
|
||||
StringBuilder sql = new StringBuilder("SELECT " +
|
||||
"o.ID, " +
|
||||
"TYPE, " +
|
||||
"o.CREATED_TIMESTAMP, " +
|
||||
"o.RECEIVED_TIMESTAMP, " +
|
||||
"o.OPERATION_CODE, " +
|
||||
"o.INITIATED_BY, " +
|
||||
"om.STATUS, " +
|
||||
"om.ID AS OM_MAPPING_ID, " +
|
||||
"om.UPDATED_TIMESTAMP " +
|
||||
"FROM " +
|
||||
"DM_OPERATION o " +
|
||||
"INNER JOIN " +
|
||||
"(SELECT dm.OPERATION_ID, " +
|
||||
"dm.ID, " +
|
||||
"dm.STATUS, " +
|
||||
"dm.UPDATED_TIMESTAMP " +
|
||||
"FROM " +
|
||||
"DM_ENROLMENT_OP_MAPPING dm " +
|
||||
"WHERE " +
|
||||
"dm.DEVICE_IDENTIFICATION = ?");
|
||||
|
||||
if (updatedFrom != null && updatedFrom != 0 && updatedTo != null && updatedTo != 0) {
|
||||
sql.append(" AND dm.UPDATED_TIMESTAMP BETWEEN ? AND ?");
|
||||
isUpdatedDayProvided = true;
|
||||
}
|
||||
sql.append(") om ON o.ID = om.OPERATION_ID ");
|
||||
if (createdFrom != null && !createdFrom.isEmpty() && createdTo != null && !createdTo.isEmpty()) {
|
||||
sql.append(" WHERE o.CREATED_TIMESTAMP BETWEEN ? AND ?");
|
||||
isCreatedDayProvided = true;
|
||||
}
|
||||
if ((isCreatedDayProvided) && (status != null && !status.isEmpty())) {
|
||||
int size = status.size();
|
||||
sql.append(" AND (om.STATUS = ? ");
|
||||
for (int i = 0; i < size - 1; i++) {
|
||||
sql.append(" OR om.STATUS = ?");
|
||||
}
|
||||
sql.append(")");
|
||||
isStatusProvided = true;
|
||||
} else if ((!isCreatedDayProvided) && (status != null && !status.isEmpty())) {
|
||||
int size = status.size();
|
||||
sql.append(" WHERE (om.STATUS = ? ");
|
||||
for (int i = 0; i < size - 1; i++) {
|
||||
sql.append(" OR om.STATUS = ?");
|
||||
}
|
||||
sql.append(")");
|
||||
isStatusProvided = true;
|
||||
}
|
||||
if ((isCreatedDayProvided || isStatusProvided) && (operationCode != null && !operationCode.isEmpty())) {
|
||||
int size = operationCode.size();
|
||||
sql.append(" AND (o.OPERATION_CODE = ? ");
|
||||
for (int i = 0; i < size - 1; i++) {
|
||||
sql.append(" OR o.OPERATION_CODE = ?");
|
||||
}
|
||||
sql.append(")");
|
||||
isOperationCodeProvided = true;
|
||||
} else if ((!isCreatedDayProvided && !isStatusProvided) && (operationCode != null && !operationCode.isEmpty())) {
|
||||
int size = operationCode.size();
|
||||
sql.append(" WHERE (o.OPERATION_CODE = ? ");
|
||||
for (int i = 0; i < size - 1; i++) {
|
||||
sql.append(" OR o.OPERATION_CODE = ?");
|
||||
}
|
||||
sql.append(")");
|
||||
isOperationCodeProvided = true;
|
||||
}
|
||||
sql.append(" ORDER BY o.CREATED_TIMESTAMP DESC LIMIT ?,?");
|
||||
try {
|
||||
Connection conn = OperationManagementDAOFactory.getConnection();
|
||||
try (PreparedStatement stmt = conn.prepareStatement(sql.toString())) {
|
||||
int paramIndex = 1;
|
||||
stmt.setString(paramIndex++, deviceId.getId());
|
||||
if (isUpdatedDayProvided) {
|
||||
stmt.setLong(paramIndex++, updatedFrom);
|
||||
stmt.setLong(paramIndex++, updatedTo);
|
||||
}
|
||||
if (isCreatedDayProvided) {
|
||||
stmt.setString(paramIndex++, createdFrom);
|
||||
stmt.setString(paramIndex++, createdTo);
|
||||
}
|
||||
if (isStatusProvided) {
|
||||
for (String s : status) {
|
||||
stmt.setString(paramIndex++, s);
|
||||
}
|
||||
}
|
||||
if (isOperationCodeProvided) {
|
||||
for (String s : operationCode) {
|
||||
stmt.setString(paramIndex++, s);
|
||||
}
|
||||
}
|
||||
stmt.setInt(paramIndex++, request.getStartIndex());
|
||||
stmt.setInt(paramIndex, request.getRowCount());
|
||||
try (ResultSet rs = stmt.executeQuery()) {
|
||||
while (rs.next()) {
|
||||
operation = new Operation();
|
||||
operation.setId(rs.getInt("ID"));
|
||||
operation.setType(Operation.Type.valueOf(rs.getString("TYPE")));
|
||||
operation.setCreatedTimeStamp(new Timestamp(rs.getLong("CREATED_TIMESTAMP") * 1000L).toString());
|
||||
if (rs.getLong("UPDATED_TIMESTAMP") == 0) {
|
||||
operation.setReceivedTimeStamp("");
|
||||
} else {
|
||||
operation.setReceivedTimeStamp(
|
||||
new Timestamp((rs.getLong("UPDATED_TIMESTAMP") * 1000)).toString());
|
||||
}
|
||||
operation.setCode(rs.getString("OPERATION_CODE"));
|
||||
operation.setInitiatedBy(rs.getString("INITIATED_BY"));
|
||||
operation.setStatus(Operation.Status.valueOf(rs.getString("STATUS")));
|
||||
OperationDAOUtil.setActivityId(operation, rs.getInt("ID"));
|
||||
operations.add(operation);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
throw new OperationManagementDAOException("SQL error occurred while retrieving the operation " +
|
||||
"available for the device'" + deviceId + "' with status '", e);
|
||||
}
|
||||
return operations;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOperationCountForDevice(int enrolmentId, PaginationRequest request)
|
||||
throws OperationManagementDAOException {
|
||||
@ -1584,6 +1724,112 @@ public class GenericOperationDAOImpl implements OperationDAO {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOperationCountForDeviceWithDeviceIdentifier(DeviceIdentifier deviceId, PaginationRequest request)
|
||||
throws OperationManagementDAOException {
|
||||
String createdTo = null;
|
||||
String createdFrom = null;
|
||||
DateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
|
||||
if (request.getOperationLogFilters().getCreatedDayFrom() != null) {
|
||||
createdFrom = simple.format(request.getOperationLogFilters().getCreatedDayFrom());
|
||||
}
|
||||
if (request.getOperationLogFilters().getCreatedDayTo() != null) {
|
||||
createdTo = simple.format(request.getOperationLogFilters().getCreatedDayTo());
|
||||
}
|
||||
|
||||
Long updatedFrom = request.getOperationLogFilters().getUpdatedDayFrom();
|
||||
Long updatedTo = request.getOperationLogFilters().getUpdatedDayTo();
|
||||
List<String> operationCodes = request.getOperationLogFilters().getOperationCode();
|
||||
List<String> status = request.getOperationLogFilters().getStatus();
|
||||
boolean isCreatedDayProvided = false;
|
||||
boolean isUpdatedDayProvided = false;
|
||||
boolean isOperationCodeProvided = false;
|
||||
boolean isStatusProvided = false;
|
||||
|
||||
String sql = "SELECT "
|
||||
+ "COUNT(o.ID) AS OPERATION_COUNT "
|
||||
+ "FROM "
|
||||
+ "DM_OPERATION o "
|
||||
+ "INNER JOIN "
|
||||
+ "(SELECT dm.OPERATION_ID, "
|
||||
+ "dm.ID, "
|
||||
+ "dm.STATUS, "
|
||||
+ "dm.UPDATED_TIMESTAMP "
|
||||
+ "FROM "
|
||||
+ "DM_ENROLMENT_OP_MAPPING dm "
|
||||
+ "WHERE "
|
||||
+ "dm.DEVICE_IDENTIFICATION = ?";
|
||||
|
||||
if (updatedFrom != null && updatedFrom != 0 && updatedTo != null && updatedTo != 0) {
|
||||
sql += " AND dm.UPDATED_TIMESTAMP BETWEEN ? AND ?";
|
||||
isUpdatedDayProvided = true;
|
||||
}
|
||||
sql += ") om ON o.ID = om.OPERATION_ID ";
|
||||
if (createdFrom != null && !createdFrom.isEmpty() && createdTo != null && !createdTo.isEmpty()) {
|
||||
sql += " WHERE o.CREATED_TIMESTAMP BETWEEN ? AND ?";
|
||||
isCreatedDayProvided = true;
|
||||
}
|
||||
if (status != null && !status.isEmpty()) {
|
||||
if (isCreatedDayProvided) {
|
||||
sql += " AND (om.STATUS = ? ";
|
||||
} else {
|
||||
sql += " WHERE (om.STATUS = ? ";
|
||||
}
|
||||
sql = IntStream.range(0, status.size() - 1).mapToObj(i -> " OR om.STATUS = ?")
|
||||
.collect(Collectors.joining("", sql, ""));
|
||||
sql += ")";
|
||||
isStatusProvided = true;
|
||||
}
|
||||
if (operationCodes != null && !operationCodes.isEmpty()) {
|
||||
if (isCreatedDayProvided || isStatusProvided) {
|
||||
sql += " AND (o.OPERATION_CODE = ? ";
|
||||
} else {
|
||||
sql += " WHERE (o.OPERATION_CODE = ? ";
|
||||
}
|
||||
sql = IntStream.range(0, operationCodes.size() - 1).mapToObj(i -> " OR o.OPERATION_CODE = ?")
|
||||
.collect(Collectors.joining("", sql, ""));
|
||||
sql += ")";
|
||||
isOperationCodeProvided = true;
|
||||
}
|
||||
try {
|
||||
Connection conn = OperationManagementDAOFactory.getConnection();
|
||||
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
int paramIndex = 1;
|
||||
stmt.setString(paramIndex++, deviceId.getId());
|
||||
if (isUpdatedDayProvided) {
|
||||
stmt.setLong(paramIndex++, updatedFrom);
|
||||
stmt.setLong(paramIndex++, updatedTo);
|
||||
}
|
||||
if (isCreatedDayProvided) {
|
||||
stmt.setString(paramIndex++, createdFrom);
|
||||
stmt.setString(paramIndex++, createdTo);
|
||||
}
|
||||
if (isStatusProvided) {
|
||||
for (String s : status) {
|
||||
stmt.setString(paramIndex++, s);
|
||||
}
|
||||
}
|
||||
if (isOperationCodeProvided) {
|
||||
for (String s : operationCodes) {
|
||||
stmt.setString(paramIndex++, s);
|
||||
}
|
||||
}
|
||||
|
||||
try (ResultSet rs = stmt.executeQuery()) {
|
||||
if (rs.next()) {
|
||||
return rs.getInt("OPERATION_COUNT");
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "SQL error occurred while retrieving the operation count of the device" + deviceId
|
||||
+ " for search query";
|
||||
log.error(msg, e);
|
||||
throw new OperationManagementDAOException(msg, e);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Operation getNextOperation(int enrolmentId, Operation.Status status) throws OperationManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
|
||||
@ -120,6 +120,7 @@ public class OperationDAOUtil {
|
||||
operation.setEnabled(dtoOperation.isEnabled());
|
||||
operation.setProperties(dtoOperation.getProperties());
|
||||
operation.setActivityId(dtoOperation.getActivityId());
|
||||
operation.setInitiatedBy(dtoOperation.getInitiatedBy());
|
||||
|
||||
|
||||
return operation;
|
||||
|
||||
@ -345,4 +345,6 @@ public interface GroupManagementProviderService {
|
||||
* @throws GroupManagementException
|
||||
*/
|
||||
DeviceTypesOfGroups getDeviceTypesOfGroups(List<String> identifiers) throws GroupManagementException;
|
||||
|
||||
DeviceGroup getUserOwnGroup(int groupId, boolean requireGroupProps, int depth) throws GroupManagementException;
|
||||
}
|
||||
|
||||
@ -45,11 +45,7 @@ import org.wso2.carbon.user.api.UserStoreException;
|
||||
import org.wso2.carbon.user.api.UserStoreManager;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -552,45 +548,51 @@ public class GroupManagementProviderServiceImpl implements GroupManagementProvid
|
||||
throw new GroupManagementException(msg);
|
||||
}
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Get groups with hierarchy " + request.toString());
|
||||
log.debug("Get groups with hierarchy " + request);
|
||||
}
|
||||
boolean isWithParentPath = false;
|
||||
DeviceManagerUtil.validateGroupListPageSize(request);
|
||||
List<DeviceGroup> rootGroups;
|
||||
try {
|
||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||
request.setParentPath(DeviceGroupConstants.HierarchicalGroup.SEPERATOR);
|
||||
if (StringUtils.isBlank(username)) {
|
||||
GroupManagementDAOFactory.openConnection();
|
||||
rootGroups = groupDAO.getGroups(request, tenantId);
|
||||
} else {
|
||||
List<Integer> allDeviceGroupIdsOfUser = getGroupIds(username);
|
||||
GroupManagementDAOFactory.openConnection();
|
||||
rootGroups = this.groupDAO.getGroups(request, allDeviceGroupIdsOfUser, tenantId, isWithParentPath);
|
||||
}
|
||||
String parentPath;
|
||||
List<DeviceGroup> childrenGroups;
|
||||
for (DeviceGroup rootGroup : rootGroups) {
|
||||
parentPath = DeviceManagerUtil.createParentPath(rootGroup);
|
||||
childrenGroups = groupDAO.getChildrenGroups(parentPath, tenantId);
|
||||
createGroupWithChildren(
|
||||
rootGroup, childrenGroups, requireGroupProps, tenantId, request.getDepth(), 0);
|
||||
if (StringUtils.isBlank(username)) {
|
||||
try {
|
||||
GroupManagementDAOFactory.openConnection();
|
||||
rootGroups = groupDAO.getGroups(request, tenantId);
|
||||
for (DeviceGroup rootGroup : rootGroups) {
|
||||
parentPath = DeviceManagerUtil.createParentPath(rootGroup);
|
||||
childrenGroups = groupDAO.getChildrenGroups(parentPath, tenantId);
|
||||
createGroupWithChildren(
|
||||
rootGroup, childrenGroups, requireGroupProps, tenantId, request.getDepth(), 0);
|
||||
if (requireGroupProps) {
|
||||
populateGroupProperties(rootGroup, tenantId);
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while opening a connection to the data source to retrieve all groups "
|
||||
+ "with hierarchy";
|
||||
log.error(msg, e);
|
||||
throw new GroupManagementException(msg, e);
|
||||
} finally {
|
||||
GroupManagementDAOFactory.closeConnection();
|
||||
}
|
||||
} else {
|
||||
List<Integer> allDeviceGroupIdsOfUser = getGroupIds(username);
|
||||
rootGroups = this.getGroups(allDeviceGroupIdsOfUser, tenantId);
|
||||
if (requireGroupProps) {
|
||||
populateGroupProperties(rootGroup, tenantId);
|
||||
for (DeviceGroup rootGroup : rootGroups) {
|
||||
populateGroupProperties(rootGroup, tenantId);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (GroupManagementDAOException e) {
|
||||
String msg = "Error occurred while retrieving all groups with hierarchy";
|
||||
log.error(msg, e);
|
||||
throw new GroupManagementException(msg, e);
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while opening a connection to the data source to retrieve all groups "
|
||||
+ "with hierarchy";
|
||||
log.error(msg, e);
|
||||
throw new GroupManagementException(msg, e);
|
||||
} finally {
|
||||
GroupManagementDAOFactory.closeConnection();
|
||||
}
|
||||
|
||||
PaginationResult groupResult = new PaginationResult();
|
||||
groupResult.setData(rootGroups);
|
||||
if (StringUtils.isBlank(username)) {
|
||||
@ -601,6 +603,127 @@ public class GroupManagementProviderServiceImpl implements GroupManagementProvid
|
||||
return groupResult;
|
||||
}
|
||||
|
||||
private List<DeviceGroup> getGroups(List<Integer> groupIds, int tenantId) throws GroupManagementException {
|
||||
try {
|
||||
GroupManagementDAOFactory.openConnection();
|
||||
List<DeviceGroup >groups = groupDAO.getGroups(groupIds, tenantId);
|
||||
if (groups == null) {
|
||||
String msg = "Retrieved null when getting groups for group ids " + groupIds.toString();
|
||||
log.error(msg);
|
||||
throw new GroupManagementException(msg);
|
||||
}
|
||||
if (groups.isEmpty()) return groups;
|
||||
groups.sort(Comparator.comparing(DeviceGroup::getGroupId));
|
||||
return getTree(groups);
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while opening a connection to the data source to retrieve all groups "
|
||||
+ "with hierarchy";
|
||||
log.error(msg, e);
|
||||
throw new GroupManagementException(msg, e);
|
||||
} catch (GroupManagementDAOException ex) {
|
||||
String msg = "Error occurred while getting groups for group ids " + groupIds.toString();
|
||||
log.error(msg, ex);
|
||||
throw new GroupManagementException(msg, ex);
|
||||
} finally {
|
||||
GroupManagementDAOFactory.closeConnection();
|
||||
}
|
||||
}
|
||||
|
||||
private List<DeviceGroup> getTree(List<DeviceGroup> groups) {
|
||||
List<DeviceGroup> tree = new ArrayList<>();
|
||||
for (DeviceGroup deviceGroup : groups) {
|
||||
DeviceGroup treeNode = tree.stream().
|
||||
filter(node -> Arrays.stream(deviceGroup.getParentPath().split("/")).
|
||||
collect(Collectors.toList()).contains(Integer.toString(node.getGroupId()))).
|
||||
findFirst().orElse(null);
|
||||
if (treeNode != null) {
|
||||
if (Objects.equals(treeNode.getParentPath(), deviceGroup.getParentPath())) {
|
||||
tree.add(deviceGroup);
|
||||
} else {
|
||||
List<DeviceGroup> tempGroups = treeNode.getChildrenGroups();
|
||||
if (tempGroups == null) {
|
||||
tempGroups = new ArrayList<>();
|
||||
}
|
||||
tempGroups.add(deviceGroup);
|
||||
treeNode.setChildrenGroups(getTree(tempGroups));
|
||||
}
|
||||
} else {
|
||||
tree.add(deviceGroup);
|
||||
}
|
||||
}
|
||||
return tree;
|
||||
}
|
||||
|
||||
private DeviceGroup findGroupFromTree(List<DeviceGroup> tree, int groupId) {
|
||||
for (DeviceGroup node: tree) {
|
||||
if (node.getGroupId() == groupId) return node;
|
||||
if (node.getChildrenGroups() != null) {
|
||||
DeviceGroup tempNode = findGroupFromTree(node.getChildrenGroups(), groupId);
|
||||
if (tempNode != null) {
|
||||
return tempNode;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private boolean isAdminUser(String username, UserStoreManager userStoreManager)
|
||||
throws GroupManagementException {
|
||||
try {
|
||||
if (!userStoreManager.isExistingUser(username)) {
|
||||
String msg = "User doesn't exists with given username " + username;
|
||||
throw new GroupManagementException(msg);
|
||||
}
|
||||
|
||||
String []currentRoles = userStoreManager.getRoleListOfUser(username);
|
||||
for (String role : currentRoles) {
|
||||
if (role.equals("admin")) return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
} catch (UserStoreException e) {
|
||||
String msg = "Error occurred while requesting user details";
|
||||
log.error(msg, e);
|
||||
throw new GroupManagementException(msg, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeviceGroup getUserOwnGroup(int groupId, boolean requireGroupProps, int depth) throws GroupManagementException {
|
||||
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
||||
String username = ctx.getUsername();
|
||||
int tenantId = ctx.getTenantId();
|
||||
try {
|
||||
UserStoreManager userStoreManager = DeviceManagementDataHolder.getInstance().
|
||||
getRealmService().getTenantUserRealm(tenantId).getUserStoreManager();
|
||||
if (isAdminUser(username, userStoreManager)) {
|
||||
return getGroup(groupId, requireGroupProps);
|
||||
}
|
||||
|
||||
List<Integer> userOwnGroupIds = this.getGroupIds(username);
|
||||
if (userOwnGroupIds == null) {
|
||||
String msg = "Retrieved null when getting group ids for user " + username;
|
||||
log.error(msg);
|
||||
throw new GroupManagementException(msg);
|
||||
}
|
||||
|
||||
DeviceGroup deviceGroup = findGroupFromTree(
|
||||
getGroups(userOwnGroupIds, tenantId), groupId);
|
||||
if (deviceGroup != null && requireGroupProps)
|
||||
populateGroupProperties(deviceGroup, tenantId);
|
||||
|
||||
return deviceGroup;
|
||||
} catch (UserStoreException e) {
|
||||
String msg = "Error occurred while getting user store manager service";
|
||||
log.error(msg, e);
|
||||
throw new GroupManagementException(msg, e);
|
||||
} catch (GroupManagementDAOException e) {
|
||||
String msg = "Error occurred while obtaining group '" + groupId + "'";
|
||||
log.error(msg, e);
|
||||
throw new GroupManagementException(msg, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeviceGroup> getGroups(String username, boolean requireGroupProps) throws GroupManagementException {
|
||||
if (username == null || username.isEmpty()) {
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
<parent>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>heartbeat-management</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>identity-extensions</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>identity-extensions</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>logger</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>io.entgra.device.mgt.core.notification.logger</artifactId>
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>operation-template-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>policy-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>policy-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>policy-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>policy-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>subtype-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<parent>
|
||||
<artifactId>task-manager</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>task-manager</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>task-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>task-watcher</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>task-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<parent>
|
||||
<artifactId>tenant-mgt</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<parent>
|
||||
<artifactId>tenant-mgt</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<parent>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>email-sender</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>transport-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>sms-handler</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>sms-handler</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>sms-handler</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>transport-mgt</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<artifactId>ui-request-interceptor</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>webapp-authenticator-framework</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>grafana-mgt-feature</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>grafana-mgt-feature</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>analytics-mgt-feature</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>apimgt-extensions-feature</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>apimgt-extensions-feature</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>apimgt-extensions-feature</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>apimgt-extensions-feature</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>apimgt-extensions-feature</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<parent>
|
||||
<groupId>io.entgra.device.mgt.core</groupId>
|
||||
<artifactId>application-mgt-feature</artifactId>
|
||||
<version>5.0.27-SNAPSHOT</version>
|
||||
<version>5.0.29-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user