James Moger
2012-12-06 92d477ebb639fde958a928f0ed046c62280a5c60
Fixed anonymous browsing of branch panel
3 files modified
13 ■■■■ changed files
src/com/gitblit/models/UserModel.java 7 ●●●●● patch | view | raw | blame | history
src/com/gitblit/wicket/pages/RepositoryPage.java 2 ●●● patch | view | raw | blame | history
src/com/gitblit/wicket/panels/BranchesPanel.java 4 ●●●● patch | view | raw | blame | history
src/com/gitblit/models/UserModel.java
@@ -360,6 +360,12 @@
    public boolean canView(RepositoryModel repository) {
        return canAccess(repository, AccessRestrictionType.VIEW, AccessPermission.VIEW);
    }
    public boolean canView(RepositoryModel repository, String ref) {
        // Default UserModel doesn't implement ref-level security.
        // Other Realms (i.e. Gerrit) may override this method.
        return canView(repository);
    }
    public boolean canClone(RepositoryModel repository) {
        return canAccess(repository, AccessRestrictionType.CLONE, AccessPermission.CLONE);
@@ -587,6 +593,7 @@
        return nameVerified && emailVerified;
    }
    
    @Deprecated
    public boolean hasBranchPermission(String repositoryName, String branch) {
        // Default UserModel doesn't implement branch-level security. Other Realms (i.e. Gerrit) may override this method.
        return hasRepositoryPermission(repositoryName) || hasTeamRepositoryPermission(repositoryName);
src/com/gitblit/wicket/pages/RepositoryPage.java
@@ -112,7 +112,7 @@
                    // workaround until get().getUser() is reviewed throughout the app
                    user = UserModel.ANONYMOUS;
                }
                boolean canAccess = user.hasBranchPermission(repositoryName,
                boolean canAccess = user.canView(getRepositoryModel(),
                                branch.reference.getName());
                if (!canAccess) {
                    error(getString("gb.accessDenied"), true);
src/com/gitblit/wicket/panels/BranchesPanel.java
@@ -67,14 +67,14 @@
        List<RefModel> localBranches = JGitUtils.getLocalBranches(r, false, -1);
        for (RefModel refModel : localBranches) {
            if (user.hasBranchPermission(model.name, refModel.reference.getName())) {
            if (user.canView(model, refModel.reference.getName())) {
                branches.add(refModel);
            }
        }
        if (model.showRemoteBranches) {
            List<RefModel> remoteBranches = JGitUtils.getRemoteBranches(r, false, -1);
            for (RefModel refModel : remoteBranches) {
                if (user.hasBranchPermission(model.name, refModel.reference.getName())) {
                if (user.canView(model, refModel.reference.getName())) {
                    branches.add(refModel);
                }
            }