James Moger
2012-10-19 5e88265c36b93f63a68bcafb373434a9fbbaa42e
Construct access permissions from already retrieved data
2 files modified
25 ■■■■■ changed files
src/com/gitblit/client/GitblitClient.java 21 ●●●● patch | view | raw | blame | history
src/com/gitblit/client/RepositoriesPanel.java 4 ●●●● patch | view | raw | blame | history
src/com/gitblit/client/GitblitClient.java
@@ -30,6 +30,7 @@
import com.gitblit.Constants;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.Constants.AuthorizationControl;
import com.gitblit.Constants.RegistrantType;
import com.gitblit.GitBlitException.ForbiddenException;
import com.gitblit.GitBlitException.NotAllowedException;
import com.gitblit.GitBlitException.UnauthorizedException;
@@ -493,8 +494,14 @@
        return usernames;
    }
    
    public List<RegistrantAccessPermission> getUserAccessPermissions(RepositoryModel repository) throws IOException {
        return RpcUtils.getRepositoryMemberPermissions(repository, url, account, password);
    public List<RegistrantAccessPermission> getUserAccessPermissions(RepositoryModel repository) {
        List<RegistrantAccessPermission> list = new ArrayList<RegistrantAccessPermission>();
        for (UserModel user : allUsers) {
            if (user.hasRepositoryPermission(repository.name)) {
                list.add(new RegistrantAccessPermission(user.username, user.permissions.get(repository.name), RegistrantType.USER));
            }
        }
        return list;
    }
    public boolean setUserAccessPermissions(RepositoryModel repository, List<RegistrantAccessPermission> permissions) throws IOException {
@@ -524,8 +531,14 @@
        return teamnames;
    }
    
    public List<RegistrantAccessPermission> getTeamAccessPermissions(RepositoryModel repository) throws IOException {
        return RpcUtils.getRepositoryTeamPermissions(repository, url, account, password);
    public List<RegistrantAccessPermission> getTeamAccessPermissions(RepositoryModel repository) {
        List<RegistrantAccessPermission> list = new ArrayList<RegistrantAccessPermission>();
        for (TeamModel team : allTeams) {
            if (team.hasRepositoryPermission(repository.name)) {
                list.add(new RegistrantAccessPermission(team.name, team.permissions.get(repository.name), RegistrantType.TEAM));
            }
        }
        return list;
    }
    public boolean setTeamAccessPermissions(RepositoryModel repository, List<RegistrantAccessPermission> permissions) throws IOException {
src/com/gitblit/client/RepositoriesPanel.java
@@ -453,14 +453,10 @@
                repository);
        dialog.setLocationRelativeTo(RepositoriesPanel.this);
        List<String> usernames = gitblit.getUsernames();
        try {
            List<RegistrantAccessPermission> members = gitblit.getUserAccessPermissions(repository);
            dialog.setUsers(repository.owner, usernames, members);
            dialog.setTeams(gitblit.getTeamnames(), gitblit.getTeamAccessPermissions(repository));
            dialog.setRepositories(gitblit.getRepositories());
        } catch (IOException e) {
            //  TODO
        }
        dialog.setFederationSets(gitblit.getFederationSets(), repository.federationSets);
        List<String> allLocalBranches = new ArrayList<String>();
        allLocalBranches.add(Constants.DEFAULT_BRANCH);