Server: add port when making friends if it is not specified
This commit is contained in:
parent
825a5d9c5e
commit
1ab844d859
3 changed files with 71 additions and 1 deletions
|
@ -10,6 +10,7 @@ const friends = require('../../../lib/friends')
|
|||
const middlewares = require('../../../middlewares')
|
||||
const admin = middlewares.admin
|
||||
const oAuth = middlewares.oauth
|
||||
const podsMiddleware = middlewares.pods
|
||||
const checkSignature = middlewares.secure.checkSignature
|
||||
const validators = middlewares.validators.pods
|
||||
const signatureValidator = middlewares.validators.remote.signature
|
||||
|
@ -19,11 +20,16 @@ const Pod = mongoose.model('Pod')
|
|||
const Video = mongoose.model('Video')
|
||||
|
||||
router.get('/', listPods)
|
||||
router.post('/', validators.podsAdd, addPods)
|
||||
router.post('/',
|
||||
validators.podsAdd,
|
||||
podsMiddleware.setBodyUrlPort,
|
||||
addPods
|
||||
)
|
||||
router.post('/makefriends',
|
||||
oAuth.authenticate,
|
||||
admin.ensureIsAdmin,
|
||||
validators.makeFriends,
|
||||
podsMiddleware.setBodyUrlsPort,
|
||||
makeFriends
|
||||
)
|
||||
router.get('/quitfriends',
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
const adminMiddleware = require('./admin')
|
||||
const oauthMiddleware = require('./oauth')
|
||||
const paginationMiddleware = require('./pagination')
|
||||
const podsMiddleware = require('./pods')
|
||||
const validatorsMiddleware = require('./validators')
|
||||
const searchMiddleware = require('./search')
|
||||
const sortMiddleware = require('./sort')
|
||||
|
@ -12,6 +13,7 @@ const middlewares = {
|
|||
admin: adminMiddleware,
|
||||
oauth: oauthMiddleware,
|
||||
pagination: paginationMiddleware,
|
||||
pods: podsMiddleware,
|
||||
search: searchMiddleware,
|
||||
secure: secureMiddleware,
|
||||
sort: sortMiddleware,
|
||||
|
|
62
server/middlewares/pods.js
Normal file
62
server/middlewares/pods.js
Normal file
|
@ -0,0 +1,62 @@
|
|||
'use strict'
|
||||
|
||||
const urlModule = require('url')
|
||||
|
||||
const logger = require('../helpers/logger')
|
||||
|
||||
const podsMiddleware = {
|
||||
setBodyUrlsPort: setBodyUrlsPort,
|
||||
setBodyUrlPort: setBodyUrlPort
|
||||
}
|
||||
|
||||
function setBodyUrlsPort (req, res, next) {
|
||||
for (let i = 0; i < req.body.urls.length; i++) {
|
||||
const urlWithPort = getUrlWithPort(req.body.urls[i])
|
||||
|
||||
// Problem with the url parsing?
|
||||
if (urlWithPort === null) {
|
||||
return res.sendStatus(500)
|
||||
}
|
||||
|
||||
req.body.urls[i] = urlWithPort
|
||||
}
|
||||
|
||||
return next()
|
||||
}
|
||||
|
||||
function setBodyUrlPort (req, res, next) {
|
||||
const urlWithPort = getUrlWithPort(req.body.url)
|
||||
|
||||
// Problem with the url parsing?
|
||||
if (urlWithPort === null) {
|
||||
return res.sendStatus(500)
|
||||
}
|
||||
|
||||
req.body.url = urlWithPort
|
||||
|
||||
return next()
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
module.exports = podsMiddleware
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function getUrlWithPort (url) {
|
||||
const urlObj = urlModule.parse(url)
|
||||
|
||||
// Add the port if it is not specified
|
||||
if (urlObj.port === null) {
|
||||
if (urlObj.protocol === 'http:') {
|
||||
return url + ':80'
|
||||
} else if (urlObj.protocol === 'https:') {
|
||||
return url + ':443'
|
||||
} else {
|
||||
logger.error('Unknown url protocol: ' + urlObj.protocol)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
return url
|
||||
}
|
Loading…
Reference in a new issue