Skip to content

Commit

Permalink
Prevent Rules with same name in a Policy (#13883)
Browse files Browse the repository at this point in the history
  • Loading branch information
mohityadav766 authored Nov 7, 2023
1 parent a2d99a4 commit 8d411e2
Showing 1 changed file with 11 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import javax.ws.rs.BadRequestException;
import lombok.extern.slf4j.Slf4j;
import org.jdbi.v3.sqlobject.transaction.Transaction;
import org.openmetadata.schema.entity.policies.Policy;
Expand Down Expand Up @@ -158,6 +160,15 @@ public void entitySpecificUpdate() {
}

private void updateRules(List<Rule> origRules, List<Rule> updatedRules) {
// Check if the Rules have unique names
if (!nullOrEmpty(updatedRules)) {
Set<String> ruleNames = updatedRules.stream().map(Rule::getName).collect(Collectors.toSet());

if (ruleNames.size() != updatedRules.size()) {
throw new BadRequestException("Policy contains duplicate Rules. Please use unique name for Rules.");
}
}

// Record change description
List<Rule> deletedRules = new ArrayList<>();
List<Rule> addedRules = new ArrayList<>();
Expand Down

0 comments on commit 8d411e2

Please sign in to comment.