From 5e88265c36b93f63a68bcafb373434a9fbbaa42e Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 19 Oct 2012 22:47:34 -0400
Subject: [PATCH] Construct access permissions from already retrieved data
---
src/com/gitblit/models/RepositoryModel.java | 33 ++++++++++++++++++++++++++++++---
1 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/src/com/gitblit/models/RepositoryModel.java b/src/com/gitblit/models/RepositoryModel.java
index 3148b5b..502f886 100644
--- a/src/com/gitblit/models/RepositoryModel.java
+++ b/src/com/gitblit/models/RepositoryModel.java
@@ -75,6 +75,7 @@
public boolean allowForks;
public Set<String> forks;
public String originRepository;
+ public boolean verifyCommitter;
public RepositoryModel() {
this("", "", "", new Date(0));
@@ -88,7 +89,8 @@
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);
}
public List<String> getLocalBranches() {
@@ -121,6 +123,19 @@
public void resetDisplayName() {
displayName = null;
}
+
+ @Override
+ public int hashCode() {
+ return name.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o instanceof RepositoryModel) {
+ return name.equals(((RepositoryModel) o).name);
+ }
+ return false;
+ }
@Override
public String toString() {
@@ -135,12 +150,24 @@
return StringUtils.compareRepositoryNames(name, o.name);
}
+ public boolean isFork() {
+ return !StringUtils.isEmpty(originRepository);
+ }
+
+ public boolean isOwner(String username) {
+ return owner != null && username != null && owner.equalsIgnoreCase(username);
+ }
+
public boolean isPersonalRepository() {
return !StringUtils.isEmpty(projectPath) && projectPath.charAt(0) == '~';
}
public boolean isUsersPersonalRepository(String username) {
return !StringUtils.isEmpty(projectPath) && projectPath.equalsIgnoreCase("~" + username);
+ }
+
+ public boolean allowAnonymousView() {
+ return !accessRestriction.atLeast(AccessRestrictionType.VIEW);
}
public RepositoryModel cloneAs(String cloneName) {
@@ -150,8 +177,8 @@
clone.projectPath = StringUtils.getFirstPathElement(cloneName);
clone.isBare = true;
clone.description = description;
- clone.accessRestriction = accessRestriction;
- clone.authorizationControl = authorizationControl;
+ clone.accessRestriction = AccessRestrictionType.PUSH;
+ clone.authorizationControl = AuthorizationControl.NAMED;
clone.federationStrategy = federationStrategy;
clone.showReadme = showReadme;
clone.showRemoteBranches = false;
--
Gitblit v1.9.1