From 2d10e4ef95f3bd317883a702a7b991b1ac77ae62 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 26 Feb 2015 11:20:23 -0500 Subject: [PATCH] Merged #242 "issue-545: Enforce repository permissions in patch page" --- src/main/java/com/gitblit/models/TicketModel.java | 41 ++++++++++++++++++++++++++++++++++------- 1 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/gitblit/models/TicketModel.java b/src/main/java/com/gitblit/models/TicketModel.java index 1ff55dd..a4880ea 100644 --- a/src/main/java/com/gitblit/models/TicketModel.java +++ b/src/main/java/com/gitblit/models/TicketModel.java @@ -35,6 +35,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.NoSuchElementException; import java.util.Set; import java.util.TreeSet; import java.util.regex.Matcher; @@ -636,7 +637,7 @@ } public boolean hasComment() { - return comment != null && !comment.isDeleted(); + return comment != null && !comment.isDeleted() && comment.text != null; } public Comment comment(String text) { @@ -785,7 +786,21 @@ for (String item : items) { list.add(prefix + item); } - setField(field, join(list, ",")); + if (hasField(field)) { + String flat = getString(field); + if (isEmpty(flat)) { + // field is empty, use this list + setField(field, join(list, ",")); + } else { + // merge this list into the existing field list + Set<String> set = new TreeSet<String>(Arrays.asList(flat.split(","))); + set.addAll(list); + setField(field, join(set, ",")); + } + } else { + // does not have a list for this field + setField(field, join(list, ",")); + } } public String getId() { @@ -1138,7 +1153,8 @@ } public static enum Score { - approved(2), looks_good(1), not_reviewed(0), needs_improvement(-1), vetoed(-2); + approved(2), looks_good(1), not_reviewed(0), needs_improvement(-1), vetoed( + -2); final int value; @@ -1153,6 +1169,15 @@ @Override public String toString() { return name().toLowerCase().replace('_', ' '); + } + + public static Score fromScore(int score) { + for (Score s : values()) { + if (s.getValue() == score) { + return s; + } + } + throw new NoSuchElementException(String.valueOf(score)); } } @@ -1201,13 +1226,15 @@ } public static enum Status { - New, Open, Resolved, Fixed, Merged, Wontfix, Declined, Duplicate, Invalid, On_Hold; + New, Open, Closed, Resolved, Fixed, Merged, Wontfix, Declined, Duplicate, Invalid, Abandoned, On_Hold, No_Change_Required; - public static Status [] requestWorkflow = { Open, Resolved, Declined, Duplicate, Invalid, On_Hold }; + public static Status [] requestWorkflow = { Open, Resolved, Declined, Duplicate, Invalid, Abandoned, On_Hold, No_Change_Required }; - public static Status [] bugWorkflow = { Open, Fixed, Wontfix, Duplicate, Invalid, On_Hold }; + public static Status [] bugWorkflow = { Open, Fixed, Wontfix, Duplicate, Invalid, Abandoned, On_Hold, No_Change_Required }; - public static Status [] proposalWorkflow = { Open, Declined, On_Hold}; + public static Status [] proposalWorkflow = { Open, Resolved, Declined, Abandoned, On_Hold, No_Change_Required }; + + public static Status [] milestoneWorkflow = { Open, Closed, Abandoned, On_Hold }; @Override public String toString() { -- Gitblit v1.9.1