From 9636dfc8e05164376b4383c51645502734fd082d Mon Sep 17 00:00:00 2001 From: Steve Hackbarth Date: Mon, 15 Sep 2014 13:49:57 -0400 Subject: [PATCH] support user-requested filtering of extensions. resolves #1844 --- node-datasource/routes/app.js | 9 +++++++++ node-datasource/routes/auth.js | 3 +++ 2 files changed, 12 insertions(+) diff --git a/node-datasource/routes/app.js b/node-datasource/routes/app.js index e083ee824..4ddcdd67c 100644 --- a/node-datasource/routes/app.js +++ b/node-datasource/routes/app.js @@ -103,6 +103,15 @@ var async = require("async"), }, fetchSuccess = function (model, result) { var sendExtensions = function (res, extensions) { + var filteredExtensions; + if (req.query.extensions) { + // the user is requesting to only see a certain set of extensions + filteredExtensions = JSON.parse(req.query.extensions); + extensions = extensions.filter(function (ext) { + return _.contains(filteredExtensions, ext.name); + }); + } + extensions.sort(function (ext1, ext2) { if (ext1.loadOrder !== ext2.loadOrder) { return ext1.loadOrder - ext2.loadOrder; diff --git a/node-datasource/routes/auth.js b/node-datasource/routes/auth.js index 28e550429..fea2dc7bd 100644 --- a/node-datasource/routes/auth.js +++ b/node-datasource/routes/auth.js @@ -21,6 +21,9 @@ regexp:true, undef:true, strict:true, trailing:true, white:true */ function (req, res, next) { var pathName = "/app"; if (req && req.session && !req.session.oauth2 && req.session.passport && req.session.passport.user && req.session.passport.user.organization) { + if (req.body.extensions) { + pathName = pathName + "?extensions=" + req.body.extensions; + } if (req.body.hash && req.body.hash.charAt(0) === "#") { pathName = pathName + req.body.hash; } -- 2.39.2