diff --git a/src/main/java/com/navi/infra/portal/v2/jit/entity/Environment.java b/src/main/java/com/navi/infra/portal/v2/jit/entity/Environment.java index 178d89b8..55bc9dc3 100644 --- a/src/main/java/com/navi/infra/portal/v2/jit/entity/Environment.java +++ b/src/main/java/com/navi/infra/portal/v2/jit/entity/Environment.java @@ -1,21 +1,19 @@ package com.navi.infra.portal.v2.jit.entity; public enum Environment { - DEV("dev", 1), - QA("qa", 1), - PROD("prod", 2), - NONPROD("nonprod", 1), - CMD("cmd", 2), - PERF("perf", 1), - UAT("uat", 1), - DATA_PLATFORM_NONPROD("data-platform-nonprod", 1), - DATA_PLATFORM_PROD("data-platform-prod", 2); + DEV("dev"), + QA("qa"), + PROD("prod"), + NONPROD("nonprod"), + CMD("cmd"), + PERF("perf"), + UAT("uat"), + DATA_PLATFORM_NONPROD("data-platform-nonprod"), + DATA_PLATFORM_PROD("data-platform-prod"); public final String type; - public final Long approvals; - Environment(String type, int approvals) { + Environment(String type) { this.type = type; - this.approvals = (long) approvals; } } diff --git a/src/main/java/com/navi/infra/portal/v2/jit/utils/AuthUtil.java b/src/main/java/com/navi/infra/portal/v2/jit/utils/AuthUtil.java index cfc93f75..e81b0ab9 100644 --- a/src/main/java/com/navi/infra/portal/v2/jit/utils/AuthUtil.java +++ b/src/main/java/com/navi/infra/portal/v2/jit/utils/AuthUtil.java @@ -6,7 +6,6 @@ import com.navi.infra.portal.domain.user.Role; import com.navi.infra.portal.domain.user.Team; import com.navi.infra.portal.domain.user.User; import com.navi.infra.portal.service.user.UserService; -import com.navi.infra.portal.v2.jit.entity.Environment; import com.navi.infra.portal.v2.jit.entity.JitApproval; import com.navi.infra.portal.v2.jit.entity.JitRequest; import com.navi.infra.portal.v2.jit.entity.JitRequestStatus; @@ -79,20 +78,15 @@ public class AuthUtil { .collect(Collectors.toList()); } - Long findTotalApprovalsIfAllTeamsApproved(Long jitId) { + boolean hasApprovalsFromAllRequiredTeams(Long jitId) { List approvalList = jitApprovalsRepository.countApprovedInEachTeam(jitId); - long totalApproved = approvalList.stream().reduce(0L, Long::sum); - boolean allTeamApproval = approvalList.stream() - .allMatch(approval -> approval >= 1); - return allTeamApproval ? totalApproved : 0; + return approvalList.stream().allMatch(approval -> approval >= 1); } public boolean haveRequiredApprovals(JitRequest jitRequest) { - Environment env = jitRequest.getEnvironment(); - Long approvedRequests = findTotalApprovalsIfAllTeamsApproved(jitRequest.getId()); + return hasApprovalsFromAllRequiredTeams(jitRequest.getId()); // is atleast one approval from each required team obtained based on the mapping in yaml // and required approval type (master or something) - return approvedRequests >= env.approvals; } public List getReviewersFromRole(String teamName, String reviewerRoleType) {