From 6fcd19ba737f1f5614a56c6925adb882dea43b8d Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 5 Jul 2017 13:26:25 +0200 Subject: Move to promises Closes https://github.com/Chocobozzz/PeerTube/issues/74 --- server/middlewares/secure.ts | 56 ++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 28 deletions(-) (limited to 'server/middlewares/secure.ts') diff --git a/server/middlewares/secure.ts b/server/middlewares/secure.ts index fbfd08c7b..0fa9ee9d2 100644 --- a/server/middlewares/secure.ts +++ b/server/middlewares/secure.ts @@ -9,41 +9,41 @@ import { function checkSignature (req: express.Request, res: express.Response, next: express.NextFunction) { const host = req.body.signature.host - db.Pod.loadByHost(host, function (err, pod) { - if (err) { - logger.error('Cannot get signed host in body.', { error: err }) - return res.sendStatus(500) - } + db.Pod.loadByHost(host) + .then(pod => { + if (pod === null) { + logger.error('Unknown pod %s.', host) + return res.sendStatus(403) + } - if (pod === null) { - logger.error('Unknown pod %s.', host) - return res.sendStatus(403) - } + logger.debug('Checking signature from %s.', host) - logger.debug('Checking signature from %s.', host) + let signatureShouldBe + // If there is data in the body the sender used it for its signature + // If there is no data we just use its host as signature + if (req.body.data) { + signatureShouldBe = req.body.data + } else { + signatureShouldBe = host + } - let signatureShouldBe - // If there is data in the body the sender used it for its signature - // If there is no data we just use its host as signature - if (req.body.data) { - signatureShouldBe = req.body.data - } else { - signatureShouldBe = host - } + const signatureOk = peertubeCryptoCheckSignature(pod.publicKey, signatureShouldBe, req.body.signature.signature) - const signatureOk = peertubeCryptoCheckSignature(pod.publicKey, signatureShouldBe, req.body.signature.signature) + if (signatureOk === true) { + res.locals.secure = { + pod + } - if (signatureOk === true) { - res.locals.secure = { - pod + return next() } - return next() - } - - logger.error('Signature is not okay in body for %s.', req.body.signature.host) - return res.sendStatus(403) - }) + logger.error('Signature is not okay in body for %s.', req.body.signature.host) + return res.sendStatus(403) + }) + .catch(err => { + logger.error('Cannot get signed host in body.', { error: err }) + return res.sendStatus(500) + }) } // --------------------------------------------------------------------------- -- cgit v1.2.3