Paul Martin
2016-04-05 6ecf3907a012f5c12c6801f0d2ffe8b4e440c209
Merge pull request #1040 from gitblit/1037-EnforcePermissionsForTickets

Fix for #1037 myTickets now honours permissions
1 files modified
18 ■■■■ changed files
src/main/java/com/gitblit/wicket/pages/MyTicketsPage.java 18 ●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/wicket/pages/MyTicketsPage.java
@@ -19,7 +19,6 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
@@ -343,14 +342,23 @@
        int page = (params != null) ? Math.max(1, WicketUtils.getPage(params)) : 1;
        int pageSize = app().settings().getInteger(Keys.tickets.perPage, 25);
        final List<QueryResult> results =
        final List<QueryResult> allResults =
            StringUtils.isEmpty(searchParam) ? query(qb, page, pageSize, sortBy, desc) : search(searchParam, page, pageSize);
        int totalResults = results.size() == 0 ? 0 : results.get(0).totalResults;
        buildPager(queryParam, milestoneParam, statiiParam, assignedToParam, sortBy, desc, repositoryId, page, pageSize, results.size(), totalResults);
        List<QueryResult> viewableResults = new ArrayList<>(allResults.size());
        for (QueryResult queryResult : allResults) {
            RepositoryModel model = app().repositories().getRepositoryModel(currentUser, queryResult.repository);
            if ((model != null) && (currentUser.canView(model))) {
                viewableResults.add(queryResult);
            }
        }
        int totalResults = viewableResults.size() == 0 ? 0 : viewableResults.get(0).totalResults;
        buildPager(queryParam, milestoneParam, statiiParam, assignedToParam, sortBy, desc, repositoryId, page, pageSize, viewableResults.size(), totalResults);
        final boolean showSwatch = app().settings().getBoolean(Keys.web.repositoryListSwatches, true);
        add(new TicketListPanel("ticketList", results, showSwatch, true));
        add(new TicketListPanel("ticketList", viewableResults, showSwatch, true));
    }
    protected PageParameters queryParameters(