|
46 | 46 | import java.util.Locale;
|
47 | 47 | import java.util.Map;
|
48 | 48 | import java.util.Map.Entry;
|
| 49 | +import java.util.Objects; |
49 | 50 | import java.util.Properties;
|
50 | 51 | import java.util.Set;
|
51 | 52 | import java.util.Vector;
|
@@ -6401,25 +6402,29 @@ private List getLtiToolGroup(String groupName, File moreInfoDir, Site site) {
|
6401 | 6402 | List ltiSelectedTools = selectedLTITools(site);
|
6402 | 6403 | List ltiTools = new ArrayList();
|
6403 | 6404 | List<Map<String, Object>> allTools;
|
| 6405 | + String siteId = ""; |
6404 | 6406 | if ( site == null )
|
6405 | 6407 | allTools = m_ltiService.getTools(null,null,0,0);
|
6406 | 6408 | 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 | + } |
6409 | 6413 | if (allTools != null && !allTools.isEmpty()) {
|
6410 | 6414 | for (Map<String, Object> tool : allTools) {
|
6411 | 6415 | Set keySet = tool.keySet();
|
6412 | 6416 | String toolIdString = ObjectUtils.toString(tool.get(m_ltiService.LTI_ID));
|
6413 | 6417 | boolean toolStealthed = "1".equals(ObjectUtils.toString(tool.get(m_ltiService.LTI_VISIBLE)));
|
6414 | 6418 | 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); |
6416 | 6421 | try
|
6417 | 6422 | {
|
6418 | 6423 | // in Oracle, the lti tool id is returned as BigDecimal, which cannot be casted into Integer directly
|
6419 | 6424 | Integer ltiId = Integer.valueOf(toolIdString);
|
6420 | 6425 | if (ltiId != null) {
|
6421 | 6426 | String ltiToolId = ltiId.toString();
|
6422 |
| - if (ltiToolId != null && (!toolStealthed || ltiToolSelected) ) { |
| 6427 | + if (ltiToolId != null && ((!toolStealthed && allowedForSite) || ltiToolSelected) ) { |
6423 | 6428 | String relativeWebPath = null;
|
6424 | 6429 | MyTool newTool = new MyTool();
|
6425 | 6430 | newTool.title = tool.get("title").toString();
|
|
0 commit comments