From 924d8e3cb67d0b35cad3b9b35f3373db2e8feeb7 Mon Sep 17 00:00:00 2001 From: SilverFox <yyjdelete@126.com> Date: Fri, 08 Apr 2016 01:18:59 -0400 Subject: [PATCH] Specify encoding of javadoc to "utf-8" --- src/main/java/com/gitblit/manager/ServicesManager.java | 77 ++++++++++++++++++++++++++++---------- 1 files changed, 57 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/gitblit/manager/ServicesManager.java b/src/main/java/com/gitblit/manager/ServicesManager.java index 7185854..b993eb6 100644 --- a/src/main/java/com/gitblit/manager/ServicesManager.java +++ b/src/main/java/com/gitblit/manager/ServicesManager.java @@ -162,25 +162,28 @@ List<RepositoryUrl> list = new ArrayList<RepositoryUrl>(); // http/https url - if (settings.getBoolean(Keys.git.enableGitServlet, true)) { + if (settings.getBoolean(Keys.git.enableGitServlet, true) && + settings.getBoolean(Keys.web.showHttpServletUrls, true)) { AccessPermission permission = user.getRepositoryPermission(repository).permission; if (permission.exceeds(AccessPermission.NONE)) { - Transport transport = Transport.fromString(request.getScheme()); - if (permission.atLeast(AccessPermission.PUSH) && !acceptPush(transport)) { + String repoUrl = getRepositoryUrl(request, username, repository); + Transport transport = Transport.fromUrl(repoUrl); + if (permission.atLeast(AccessPermission.PUSH) && !acceptsPush(transport)) { // downgrade the repo permission for this transport // because it is not an acceptable PUSH transport permission = AccessPermission.CLONE; } - list.add(new RepositoryUrl(getRepositoryUrl(request, username, repository), permission)); + list.add(new RepositoryUrl(repoUrl, permission)); } } // ssh daemon url String sshDaemonUrl = getSshDaemonUrl(request, user, repository); - if (!StringUtils.isEmpty(sshDaemonUrl)) { + if (!StringUtils.isEmpty(sshDaemonUrl) && + settings.getBoolean(Keys.web.showSshDaemonUrls, true)) { AccessPermission permission = user.getRepositoryPermission(repository).permission; if (permission.exceeds(AccessPermission.NONE)) { - if (permission.atLeast(AccessPermission.PUSH) && !acceptPush(Transport.SSH)) { + if (permission.atLeast(AccessPermission.PUSH) && !acceptsPush(Transport.SSH)) { // downgrade the repo permission for this transport // because it is not an acceptable PUSH transport permission = AccessPermission.CLONE; @@ -192,10 +195,11 @@ // git daemon url String gitDaemonUrl = getGitDaemonUrl(request, user, repository); - if (!StringUtils.isEmpty(gitDaemonUrl)) { + if (!StringUtils.isEmpty(gitDaemonUrl) && + settings.getBoolean(Keys.web.showGitDaemonUrls, true)) { AccessPermission permission = getGitDaemonAccessPermission(user, repository); if (permission.exceeds(AccessPermission.NONE)) { - if (permission.atLeast(AccessPermission.PUSH) && !acceptPush(Transport.GIT)) { + if (permission.atLeast(AccessPermission.PUSH) && !acceptsPush(Transport.GIT)) { // downgrade the repo permission for this transport // because it is not an acceptable PUSH transport permission = AccessPermission.CLONE; @@ -207,16 +211,35 @@ // add all other urls // {0} = repository // {1} = username + boolean advertisePermsForOther = settings.getBoolean(Keys.web.advertiseAccessPermissionForOtherUrls, false); for (String url : settings.getStrings(Keys.web.otherUrls)) { + String externalUrl = null; + if (url.contains("{1}")) { // external url requires username, only add url IF we have one - if (!StringUtils.isEmpty(username)) { - list.add(new RepositoryUrl(MessageFormat.format(url, repository.name, username), null)); + if (StringUtils.isEmpty(username)) { + continue; + } else { + externalUrl = MessageFormat.format(url, repository.name, username); } } else { - // external url does not require username - list.add(new RepositoryUrl(MessageFormat.format(url, repository.name), null)); + // external url does not require username, just do repo name formatting + externalUrl = MessageFormat.format(url, repository.name); } + + AccessPermission permission = null; + if (advertisePermsForOther) { + permission = user.getRepositoryPermission(repository).permission; + if (permission.exceeds(AccessPermission.NONE)) { + Transport transport = Transport.fromUrl(externalUrl); + if (permission.atLeast(AccessPermission.PUSH) && !acceptsPush(transport)) { + // downgrade the repo permission for this transport + // because it is not an acceptable PUSH transport + permission = AccessPermission.CLONE; + } + } + } + list.add(new RepositoryUrl(externalUrl, permission)); } // sort transports by highest permission and then by transport security @@ -224,13 +247,13 @@ @Override public int compare(RepositoryUrl o1, RepositoryUrl o2) { - if (!o1.isExternal() && o2.isExternal()) { - // prefer Gitblit over external + if (o1.hasPermission() && !o2.hasPermission()) { + // prefer known permission items over unknown return -1; - } else if (o1.isExternal() && !o2.isExternal()) { - // prefer Gitblit over external + } else if (!o1.hasPermission() && o2.hasPermission()) { + // prefer known permission items over unknown return 1; - } else if (o1.isExternal() && o2.isExternal()) { + } else if (!o1.hasPermission() && !o2.hasPermission()) { // sort by Transport ordinal return o1.transport.compareTo(o2.transport); } else if (o1.permission.exceeds(o2.permission)) { @@ -272,7 +295,8 @@ */ @Override public boolean isServingRepositories() { - return isServingHTTP() + return isServingHTTPS() + || isServingHTTP() || isServingGIT() || isServingSSH(); } @@ -282,7 +306,19 @@ */ @Override public boolean isServingHTTP() { - return settings.getBoolean(Keys.git.enableGitServlet, true); + return settings.getBoolean(Keys.git.enableGitServlet, true) + && ((gitblit.getStatus().isGO && settings.getInteger(Keys.server.httpPort, 0) > 0) + || !gitblit.getStatus().isGO); + } + + /* (non-Javadoc) + * @see com.gitblit.manager.IServicesManager#isServingHTTPS() + */ + @Override + public boolean isServingHTTPS() { + return settings.getBoolean(Keys.git.enableGitServlet, true) + && ((gitblit.getStatus().isGO && settings.getInteger(Keys.server.httpsPort, 0) > 0) + || !gitblit.getStatus().isGO); } /* (non-Javadoc) @@ -330,7 +366,8 @@ } } - protected boolean acceptPush(Transport byTransport) { + @Override + public boolean acceptsPush(Transport byTransport) { if (byTransport == null) { logger.info("Unknown transport, push rejected!"); return false; -- Gitblit v1.9.1