@@ -948,6 +948,11 @@ private static class IndexGroup implements Consumer<SearchService.TaskIndexingQu
948948 public void accept (SearchService .TaskIndexingQueue a )
949949 {
950950 User user = new LimitedUser (UserManager .getGuestUser (), ReaderRole .class );
951+ if (IssuesListDefService .get ().getRestrictedIssueProvider () != null )
952+ {
953+ // Pass in an admin user to allow all restricted issues to be indexed by the crawler
954+ user = User .getAdminServiceUser ();
955+ }
951956 indexIssues (a , user , _ids );
952957 }
953958 }
@@ -968,16 +973,9 @@ public static void indexIssues(SearchService.TaskIndexingQueue queue, User user,
968973
969974 for (Integer id : ids )
970975 {
971- try
972- {
973- IssueObject issue = IssueManager .getIssue (container , user , id );
974- if (issue != null )
975- queueIssue (queue , id , issue .getProperties (), issue .getCommentObjects ());
976- }
977- catch (UnauthorizedException e )
978- {
979- // Issue 51607 ignore restricted issue failures
980- }
976+ IssueObject issue = IssueManager .getIssue (container , user , id , false );
977+ if (issue != null )
978+ queueIssue (queue , id , issue .getProperties (), issue .getCommentObjects ());
981979 }
982980 }
983981
@@ -1015,6 +1013,8 @@ public WebdavResource resolve(@NotNull String resourceIdentifier)
10151013 public HttpView getCustomSearchResult (User user , @ NotNull String resourceIdentifier )
10161014 {
10171015 int issueId ;
1016+ boolean isRestricted = false ; // controls rendering for a restricted issue
1017+
10181018 try
10191019 {
10201020 issueId = Integer .parseInt (resourceIdentifier );
@@ -1024,23 +1024,34 @@ public HttpView getCustomSearchResult(User user, @NotNull String resourceIdentif
10241024 return null ;
10251025 }
10261026
1027- final IssueObject issue = getIssue (null , user , issueId , false );
1027+ IssueObject issue = getIssue (null , user , issueId , false );
10281028 if (null == issue )
1029- return null ;
1029+ {
1030+ if (IssuesListDefService .get ().getRestrictedIssueProvider () != null )
1031+ {
1032+ // allow users to see the summary of a restricted issue, but there will be limited
1033+ // information that is rendered.
1034+ issue = getIssue (null , User .getAdminServiceUser (), issueId , false );
1035+ isRestricted = true ;
1036+ }
1037+
1038+ if (issue == null )
1039+ return null ;
1040+ }
10301041 Container c = issue .lookupContainer ();
10311042 if (null == c || !c .hasPermission (user , ReadPermission .class ))
10321043 return null ;
10331044
1034- return new IssueSummaryView (issue );
1045+ return new IssueSummaryView (issue , isRestricted );
10351046 }
10361047 };
10371048 }
10381049
10391050 public static class IssueSummaryView extends JspView
10401051 {
1041- IssueSummaryView (IssueObject issue )
1052+ IssueSummaryView (IssueObject issue , boolean isRestricted )
10421053 {
1043- super ("/org/labkey/issue/view/searchSummary.jsp" , issue );
1054+ super ("/org/labkey/issue/view/searchSummary.jsp" , new Pair <>( issue , isRestricted ) );
10441055 }
10451056 }
10461057
0 commit comments