]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/middlewares/secure.js
Merge branch 'postgresql'
[github/Chocobozzz/PeerTube.git] / server / middlewares / secure.js
index ee836beed45059ce362f30e104db46bb13c054a3..b6e6d818b91995561b98f06df70459a6315e3360 100644 (file)
@@ -1,18 +1,16 @@
 'use strict'
 
+const db = require('../initializers/database')
 const logger = require('../helpers/logger')
-const mongoose = require('mongoose')
 const peertubeCrypto = require('../helpers/peertube-crypto')
 
-const Pod = mongoose.model('Pod')
-
 const secureMiddleware = {
   checkSignature
 }
 
 function checkSignature (req, res, next) {
   const host = req.body.signature.host
-  Pod.loadByHost(host, function (err, pod) {
+  db.Pod.loadByHost(host, function (err, pod) {
     if (err) {
       logger.error('Cannot get signed host in body.', { error: err })
       return res.sendStatus(500)
@@ -25,9 +23,20 @@ function checkSignature (req, res, next) {
 
     logger.debug('Checking signature from %s.', host)
 
-    const signatureOk = peertubeCrypto.checkSignature(pod.publicKey, host, req.body.signature.signature)
+    let signatureShouldBe
+    if (req.body.data) {
+      signatureShouldBe = req.body.data
+    } else {
+      signatureShouldBe = host
+    }
+
+    const signatureOk = peertubeCrypto.checkSignature(pod.publicKey, signatureShouldBe, req.body.signature.signature)
 
     if (signatureOk === true) {
+      res.locals.secure = {
+        pod
+      }
+
       return next()
     }