Merge branch 'master' of ssh://repository.entgra.net:222/community/device-mgt-core into syncHierarchicalGrouping

syncHierarchicalGrouping
Thilina Sandaruwan 1 year ago
commit cc8a2e9855

@ -1283,13 +1283,13 @@ public class ApplicationManagerImpl implements ApplicationManager {
this.changeLifecycleState(applicationReleaseDTO, lifecycleChanger); this.changeLifecycleState(applicationReleaseDTO, lifecycleChanger);
} }
} }
if (applicationDTO.getType().equals("ENTERPRISE") || applicationDTO.getType().equals("PUBLIC") ) {
persistAppIconInfo(applicationReleaseDTO);
}
applicationReleaseEntities.add(applicationReleaseDTO); applicationReleaseEntities.add(applicationReleaseDTO);
} }
applicationDTO.setId(appId); applicationDTO.setId(appId);
applicationDTO.setApplicationReleaseDTOs(applicationReleaseEntities); applicationDTO.setApplicationReleaseDTOs(applicationReleaseEntities);
if (applicationDTO.getType().equals("ENTERPRISE") || applicationDTO.getType().equals("PUBLIC") ) {
persistAppIconInfo(applicationReleaseDTO);
}
return APIUtil.appDtoToAppResponse(applicationDTO); return APIUtil.appDtoToAppResponse(applicationDTO);
} }
} catch (LifeCycleManagementDAOException e) { } catch (LifeCycleManagementDAOException e) {

@ -521,7 +521,6 @@ public class APIUtil {
public static String createAppIconPath(ApplicationReleaseDTO applicationReleaseDTO, int tenantId) throws ApplicationManagementException { public static String createAppIconPath(ApplicationReleaseDTO applicationReleaseDTO, int tenantId) throws ApplicationManagementException {
String basePath = getArtifactDownloadBaseURL() + tenantId + Constants.FORWARD_SLASH + applicationReleaseDTO String basePath = getArtifactDownloadBaseURL() + tenantId + Constants.FORWARD_SLASH + applicationReleaseDTO
.getAppHashValue() + Constants.FORWARD_SLASH; .getAppHashValue() + Constants.FORWARD_SLASH;
String iconPath = basePath + Constants.ICON_ARTIFACT + Constants.FORWARD_SLASH + applicationReleaseDTO.getIconName(); return basePath + Constants.ICON_ARTIFACT + Constants.FORWARD_SLASH + applicationReleaseDTO.getIconName();
return iconPath;
} }
} }

@ -455,6 +455,9 @@ public class UserManagementServiceImpl implements UserManagementService {
userList = new ArrayList<>(users.size()); userList = new ArrayList<>(users.size());
BasicUserInfo user; BasicUserInfo user;
for (String username : users) { for (String username : users) {
if (Constants.APIM_RESERVED_USER.equals(username)) {
continue;
}
user = getBasicUserInfo(username); user = getBasicUserInfo(username);
userList.add(user); userList.add(user);
} }
@ -515,6 +518,9 @@ public class UserManagementServiceImpl implements UserManagementService {
if (StringUtils.isNotEmpty(username)) { if (StringUtils.isNotEmpty(username)) {
commonUsers = getUserList(null, username); commonUsers = getUserList(null, username);
} }
if (commonUsers != null) {
commonUsers.remove(Constants.APIM_RESERVED_USER);
}
if (!skipSearch(commonUsers) && StringUtils.isNotEmpty(firstName)) { if (!skipSearch(commonUsers) && StringUtils.isNotEmpty(firstName)) {
tempList = getUserList(Constants.USER_CLAIM_FIRST_NAME, firstName); tempList = getUserList(Constants.USER_CLAIM_FIRST_NAME, firstName);
@ -689,6 +695,9 @@ public class UserManagementServiceImpl implements UserManagementService {
userList = new ArrayList<>(); userList = new ArrayList<>();
UserInfo user; UserInfo user;
for (String username : users) { for (String username : users) {
if (Constants.APIM_RESERVED_USER.equals(username)) {
continue;
}
user = new UserInfo(); user = new UserInfo();
user.setUsername(username); user.setUsername(username);
user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS)); user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS));

@ -30,6 +30,7 @@ public class Constants {
public static final String USER_CLAIM_MODIFIED = "http://wso2.org/claims/modified"; public static final String USER_CLAIM_MODIFIED = "http://wso2.org/claims/modified";
public static final String USER_CLAIM_DEVICES = "http://wso2.org/claims/devices"; public static final String USER_CLAIM_DEVICES = "http://wso2.org/claims/devices";
public static final String PRIMARY_USER_STORE = "PRIMARY"; public static final String PRIMARY_USER_STORE = "PRIMARY";
public static final String APIM_RESERVED_USER = "apim_reserved_user";
public static final String DEFAULT_STREAM_VERSION = "1.0.0"; public static final String DEFAULT_STREAM_VERSION = "1.0.0";
public static final String SCOPE = "scope"; public static final String SCOPE = "scope";
public static final String JDBC_USERSTOREMANAGER = "org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager"; public static final String JDBC_USERSTOREMANAGER = "org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager";

@ -18,10 +18,21 @@
package io.entgra.device.mgt.core.device.mgt.common.general; package io.entgra.device.mgt.core.device.mgt.common.general;
import java.util.Map;
public class QREnrollmentDetails { public class QREnrollmentDetails {
String ownershipType; String ownershipType;
String username; String username;
String enrollmentMode; String enrollmentMode;
Map<String, String> customValues;
public Map<String, String> getCustomValues() {
return customValues;
}
public void setCustomValues(Map<String, String> customValues) {
this.customValues = customValues;
}
public String getOwnershipType() { return ownershipType; } public String getOwnershipType() { return ownershipType; }

@ -156,6 +156,7 @@ import java.lang.reflect.Type;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collection; import java.util.Collection;
@ -1069,7 +1070,15 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
dateDiff = endDate.getTime() - device.getEnrolmentInfo().getDateOfEnrolment(); dateDiff = endDate.getTime() - device.getEnrolmentInfo().getDateOfEnrolment();
} }
} }
long dateInDays = TimeUnit.DAYS.convert(dateDiff, TimeUnit.MILLISECONDS);
// Convert dateDiff to days as a decimal value
double dateDiffInDays = (double) dateDiff / (24 * 60 * 60 * 1000);
if (dateDiffInDays % 1 >= 0.9) {
dateDiffInDays = Math.ceil(dateDiffInDays);
}
long dateInDays = (long) dateDiffInDays;
double cost = (tenantCost.getCost() / 365) * dateInDays; double cost = (tenantCost.getCost() / 365) * dateInDays;
totalCost += cost; totalCost += cost;
device.setCost(Math.round(cost * 100.0) / 100.0); device.setCost(Math.round(cost * 100.0) / 100.0);
@ -1136,9 +1145,13 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
long difference_In_Days = (difference_In_Time / (1000 * 60 * 60 * 24)) % 365; long difference_In_Days = (difference_In_Time / (1000 * 60 * 60 * 24)) % 365;
if (difference_In_Time % (1000 * 60 * 60 * 24) >= 0.9 * (1000 * 60 * 60 * 24)) {
difference_In_Days++;
}
for (int i = 1; i <= difference_In_Years; i++) { for (int i = 1; i <= difference_In_Years; i++) {
List<Device> allDevicesPerYear = new ArrayList<>(); List<Device> allDevicesPerYear = new ArrayList<>();
LocalDateTime oneYearAfterStart = startDate.toLocalDateTime().plusYears(1); LocalDateTime oneYearAfterStart = startDate.toLocalDateTime().plusYears(1).with(LocalTime.of(23, 59, 59));;
Timestamp newStartDate; Timestamp newStartDate;
Timestamp newEndDate; Timestamp newEndDate;
@ -1147,14 +1160,12 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
remainingDaysConsidered = true; remainingDaysConsidered = true;
oneYearAfterStart = startDate.toLocalDateTime(); oneYearAfterStart = startDate.toLocalDateTime();
newEndDate = endDate; newEndDate = endDate;
} else if (Timestamp.valueOf(oneYearAfterStart).getTime() >= endDate.getTime()) {
newEndDate = Timestamp.valueOf(oneYearAfterStart);
} else { } else {
oneYearAfterStart = startDate.toLocalDateTime().plusYears(1); oneYearAfterStart = startDate.toLocalDateTime().plusYears(1).with(LocalTime.of(23, 59, 59));;
newEndDate = Timestamp.valueOf(oneYearAfterStart); newEndDate = Timestamp.valueOf(oneYearAfterStart);
} }
} else { } else {
oneYearAfterStart = startDate.toLocalDateTime().plusYears(1); oneYearAfterStart = startDate.toLocalDateTime().plusYears(1).with(LocalTime.of(23, 59, 59));;
newEndDate = Timestamp.valueOf(oneYearAfterStart); newEndDate = Timestamp.valueOf(oneYearAfterStart);
} }
@ -1177,7 +1188,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
allDevices.addAll(billingResponse.getDevice()); allDevices.addAll(billingResponse.getDevice());
totalCost = totalCost + billingResponse.getTotalCostPerYear(); totalCost = totalCost + billingResponse.getTotalCostPerYear();
deviceCount = deviceCount + billingResponse.getDeviceCount(); deviceCount = deviceCount + billingResponse.getDeviceCount();
LocalDateTime nextStartDate = oneYearAfterStart.plusDays(1); LocalDateTime nextStartDate = oneYearAfterStart.plusDays(1).with(LocalTime.of(00, 00, 00));
startDate = Timestamp.valueOf(nextStartDate); startDate = Timestamp.valueOf(nextStartDate);
} }

@ -224,7 +224,7 @@
<Scope>perm:admin:tenant:view</Scope> <Scope>perm:admin:tenant:view</Scope>
<Scope>perm:admin:metadata:view</Scope> <Scope>perm:admin:metadata:view</Scope>
<Scope>perm:admin:usage:view</Scope> <Scope>perm:admin:usage:view</Scope>
<Scope>perm:android:clear-applicatio</Scope> <Scope>perm:android:clear-application</Scope>
<Scope>perm:android:suspend-package</Scope> <Scope>perm:android:suspend-package</Scope>
<Scope>perm:android:alternate-install</Scope> <Scope>perm:android:alternate-install</Scope>
</Scopes> </Scopes>

Loading…
Cancel
Save