support user-requested filtering of extensions. resolves #1844
authorSteve Hackbarth <stephenhackbarth@gmail.com>
Mon, 15 Sep 2014 17:49:57 +0000 (13:49 -0400)
committerSteve Hackbarth <stephenhackbarth@gmail.com>
Mon, 15 Sep 2014 17:49:57 +0000 (13:49 -0400)
node-datasource/routes/app.js
node-datasource/routes/auth.js

index e083ee8..4ddcdd6 100644 (file)
@@ -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;
index 28e5504..fea2dc7 100644 (file)
@@ -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;
         }