]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/controllers/api/v1/users.js
Update to standard 7. Goodbye snake_case, I used to love you
[github/Chocobozzz/PeerTube.git] / server / controllers / api / v1 / users.js
index acb860c667be5a87478bf89433db6d1863c8b79b..0584d5cdf422e91ab27041032efe65b038b63052 100644 (file)
@@ -1,15 +1,17 @@
 'use strict'
 
-var express = require('express')
-var oAuth2 = require('../../../middlewares/oauth2')
+const config = require('config')
+const express = require('express')
+const oAuth2 = require('../../../middlewares/oauth2')
 
 const middleware = require('../../../middlewares')
 const cacheMiddleware = middleware.cache
+const Users = require('../../../models/users')
 
 const router = express.Router()
 
-router.post('/token', cacheMiddleware.cache(false), oAuth2.token(), success)
-router.get('/authenticate', cacheMiddleware.cache(false), oAuth2.authenticate(), success)
+router.get('/client', cacheMiddleware.cache(false), getAngularClient)
+router.post('/token', cacheMiddleware.cache(false), oAuth2.token, success)
 
 // ---------------------------------------------------------------------------
 
@@ -17,6 +19,27 @@ module.exports = router
 
 // ---------------------------------------------------------------------------
 
+function getAngularClient (req, res, next) {
+  const serverHost = config.get('webserver.host')
+  const serverPort = config.get('webserver.port')
+  let headerHostShouldBe = serverHost
+  if (serverPort !== 80 && serverPort !== 443) {
+    headerHostShouldBe += ':' + serverPort
+  }
+
+  if (req.get('host') !== headerHostShouldBe) return res.type('json').status(403).end()
+
+  Users.getFirstClient(function (err, client) {
+    if (err) return next(err)
+    if (!client) return next(new Error('No client available.'))
+
+    res.json({
+      client_id: client._id,
+      client_secret: client.clientSecret
+    })
+  })
+}
+
 function success (req, res, next) {
   res.end()
 }