From a4d2498b7f94012cfdf481fcf151f8cfd7537a42 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 23 May 2011 16:46:09 -0400
Subject: [PATCH] User list. Revised home page. Updated Jetty. Secure cookies. Docs.

---
 src/com/gitblit/GitBlit.java |   46 ++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java
index 40cb388..51c3b45 100644
--- a/src/com/gitblit/GitBlit.java
+++ b/src/com/gitblit/GitBlit.java
@@ -4,6 +4,7 @@
 import java.io.IOException;
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import javax.servlet.ServletContextEvent;
@@ -21,6 +22,7 @@
 
 import com.gitblit.Constants.AccessRestrictionType;
 import com.gitblit.utils.JGitUtils;
+import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.models.RepositoryModel;
 import com.gitblit.wicket.models.UserModel;
 
@@ -95,10 +97,24 @@
 		userCookie.setPath("/");
 		response.addCookie(userCookie);
 	}
+	
+	public List<String> getAllUsernames() {
+		List<String> names = loginService.getAllUsernames();
+		Collections.sort(names);
+		return names;
+	}
 
-	public UserModel getUser(String username) {
+	public UserModel getUserModel(String username) {
 		UserModel user = loginService.getUserModel(username);
 		return user;
+	}
+	
+	public List<String> getRepositoryUsers(RepositoryModel repository) {
+		return loginService.getUsernamesForRole(repository.name);
+	}
+	
+	public boolean setRepositoryUsers(RepositoryModel repository, List<String> repositoryUsers) {
+		return loginService.setUsernamesForRole(repository.name, repositoryUsers);
 	}
 
 	public void editUserModel(UserModel user, boolean isCreate) throws GitBlitException {
@@ -157,15 +173,28 @@
 		model.lastChange = JGitUtils.getLastChange(r);
 		StoredConfig config = JGitUtils.readConfig(r);
 		if (config != null) {
-			model.description = config.getString("gitblit", null, "description");
-			model.owner = config.getString("gitblit", null, "owner");
-			model.useTickets = config.getBoolean("gitblit", "useTickets", false);
-			model.useDocs = config.getBoolean("gitblit", "useDocs", false);
-			model.accessRestriction = AccessRestrictionType.fromName(config.getString("gitblit", null, "accessRestriction"));
-			model.showRemoteBranches = config.getBoolean("gitblit", "showRemoteBranches", false);
+			model.description = getConfig(config, "description", "");
+			model.owner = getConfig(config, "owner", "");
+			model.useTickets = getConfig(config, "useTickets", false);
+			model.useDocs = getConfig(config, "useDocs", false);
+			model.accessRestriction = AccessRestrictionType.fromName(getConfig(config, "accessRestriction", null));
+			model.showRemoteBranches = getConfig(config, "showRemoteBranches", false);
+			model.isFrozen = getConfig(config, "isFrozen", false);
 		}
 		r.close();
 		return model;
+	}
+	
+	private String getConfig(StoredConfig config, String field, String defaultValue) {
+		String value = config.getString("gitblit", null, field);
+		if (StringUtils.isEmpty(value)) {
+			return defaultValue;
+		}
+		return value;
+	}
+	
+	private boolean getConfig(StoredConfig config, String field, boolean defaultValue) {
+		return config.getBoolean("gitblit", field, defaultValue);
 	}
 
 	public void editRepositoryModel(RepositoryModel repository, boolean isCreate) throws GitBlitException {
@@ -197,6 +226,7 @@
 		config.setBoolean("gitblit", null, "useDocs", repository.useDocs);
 		config.setString("gitblit", null, "accessRestriction", repository.accessRestriction.name());
 		config.setBoolean("gitblit", null, "showRemoteBranches", repository.showRemoteBranches);
+		config.setBoolean("gitblit", null, "isFrozen", repository.isFrozen);
 		try {
 			config.save();
 		} catch (IOException e) {
@@ -206,7 +236,7 @@
 	}
 
 	public void configureContext(IStoredSettings settings) {
-		logger.info("Configure GitBlit from " + settings.toString());
+		logger.info("Using configuration from " + settings.toString());
 		this.storedSettings = settings;
 		repositoriesFolder = new File(settings.getString(Keys.git.repositoriesFolder, "repos"));
 		exportAll = settings.getBoolean(Keys.git.exportAll, true);

--
Gitblit v1.9.1