Skip to content

Commit 296925c

Browse files
committed
SAK-30328: Site-restricted unstealthed LTI tools available to add to any site
1 parent 21f7377 commit 296925c

File tree

1 file changed

+9
-4
lines changed
  • site-manage/site-manage-tool/tool/src/java/org/sakaiproject/site/tool

1 file changed

+9
-4
lines changed

site-manage/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java

+9-4
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import java.util.Locale;
4747
import java.util.Map;
4848
import java.util.Map.Entry;
49+
import java.util.Objects;
4950
import java.util.Properties;
5051
import java.util.Set;
5152
import java.util.Vector;
@@ -6401,25 +6402,29 @@ private List getLtiToolGroup(String groupName, File moreInfoDir, Site site) {
64016402
List ltiSelectedTools = selectedLTITools(site);
64026403
List ltiTools = new ArrayList();
64036404
List<Map<String, Object>> allTools;
6405+
String siteId = "";
64046406
if ( site == null )
64056407
allTools = m_ltiService.getTools(null,null,0,0);
64066408
else
6407-
allTools = m_ltiService.getToolsDao(null,null,0,0,site.getId());
6408-
6409+
{
6410+
siteId = Objects.toString(site.getId(), "");
6411+
allTools = m_ltiService.getToolsDao(null,null,0,0,siteId);
6412+
}
64096413
if (allTools != null && !allTools.isEmpty()) {
64106414
for (Map<String, Object> tool : allTools) {
64116415
Set keySet = tool.keySet();
64126416
String toolIdString = ObjectUtils.toString(tool.get(m_ltiService.LTI_ID));
64136417
boolean toolStealthed = "1".equals(ObjectUtils.toString(tool.get(m_ltiService.LTI_VISIBLE)));
64146418
boolean ltiToolSelected = ltiSelectedTools.contains(toolIdString);
6415-
6419+
String siteRestriction = Objects.toString(tool.get(LTIService.LTI_SITE_ID), "");
6420+
boolean allowedForSite = siteRestriction.isEmpty() || siteRestriction.equals(siteId);
64166421
try
64176422
{
64186423
// in Oracle, the lti tool id is returned as BigDecimal, which cannot be casted into Integer directly
64196424
Integer ltiId = Integer.valueOf(toolIdString);
64206425
if (ltiId != null) {
64216426
String ltiToolId = ltiId.toString();
6422-
if (ltiToolId != null && (!toolStealthed || ltiToolSelected) ) {
6427+
if (ltiToolId != null && ((!toolStealthed && allowedForSite) || ltiToolSelected) ) {
64236428
String relativeWebPath = null;
64246429
MyTool newTool = new MyTool();
64256430
newTool.title = tool.get("title").toString();

0 commit comments

Comments
 (0)