Skip to content

Commit 801333e

Browse files
authored
Suppress restricted issue exception on search (#1629)
1 parent 20cf8d7 commit 801333e

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

onprc_ehr/test/src/org/labkey/test/tests/onprc_ehr/ONPRC_RestrictedIssueTest.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.labkey.test.tests.onprc_ehr;
22

3+
import org.junit.Assert;
34
import org.junit.BeforeClass;
45
import org.junit.Test;
56
import org.junit.experimental.categories.Category;
@@ -11,7 +12,9 @@
1112
import org.labkey.test.pages.issues.DetailsPage;
1213
import org.labkey.test.pages.issues.InsertPage;
1314
import org.labkey.test.pages.issues.UpdatePage;
15+
import org.labkey.test.pages.search.SearchResultsPage;
1416
import org.labkey.test.util.IssuesHelper;
17+
import org.labkey.test.util.SearchHelper;
1518
import org.labkey.test.util.SqlserverOnlyTest;
1619
import org.labkey.test.util.TestUser;
1720

@@ -265,4 +268,37 @@ private Locator getIssueLinkLocator(String issueID)
265268
{
266269
return Locator.tagWithAttributeContaining("a", "href", String.format("issues-details.view?issueId=%s", issueID));
267270
}
271+
272+
@Test
273+
public void restrictedIssueSearchTest()
274+
{
275+
goToProjectHome();
276+
277+
// create a few issues in the restricted list
278+
clickAndWait(Locator.linkContainingText(RESTRICTED_ISSUES_LIST));
279+
DetailsPage detailsPage = _issuesHelper.addIssue("Restricted issue search test #1", USER1.getUserDisplayName());
280+
final String ISSUE_1 = detailsPage.getIssueId();
281+
InsertPage insertPage = detailsPage.clickCreateNewIssue();
282+
insertPage.title().set("Restricted issue search test #2");
283+
insertPage.assignedTo().set(USER2.getUserDisplayName());
284+
detailsPage = insertPage.save();
285+
final String ISSUE_2 = detailsPage.getIssueId();
286+
287+
SearchHelper searchHelper = new SearchHelper(this);
288+
SearchResultsPage resultsPage = searchHelper.searchFor("Restricted issue search test");
289+
290+
// verify that we can return links even if the user doesn't have permission to view a restricted issue
291+
Assert.assertTrue("Number of search results not expected", resultsPage.getResults().size() == 2);
292+
293+
// verify assigned to users will see both results but shouldn't be able to see details of issues not assigned to them
294+
impersonate(USER1.getEmail());
295+
verifyIssueAccess(ISSUE_1, true);
296+
verifyIssueAccess(ISSUE_2, false);
297+
stopImpersonating(false);
298+
299+
impersonate(USER2.getEmail());
300+
verifyIssueAccess(ISSUE_1, false);
301+
verifyIssueAccess(ISSUE_2, true);
302+
stopImpersonating();
303+
}
268304
}

0 commit comments

Comments
 (0)