Joel Johnson
2015-06-30 2db6b39fdff61ce48788767ad475632a1b29f831
src/main/java/com/gitblit/manager/ServicesManager.java
@@ -162,22 +162,25 @@
      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());
            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) && !acceptsPush(Transport.SSH)) {
@@ -192,7 +195,8 @@
      // 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) && !acceptsPush(Transport.GIT)) {