create new rest endpoints that are authenticated using browser session
authorSteve Hackbarth <stephenhackbarth@gmail.com>
Tue, 23 Sep 2014 19:10:16 +0000 (15:10 -0400)
committerSteve Hackbarth <stephenhackbarth@gmail.com>
Tue, 23 Sep 2014 19:10:16 +0000 (15:10 -0400)
node-datasource/main.js
node-datasource/routes/restRouter.js
node-datasource/routes/routes.js

index f2b9145..dd78b8f 100755 (executable)
@@ -415,6 +415,11 @@ app.all('/:org/api/v1alpha1/resources/:model/:id', routes.restRouter);
 app.all('/:org/api/v1alpha1/resources/:model', routes.restRouter);
 app.all('/:org/api/v1alpha1/resources/*', routes.restRouter);
 
+app.post('/:org/browser-api/v1/services/:service/:id', routes.restBrowserRouter);
+app.all('/:org/browser-api/v1/resources/:model/:id', routes.restBrowserRouter);
+app.all('/:org/browser-api/v1/resources/:model', routes.restBrowserRouter);
+app.all('/:org/browser-api/v1/resources/*', routes.restBrowserRouter);
+
 app.get('/', routes.loginForm);
 app.post('/login', routes.login);
 app.get('/forgot-password', routes.forgotPassword);
index adcfdba..1bfbd20 100644 (file)
@@ -331,7 +331,7 @@ module.exports = (function () {
    */
   function getSession(req, next) {
     return {
-      passport: getPassport(req.user, next)
+      passport: getPassport(req.user.get('username') ? req.user : req.session.passport.user, next)
     };
   }
 
@@ -342,9 +342,9 @@ module.exports = (function () {
     if (!user) return next(new Error('user is not defined'));
     return {
       user: {
-        id: user.get('username'),
-        username: user.get('username'),
-        organization: user.get('organization')
+        id: user.get ? user.get('username') : user.username,
+        username: user.get ? user.get('username') : user.username,
+        organization: user.get ? user.get('organization') : user.organization
       }
     };
   }
index 91cee16..3a4c669 100644 (file)
@@ -82,6 +82,10 @@ regexp:true, undef:true, strict:true, trailing:true, white:true */
     passport.authenticate('bearer', { session: false }),
     restRouter.router
   ];
+  exports.restBrowserRouter = [
+    ensureLogin,
+    restRouter.router
+  ];
 
   //
   // Custom routes