From a50c4afdde37845b94b3545029ed9aac5796fdf7 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 19 Dec 2011 09:15:08 -0500
Subject: [PATCH] More sendemail.groovy fixes

---
 src/com/gitblit/GitBlit.java |   73 ++++++++++--------------------------
 1 files changed, 20 insertions(+), 53 deletions(-)

diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java
index 11454f3..8afa6df 100644
--- a/src/com/gitblit/GitBlit.java
+++ b/src/com/gitblit/GitBlit.java
@@ -731,6 +731,8 @@
 					"gitblit", null, "preReceiveScript")));
 			model.postReceiveScripts = new ArrayList<String>(Arrays.asList(config.getStringList(
 					"gitblit", null, "postReceiveScript")));
+			model.mailRecipients = new ArrayList<String>(Arrays.asList(config.getStringList(
+					"gitblit", null, "mailRecipient")));
 		}
 		r.close();
 		return model;
@@ -950,8 +952,16 @@
 		config.setString("gitblit", null, "federationStrategy",
 				repository.federationStrategy.name());
 		config.setBoolean("gitblit", null, "isFederated", repository.isFederated);
-		config.setStringList("gitblit", null, "preReceiveScript", repository.preReceiveScripts);
-		config.setStringList("gitblit", null, "postReceiveScript", repository.postReceiveScripts);
+		if (repository.preReceiveScripts != null) {
+			config.setStringList("gitblit", null, "preReceiveScript", repository.preReceiveScripts);
+		}
+		if (repository.postReceiveScripts != null) {
+			config.setStringList("gitblit", null, "postReceiveScript",
+					repository.postReceiveScripts);
+		}
+		if (repository.mailRecipients != null) {
+			config.setStringList("gitblit", null, "mailRecipient", repository.mailRecipients);
+		}
 		try {
 			config.save();
 		} catch (IOException e) {
@@ -1421,7 +1431,7 @@
 	 * @param subject
 	 * @param message
 	 */
-	public void notifyAdministrators(String subject, String message) {
+	public void sendEmailToAdministrators(String subject, String message) {
 		try {
 			Message mail = mailExecutor.createMessageForAdministrators();
 			if (mail != null) {
@@ -1441,8 +1451,8 @@
 	 * @param message
 	 * @param toAddresses
 	 */
-	public void notifyUsers(String subject, String message, ArrayList<String> toAddresses) {
-		this.notifyUsers(subject, message, toAddresses.toArray(new String[0]));
+	public void sendEmail(String subject, String message, ArrayList<String> toAddresses) {
+		this.sendEmail(subject, message, toAddresses.toArray(new String[0]));
 	}
 
 	/**
@@ -1452,7 +1462,7 @@
 	 * @param message
 	 * @param toAddresses
 	 */
-	public void notifyUsers(String subject, String message, String... toAddresses) {
+	public void sendEmail(String subject, String message, String... toAddresses) {
 		try {
 			Message mail = mailExecutor.createMessage(toAddresses);
 			if (mail != null) {
@@ -1553,7 +1563,6 @@
 	 * 
 	 * @param settings
 	 */
-	@SuppressWarnings("deprecation")
 	public void configureContext(IStoredSettings settings, boolean startFederation) {
 		logger.info("Reading configuration from " + settings.toString());
 		this.settings = settings;
@@ -1570,53 +1579,11 @@
 				loginService = (IUserService) realmClass.newInstance();
 			}
 		} catch (Throwable t) {
-			// not a login service class or class could not be instantiated.
-			// try to use default file login service
-			File realmFile = getFileOrFolder(Keys.realm.userService, "users.conf");
-			if (realmFile.exists()) {
-				// load the existing realm file
-				if (realmFile.getName().toLowerCase().endsWith(".properties")) {
-					// load the v0.5.0 - v0.7.0 properties-based realm file
-					loginService = new FileUserService(realmFile);
-
-					// automatically create a users.conf realm file from the
-					// original users.properties file
-					File usersConfig = new File(realmFile.getParentFile(), "users.conf");
-					if (!usersConfig.exists()) {
-						logger.info(MessageFormat.format("Automatically creating {0} based on {1}",
-								usersConfig.getAbsolutePath(), realmFile.getAbsolutePath()));
-						ConfigUserService configService = new ConfigUserService(usersConfig);
-						for (String username : loginService.getAllUsernames()) {
-							UserModel userModel = loginService.getUserModel(username);
-							configService.updateUserModel(userModel);
-						}
-					}
-
-					// issue suggestion about switching to users.conf
-					logger.warn("Please consider using \"users.conf\" instead of the deprecated \"users.properties\" file");
-				} else if (realmFile.getName().toLowerCase().endsWith(".conf")) {
-					// load the config-based realm file
-					loginService = new ConfigUserService(realmFile);
+			loginService = new UserServiceWrapper() {
+				@Override
+				public void setupService(IStoredSettings settings) {
 				}
-			} else {
-				// Create a new realm file and add the default admin
-				// account. This is necessary for bootstrapping a dynamic
-				// environment like running on a cloud service.
-				// As of v0.8.0 the default realm file is ConfigUserService.
-				try {
-					realmFile = getFileOrFolder(Keys.realm.userService, "users.conf");
-					realmFile.createNewFile();
-					loginService = new ConfigUserService(realmFile);
-					UserModel admin = new UserModel("admin");
-					admin.password = "admin";
-					admin.canAdmin = true;
-					admin.excludeFromFederation = true;
-					loginService.updateUserModel(admin);
-				} catch (IOException x) {
-					logger.error(
-							MessageFormat.format("COULD NOT CREATE REALM FILE {0}!", realmFile), x);
-				}
-			}
+			};
 		}
 		setUserService(loginService);
 		mailExecutor = new MailExecutor(settings);

--
Gitblit v1.9.1