diff options
-rw-r--r-- | controllers/api/v1/pods.js | 13 | ||||
-rw-r--r-- | controllers/api/v1/remoteVideos.js | 11 | ||||
-rw-r--r-- | controllers/api/v1/videos.js | 12 | ||||
-rw-r--r-- | controllers/views.js | 6 | ||||
-rw-r--r-- | middlewares/cache.js | 25 | ||||
-rw-r--r-- | middlewares/index.js | 5 | ||||
-rw-r--r-- | middlewares/secure.js (renamed from middlewares/misc.js) | 19 |
7 files changed, 52 insertions, 39 deletions
diff --git a/controllers/api/v1/pods.js b/controllers/api/v1/pods.js index 82d8d7f08..3e457ec57 100644 --- a/controllers/api/v1/pods.js +++ b/controllers/api/v1/pods.js | |||
@@ -7,21 +7,22 @@ | |||
7 | var logger = require('../../../helpers/logger') | 7 | var logger = require('../../../helpers/logger') |
8 | var friends = require('../../../lib/friends') | 8 | var friends = require('../../../lib/friends') |
9 | var middleware = require('../../../middlewares') | 9 | var middleware = require('../../../middlewares') |
10 | var miscMiddleware = middleware.misc | 10 | var cacheMiddleware = middleware.cache |
11 | var Pods = require('../../../models/pods') | 11 | var Pods = require('../../../models/pods') |
12 | var reqValidator = middleware.reqValidators.pods | 12 | var reqValidator = middleware.reqValidators.pods |
13 | var secureMiddleware = middleware.secure | ||
13 | var secureRequest = middleware.reqValidators.remote.secureRequest | 14 | var secureRequest = middleware.reqValidators.remote.secureRequest |
14 | var utils = require('../../../helpers/utils') | 15 | var utils = require('../../../helpers/utils') |
15 | var Videos = require('../../../models/videos') | 16 | var Videos = require('../../../models/videos') |
16 | 17 | ||
17 | var router = express.Router() | 18 | var router = express.Router() |
18 | 19 | ||
19 | router.get('/', miscMiddleware.cache(false), listPods) | 20 | router.get('/', cacheMiddleware.cache(false), listPods) |
20 | router.post('/', reqValidator.podsAdd, miscMiddleware.cache(false), addPods) | 21 | router.post('/', reqValidator.podsAdd, cacheMiddleware.cache(false), addPods) |
21 | router.get('/makefriends', reqValidator.makeFriends, miscMiddleware.cache(false), makeFriends) | 22 | router.get('/makefriends', reqValidator.makeFriends, cacheMiddleware.cache(false), makeFriends) |
22 | router.get('/quitfriends', miscMiddleware.cache(false), quitFriends) | 23 | router.get('/quitfriends', cacheMiddleware.cache(false), quitFriends) |
23 | // Post because this is a secured request | 24 | // Post because this is a secured request |
24 | router.post('/remove', secureRequest, miscMiddleware.decryptBody, removePods) | 25 | router.post('/remove', secureRequest, secureMiddleware.decryptBody, removePods) |
25 | 26 | ||
26 | // --------------------------------------------------------------------------- | 27 | // --------------------------------------------------------------------------- |
27 | 28 | ||
diff --git a/controllers/api/v1/remoteVideos.js b/controllers/api/v1/remoteVideos.js index d72db9836..58bb5f3cb 100644 --- a/controllers/api/v1/remoteVideos.js +++ b/controllers/api/v1/remoteVideos.js | |||
@@ -5,7 +5,8 @@ | |||
5 | var pluck = require('lodash-node/compat/collection/pluck') | 5 | var pluck = require('lodash-node/compat/collection/pluck') |
6 | 6 | ||
7 | var middleware = require('../../../middlewares') | 7 | var middleware = require('../../../middlewares') |
8 | var miscMiddleware = middleware.misc | 8 | var secureMiddleware = middleware.secure |
9 | var cacheMiddleware = middleware.cache | ||
9 | var reqValidator = middleware.reqValidators.remote | 10 | var reqValidator = middleware.reqValidators.remote |
10 | var videos = require('../../../models/videos') | 11 | var videos = require('../../../models/videos') |
11 | 12 | ||
@@ -13,17 +14,17 @@ | |||
13 | 14 | ||
14 | router.post('/add', | 15 | router.post('/add', |
15 | reqValidator.secureRequest, | 16 | reqValidator.secureRequest, |
16 | miscMiddleware.decryptBody, | 17 | secureMiddleware.decryptBody, |
17 | reqValidator.remoteVideosAdd, | 18 | reqValidator.remoteVideosAdd, |
18 | miscMiddleware.cache(false), | 19 | cacheMiddleware.cache(false), |
19 | addRemoteVideos | 20 | addRemoteVideos |
20 | ) | 21 | ) |
21 | 22 | ||
22 | router.post('/remove', | 23 | router.post('/remove', |
23 | reqValidator.secureRequest, | 24 | reqValidator.secureRequest, |
24 | miscMiddleware.decryptBody, | 25 | secureMiddleware.decryptBody, |
25 | reqValidator.remoteVideosRemove, | 26 | reqValidator.remoteVideosRemove, |
26 | miscMiddleware.cache(false), | 27 | cacheMiddleware.cache(false), |
27 | removeRemoteVideo | 28 | removeRemoteVideo |
28 | ) | 29 | ) |
29 | 30 | ||
diff --git a/controllers/api/v1/videos.js b/controllers/api/v1/videos.js index d2e7e8825..7792059ca 100644 --- a/controllers/api/v1/videos.js +++ b/controllers/api/v1/videos.js | |||
@@ -9,7 +9,7 @@ | |||
9 | var logger = require('../../../helpers/logger') | 9 | var logger = require('../../../helpers/logger') |
10 | var friends = require('../../../lib/friends') | 10 | var friends = require('../../../lib/friends') |
11 | var middleware = require('../../../middlewares') | 11 | var middleware = require('../../../middlewares') |
12 | var miscMiddleware = middleware.misc | 12 | var cacheMiddleware = middleware.cache |
13 | var reqValidator = middleware.reqValidators.videos | 13 | var reqValidator = middleware.reqValidators.videos |
14 | var Videos = require('../../../models/videos') // model | 14 | var Videos = require('../../../models/videos') // model |
15 | var videos = require('../../../lib/videos') | 15 | var videos = require('../../../lib/videos') |
@@ -38,11 +38,11 @@ | |||
38 | 38 | ||
39 | var reqFiles = multer({ storage: storage }).fields([{ name: 'input_video', maxCount: 1 }]) | 39 | var reqFiles = multer({ storage: storage }).fields([{ name: 'input_video', maxCount: 1 }]) |
40 | 40 | ||
41 | router.get('/', miscMiddleware.cache(false), listVideos) | 41 | router.get('/', cacheMiddleware.cache(false), listVideos) |
42 | router.post('/', reqFiles, reqValidator.videosAdd, miscMiddleware.cache(false), addVideo) | 42 | router.post('/', reqFiles, reqValidator.videosAdd, cacheMiddleware.cache(false), addVideo) |
43 | router.get('/:id', reqValidator.videosGet, miscMiddleware.cache(false), getVideos) | 43 | router.get('/:id', reqValidator.videosGet, cacheMiddleware.cache(false), getVideos) |
44 | router.delete('/:id', reqValidator.videosRemove, miscMiddleware.cache(false), removeVideo) | 44 | router.delete('/:id', reqValidator.videosRemove, cacheMiddleware.cache(false), removeVideo) |
45 | router.get('/search/:name', reqValidator.videosSearch, miscMiddleware.cache(false), searchVideos) | 45 | router.get('/search/:name', reqValidator.videosSearch, cacheMiddleware.cache(false), searchVideos) |
46 | 46 | ||
47 | // --------------------------------------------------------------------------- | 47 | // --------------------------------------------------------------------------- |
48 | 48 | ||
diff --git a/controllers/views.js b/controllers/views.js index 1bb4ffe70..82d3d00ab 100644 --- a/controllers/views.js +++ b/controllers/views.js | |||
@@ -3,12 +3,12 @@ | |||
3 | 3 | ||
4 | var express = require('express') | 4 | var express = require('express') |
5 | 5 | ||
6 | var middleware = require('../middlewares').misc | 6 | var cacheMiddleware = require('../middlewares').cache |
7 | 7 | ||
8 | var router = express.Router() | 8 | var router = express.Router() |
9 | 9 | ||
10 | router.get(/^\/(index)?$/, middleware.cache(), getIndex) | 10 | router.get(/^\/(index)?$/, cacheMiddleware.cache(), getIndex) |
11 | router.get('/partials/:directory/:name', middleware.cache(), getPartial) | 11 | router.get('/partials/:directory/:name', cacheMiddleware.cache(), getPartial) |
12 | 12 | ||
13 | // --------------------------------------------------------------------------- | 13 | // --------------------------------------------------------------------------- |
14 | 14 | ||
diff --git a/middlewares/cache.js b/middlewares/cache.js new file mode 100644 index 000000000..782165155 --- /dev/null +++ b/middlewares/cache.js | |||
@@ -0,0 +1,25 @@ | |||
1 | ;(function () { | ||
2 | 'use strict' | ||
3 | |||
4 | var cacheMiddleware = { | ||
5 | cache: cache | ||
6 | } | ||
7 | |||
8 | function cache (cache) { | ||
9 | return function (req, res, next) { | ||
10 | // If we want explicitly a cache | ||
11 | // Or if we don't specify if we want a cache or no and we are in production | ||
12 | if (cache === true || (cache !== false && process.env.NODE_ENV === 'production')) { | ||
13 | res.setHeader('Cache-Control', 'public') | ||
14 | } else { | ||
15 | res.setHeader('Cache-Control', 'no-cache, no-store, max-age=0, must-revalidate') | ||
16 | } | ||
17 | |||
18 | next() | ||
19 | } | ||
20 | } | ||
21 | |||
22 | // --------------------------------------------------------------------------- | ||
23 | |||
24 | module.exports = cacheMiddleware | ||
25 | })() | ||
diff --git a/middlewares/index.js b/middlewares/index.js index 311dfb6d2..bfe325b1e 100644 --- a/middlewares/index.js +++ b/middlewares/index.js | |||
@@ -2,8 +2,9 @@ | |||
2 | 'use strict' | 2 | 'use strict' |
3 | 3 | ||
4 | var middlewares = { | 4 | var middlewares = { |
5 | misc: require('./misc'), | 5 | cache: require('./cache'), |
6 | reqValidators: require('./reqValidators') | 6 | reqValidators: require('./reqValidators'), |
7 | secure: require('./secure') | ||
7 | } | 8 | } |
8 | 9 | ||
9 | // --------------------------------------------------------------------------- | 10 | // --------------------------------------------------------------------------- |
diff --git a/middlewares/misc.js b/middlewares/secure.js index cc4e2e8a4..99ac9cdae 100644 --- a/middlewares/misc.js +++ b/middlewares/secure.js | |||
@@ -8,25 +8,10 @@ | |||
8 | var Pods = require('../models/pods') | 8 | var Pods = require('../models/pods') |
9 | var utils = require('../helpers/utils') | 9 | var utils = require('../helpers/utils') |
10 | 10 | ||
11 | var miscMiddleware = { | 11 | var secureMiddleware = { |
12 | cache: cache, | ||
13 | decryptBody: decryptBody | 12 | decryptBody: decryptBody |
14 | } | 13 | } |
15 | 14 | ||
16 | function cache (cache) { | ||
17 | return function (req, res, next) { | ||
18 | // If we want explicitly a cache | ||
19 | // Or if we don't specify if we want a cache or no and we are in production | ||
20 | if (cache === true || (cache !== false && process.env.NODE_ENV === 'production')) { | ||
21 | res.setHeader('Cache-Control', 'public') | ||
22 | } else { | ||
23 | res.setHeader('Cache-Control', 'no-cache, no-store, max-age=0, must-revalidate') | ||
24 | } | ||
25 | |||
26 | next() | ||
27 | } | ||
28 | } | ||
29 | |||
30 | function decryptBody (req, res, next) { | 15 | function decryptBody (req, res, next) { |
31 | var url = req.body.signature.url | 16 | var url = req.body.signature.url |
32 | Pods.findByUrl(url, function (err, pod) { | 17 | Pods.findByUrl(url, function (err, pod) { |
@@ -61,5 +46,5 @@ | |||
61 | 46 | ||
62 | // --------------------------------------------------------------------------- | 47 | // --------------------------------------------------------------------------- |
63 | 48 | ||
64 | module.exports = miscMiddleware | 49 | module.exports = secureMiddleware |
65 | })() | 50 | })() |