James Moger
2014-03-14 d5603a7722adc4bb9ddeeac31491ba93d8bb9128
Fix incorrect displayed SSH transport permission
2 files modified
20 ■■■■■ changed files
src/main/java/com/gitblit/GitBlit.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/gitblit/manager/ServicesManager.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/GitBlit.java
@@ -133,7 +133,7 @@
        // ssh daemon url
        String sshDaemonUrl = servicesManager.getSshDaemonUrl(request, user, repository);
        if (!StringUtils.isEmpty(sshDaemonUrl)) {
            AccessPermission permission = servicesManager.getSshDaemonAccessPermission(user, repository);
            AccessPermission permission = user.getRepositoryPermission(repository).permission;
            if (permission.exceeds(AccessPermission.NONE)) {
                list.add(new RepositoryUrl(sshDaemonUrl, permission));
            }
src/main/java/com/gitblit/manager/ServicesManager.java
@@ -244,24 +244,6 @@
        return null;
    }
    public AccessPermission getSshDaemonAccessPermission(UserModel user, RepositoryModel repository) {
        if (sshDaemon != null && user.canClone(repository)) {
            AccessPermission sshDaemonPermission = user.getRepositoryPermission(repository).permission;
            if (sshDaemonPermission.atLeast(AccessPermission.CLONE)) {
                if (repository.accessRestriction.atLeast(AccessRestrictionType.CLONE)) {
                    // can not authenticate clone via anonymous ssh protocol
                    sshDaemonPermission = AccessPermission.NONE;
                } else if (repository.accessRestriction.atLeast(AccessRestrictionType.PUSH)) {
                    // can not authenticate push via anonymous ssh protocol
                    sshDaemonPermission = AccessPermission.CLONE;
                } else {
                    // normal user permission
                }
            }
            return sshDaemonPermission;
        }
        return AccessPermission.NONE;
    }
    
    /**
     * Extract the hostname from the canonical url or return the