File tree Expand file tree Collapse file tree 2 files changed +29
-2
lines changed
Expand file tree Collapse file tree 2 files changed +29
-2
lines changed Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+
3+ var Boom = mw . Boom ;
4+ var User = require ( 'models/mongo/user' ) ;
5+ var createMongooseMiddleware = require ( 'middlewares/create-mongoose-middleware' ) ;
6+ var keypather = require ( 'keypather' ) ( ) ;
7+ var mw = require ( 'dat-middleware' ) ;
8+
9+ module . exports = createMongooseMiddleware ( User , 'sessionUser' , {
10+ isHelloRunnable : function ( modelKey ) {
11+ return function ( req , res , next ) {
12+ var model = keypather . get ( req , modelKey ) ;
13+ var modelGithubId = model . owner . github ;
14+ var userGithubId = req . sessionUser . accounts . github . id ;
15+ if ( modelGithubId === process . env . HELLO_RUNNABLE_GITHUB_ID ) {
16+ next ( ) ;
17+ }
18+ else if ( userGithubId === process . env . HELLO_RUNNABLE_GITHUB_ID ) {
19+ next ( ) ;
20+ }
21+ else {
22+ next ( Boom . forbidden ( 'Access denied (!owner)' , { githubId : modelGithubId } ) ) ;
23+ }
24+ } ;
25+ }
26+ } ) . isHelloRunnable ;
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ var flow = require('middleware-flow');
1111var mw = require ( 'dat-middleware' ) ;
1212
1313var me = require ( 'middlewares/me' ) ;
14+ var ownerIsHelloRunnable = require ( 'middlewares/owner-is-hello-runnable' ) ;
1415var mongoMiddlewares = require ( 'middlewares/mongo' ) ;
1516var instances = mongoMiddlewares . instances ;
1617//var users = mongoMiddlewares.users;
@@ -263,7 +264,7 @@ app.get('/instances/',
263264 mw . query ( 'owner.github' ) . mapValues ( transformations . toInt ) . number ( ) ,
264265 flow . or (
265266 me . isOwnerOf ( 'query' ) ,
266- me . isHelloRunnable ( 'query' )
267+ ownerIsHelloRunnable ( 'query' )
267268 ) ,
268269 instances . find ( 'query' ) ,
269270 timers . model . startTimer ( 'getGithubUsername' ) ,
@@ -596,7 +597,7 @@ app.post('/instances/:id/actions/copy',
596597 findInstance ,
597598 flow . or (
598599 me . isOwnerOf ( 'instance' ) ,
599- me . isHelloRunnable ( 'instance' ) ,
600+ ownerIsHelloRunnable ( 'instance' ) ,
600601 me . isModerator ) ,
601602 mw . body ( 'owner.github' ) . require ( ) . then (
602603 mw . body ( 'owner.github' ) . number ( ) ,
You can’t perform that action at this time.
0 commit comments