James Moger
2013-11-29 088b6f33671697dc8c15197b0a63eecf6d74f75f
Added filesystem write permission check (issue-345)

Change-Id: I0a3aced3b8e9887347888c85e469b74fc70931ad
5 files modified
31 ■■■■ changed files
releases.moxie 1 ●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/Constants.java 4 ●●● patch | view | raw | blame | history
src/main/java/com/gitblit/manager/AuthenticationManager.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/manager/RepositoryManager.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/manager/UserManager.java 4 ●●●● patch | view | raw | blame | history
releases.moxie
@@ -46,6 +46,7 @@
    - Set Link: <url>; 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
src/main/java/com/gitblit/Constants.java
@@ -70,7 +70,9 @@
    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";
src/main/java/com/gitblit/manager/AuthenticationManager.java
@@ -108,10 +108,10 @@
        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
src/main/java/com/gitblit/manager/RepositoryManager.java
@@ -157,6 +157,8 @@
        configureJGit();
        configureCommitCache();
        confirmWriteAccess();
        return this;
    }
@@ -1756,4 +1758,20 @@
                    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("");
            }
        }
    }
}
src/main/java/com/gitblit/manager/UserManager.java
@@ -94,10 +94,10 @@
                // 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);