Skip to content

Commit e6a3b25

Browse files
committed
moving ownerIsHelloRunnable check into new middleware module/file
1 parent e96b739 commit e6a3b25

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
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;

lib/routes/instances/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ var flow = require('middleware-flow');
1111
var mw = require('dat-middleware');
1212

1313
var me = require('middlewares/me');
14+
var ownerIsHelloRunnable = require('middlewares/owner-is-hello-runnable');
1415
var mongoMiddlewares = require('middlewares/mongo');
1516
var 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(),

0 commit comments

Comments
 (0)