diff --git a/site-manage/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java b/site-manage/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java index 505f16347a4..544b7fec7a4 100644 --- a/site-manage/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java +++ b/site-manage/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java @@ -11921,7 +11921,16 @@ private Map> getTools(SessionState state, String type, Site state.setAttribute(STATE_TOOL_HOME_SELECTED, Boolean.valueOf( homeSelected)); - + for (String ltiIdString : existingLtiIds.keySet()) { //we need to check through the existing tool IDs for ones that might be in the site but stealthed. + try { + Map existingToolNow = m_ltiService.getTool(Long.parseLong(ltiIdString), Objects.toString(state.getAttribute(STATE_SITE_INSTANCE_ID))); + if (existingToolNow != null && StringUtils.equals("1", Objects.toString(existingToolNow.get(m_ltiService.LTI_VISIBLE)))) { //if Visible=1, the tool is stealthed and we need to add it in automatically because it can't be checked by the user. + ltiSelectedTools.put(ltiIdString, existingLtiIds.get(ltiIdString)); + } + } catch (NumberFormatException numberFormatException) { + log.error("Unable to parse lti tool id " + ltiIdString, numberFormatException); + } + } if (!ltiSelectedTools.isEmpty()) { state.setAttribute(STATE_LTITOOL_SELECTED_LIST, ltiSelectedTools);