From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001
From: Paul Martin <paul@paulsputer.com>
Date: Sat, 30 Apr 2016 04:19:14 -0400
Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates

---
 src/main/java/com/gitblit/models/RepositoryModel.java |   76 +++++++++++++++++++++++---------------
 1 files changed, 46 insertions(+), 30 deletions(-)

diff --git a/src/main/java/com/gitblit/models/RepositoryModel.java b/src/main/java/com/gitblit/models/RepositoryModel.java
index 6e1e226..a81c622 100644
--- a/src/main/java/com/gitblit/models/RepositoryModel.java
+++ b/src/main/java/com/gitblit/models/RepositoryModel.java
@@ -26,16 +26,18 @@
 
 import com.gitblit.Constants.AccessRestrictionType;
 import com.gitblit.Constants.AuthorizationControl;
+import com.gitblit.Constants.CommitMessageRenderer;
 import com.gitblit.Constants.FederationStrategy;
 import com.gitblit.utils.ArrayUtils;
+import com.gitblit.utils.ModelUtils;
 import com.gitblit.utils.StringUtils;
 
 /**
  * RepositoryModel is a serializable model class that represents a Gitblit
  * repository including its configuration settings and access restriction.
- * 
+ *
  * @author James Moger
- * 
+ *
  */
 public class RepositoryModel implements Serializable, Comparable<RepositoryModel> {
 
@@ -46,17 +48,15 @@
 	public String description;
 	public List<String> owners;
 	public Date lastChange;
+	public String lastChangeAuthor;
 	public boolean hasCommits;
 	public boolean showRemoteBranches;
-	public boolean useTickets;
-	public boolean useDocs;
 	public boolean useIncrementalPushTags;
 	public String incrementalPushTagPrefix;
 	public AccessRestrictionType accessRestriction;
 	public AuthorizationControl authorizationControl;
 	public boolean allowAuthenticated;
 	public boolean isFrozen;
-	public boolean showReadme;
 	public FederationStrategy federationStrategy;
 	public List<String> federationSets;
 	public boolean isFederated;
@@ -64,6 +64,7 @@
 	public boolean skipSummaryMetrics;
 	public String frequency;
 	public boolean isBare;
+	public boolean isMirror;
 	public String origin;
 	public String HEAD;
 	public List<String> availableRefs;
@@ -82,11 +83,17 @@
 	public String gcThreshold;
 	public int gcPeriod;
 	public int maxActivityCommits;
-	
+	public List<String> metricAuthorExclusions;
+	public CommitMessageRenderer commitMessageRenderer;
+	public boolean acceptNewPatchsets;
+	public boolean acceptNewTickets;
+	public boolean requireApproval;
+	public String mergeTo;
+
 	public transient boolean isCollectingGarbage;
 	public Date lastGC;
 	public String sparkleshareId;
-	
+
 	public RepositoryModel() {
 		this("", "", "", new Date(0));
 	}
@@ -98,14 +105,16 @@
 		this.accessRestriction = AccessRestrictionType.NONE;
 		this.authorizationControl = AuthorizationControl.NAMED;
 		this.federationSets = new ArrayList<String>();
-		this.federationStrategy = FederationStrategy.FEDERATE_THIS;	
+		this.federationStrategy = FederationStrategy.FEDERATE_THIS;
 		this.projectPath = StringUtils.getFirstPathElement(name);
 		this.owners = new ArrayList<String>();
 		this.isBare = true;
-		
+		this.acceptNewTickets = true;
+		this.acceptNewPatchsets = true;
+
 		addOwner(owner);
 	}
-	
+
 	public List<String> getLocalBranches() {
 		if (ArrayUtils.isEmpty(availableRefs)) {
 			return new ArrayList<String>();
@@ -118,30 +127,34 @@
 		}
 		return localBranches;
 	}
-	
+
 	public void addFork(String repository) {
 		if (forks == null) {
 			forks = new TreeSet<String>();
 		}
 		forks.add(repository);
 	}
-	
+
 	public void removeFork(String repository) {
 		if (forks == null) {
 			return;
 		}
 		forks.remove(repository);
 	}
-	
+
 	public void resetDisplayName() {
 		displayName = null;
 	}
-	
+
+	public String getRID() {
+		return StringUtils.getSHA1(name);
+	}
+
 	@Override
 	public int hashCode() {
 		return name.hashCode();
 	}
-	
+
 	@Override
 	public boolean equals(Object o) {
 		if (o instanceof RepositoryModel) {
@@ -162,34 +175,38 @@
 	public int compareTo(RepositoryModel o) {
 		return StringUtils.compareRepositoryNames(name, o.name);
 	}
-	
+
 	public boolean isFork() {
 		return !StringUtils.isEmpty(originRepository);
 	}
-	
+
 	public boolean isOwner(String username) {
 		if (StringUtils.isEmpty(username) || ArrayUtils.isEmpty(owners)) {
-			return false;
+			return isUsersPersonalRepository(username);
 		}
-		return owners.contains(username.toLowerCase());
+		return owners.contains(username.toLowerCase()) || isUsersPersonalRepository(username);
 	}
-	
+
 	public boolean isPersonalRepository() {
-		return !StringUtils.isEmpty(projectPath) && projectPath.charAt(0) == '~';
+		return !StringUtils.isEmpty(projectPath) && ModelUtils.isPersonalRepository(projectPath);
 	}
-	
+
 	public boolean isUsersPersonalRepository(String username) {
-		return !StringUtils.isEmpty(projectPath) && projectPath.equalsIgnoreCase("~" + username);
+		return !StringUtils.isEmpty(projectPath) && ModelUtils.isUsersPersonalRepository(username, projectPath);
 	}
-	
+
 	public boolean allowAnonymousView() {
 		return !accessRestriction.atLeast(AccessRestrictionType.VIEW);
 	}
-	
+
+	public boolean isShowActivity() {
+		return maxActivityCommits > -1;
+	}
+
 	public boolean isSparkleshared() {
 		return !StringUtils.isEmpty(sparkleshareId);
 	}
-	
+
 	public RepositoryModel cloneAs(String cloneName) {
 		RepositoryModel clone = new RepositoryModel();
 		clone.originRepository = name;
@@ -200,14 +217,13 @@
 		clone.accessRestriction = AccessRestrictionType.PUSH;
 		clone.authorizationControl = AuthorizationControl.NAMED;
 		clone.federationStrategy = federationStrategy;
-		clone.showReadme = showReadme;
 		clone.showRemoteBranches = false;
 		clone.allowForks = false;
-		clone.useDocs = useDocs;
-		clone.useTickets = useTickets;
+		clone.acceptNewPatchsets = false;
+		clone.acceptNewTickets = false;
 		clone.skipSizeCalculation = skipSizeCalculation;
 		clone.skipSummaryMetrics = skipSummaryMetrics;
-		clone.sparkleshareId = sparkleshareId; 
+		clone.sparkleshareId = sparkleshareId;
 		return clone;
 	}
 

--
Gitblit v1.9.1