From: James Moger Date: Fri, 29 Nov 2013 17:10:53 +0000 (-0500) Subject: Added filesystem write permission check (issue-345) X-Git-Tag: v1.4.0~164 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=088b6f33671697dc8c15197b0a63eecf6d74f75f;p=gitblit.git Added filesystem write permission check (issue-345) Change-Id: I0a3aced3b8e9887347888c85e469b74fc70931ad --- diff --git a/releases.moxie b/releases.moxie index 3a1b296c..47c63b9f 100644 --- a/releases.moxie +++ b/releases.moxie @@ -46,6 +46,7 @@ r20: { - Set Link: ; rel="canonical" http header for SEO (issue-304) - Added raw links to the commit, commitdiff, and compare pages (issue-319) - Support intradocument linking in Markdown content using [[WikiLinks]] syntax (issue-324) + - Added filesystem write permission check (issue-345) - Support rendering confluence, mediawiki, textile, tracwiki, and twiki markup documents - Added setting to globally disable anonymous pushes in the receive pack - Added a normalized diffstat display to the commit, commitdiff, and compare pages diff --git a/src/main/java/com/gitblit/Constants.java b/src/main/java/com/gitblit/Constants.java index ee6de45d..d425cdac 100644 --- a/src/main/java/com/gitblit/Constants.java +++ b/src/main/java/com/gitblit/Constants.java @@ -70,7 +70,9 @@ public class Constants { public static final String BRANCH_GRAPH_PATH = "/graph/"; - public static final String BORDER = "***********************************************************"; + public static final String BORDER = "*****************************************************************"; + + public static final String BORDER2 = "#################################################################"; public static final String FEDERATION_USER = "$gitblit"; diff --git a/src/main/java/com/gitblit/manager/AuthenticationManager.java b/src/main/java/com/gitblit/manager/AuthenticationManager.java index 8c66ce59..60687d44 100644 --- a/src/main/java/com/gitblit/manager/AuthenticationManager.java +++ b/src/main/java/com/gitblit/manager/AuthenticationManager.java @@ -108,10 +108,10 @@ public class AuthenticationManager implements IAuthenticationManager { String realm = settings.getString(Keys.realm.userService, "${baseFolder}/users.conf"); if (legacyRedirects.containsKey(realm)) { logger.warn(""); - logger.warn("#################################################################"); + logger.warn(Constants.BORDER2); logger.warn(" IUserService '{}' is obsolete!", realm); logger.warn(" Please set '{}={}'", "realm.authenticationProviders", legacyRedirects.get(realm)); - logger.warn("#################################################################"); + logger.warn(Constants.BORDER2); logger.warn(""); // conditionally override specified authentication providers diff --git a/src/main/java/com/gitblit/manager/RepositoryManager.java b/src/main/java/com/gitblit/manager/RepositoryManager.java index 0a3f6631..d24a06db 100644 --- a/src/main/java/com/gitblit/manager/RepositoryManager.java +++ b/src/main/java/com/gitblit/manager/RepositoryManager.java @@ -157,6 +157,8 @@ public class RepositoryManager implements IRepositoryManager { configureJGit(); configureCommitCache(); + confirmWriteAccess(); + return this; } @@ -1756,4 +1758,20 @@ public class RepositoryManager implements IRepositoryManager { daysToCache, commitCount, repoCount, TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start))); } } + + protected void confirmWriteAccess() { + if (runtimeManager.isServingRepositories()) { + try { + File file = File.createTempFile(".test-", ".txt", getRepositoriesFolder()); + file.delete(); + } catch (Exception e) { + logger.error(""); + logger.error(Constants.BORDER2); + logger.error("Please check filesystem permissions!"); + logger.error("FAILED TO WRITE TO REPOSITORIES FOLDER!!", e); + logger.error(Constants.BORDER2); + logger.error(""); + } + } + } } diff --git a/src/main/java/com/gitblit/manager/UserManager.java b/src/main/java/com/gitblit/manager/UserManager.java index 19943d71..67b1d68f 100644 --- a/src/main/java/com/gitblit/manager/UserManager.java +++ b/src/main/java/com/gitblit/manager/UserManager.java @@ -94,10 +94,10 @@ public class UserManager implements IUserManager { // create the user service from the legacy config String realmKey = legacyBackingServices.get(realm); logger.warn(""); - logger.warn("#################################################################"); + logger.warn(Constants.BORDER2); logger.warn(" Key '{}' is obsolete!", realmKey); logger.warn(" Please set '{}={}'", Keys.realm.userService, settings.getString(realmKey, "${baseFolder}/users.conf")); - logger.warn("#################################################################"); + logger.warn(Constants.BORDER2); logger.warn(""); File realmFile = runtimeManager.getFileOrFolder(realmKey, "${baseFolder}/users.conf"); service = createUserService(realmFile);