@@ -7,7 +7,7 @@ const changesTemplate = require("../../marko/page/data/changes.marko")
|
||||
|
||||
router.get("/", async(req, res) => {
|
||||
res.markoAsync(changesTemplate, {
|
||||
changes: changesApi.list({limit: 2000}),
|
||||
changes: changesApi.list({limit: 1000}),
|
||||
selected: {changes: true},
|
||||
})
|
||||
})
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
const express = require("express")
|
||||
const router = express.Router()
|
||||
|
||||
const {generateToken} = require("../graphql")
|
||||
const {fileApi} = require("../../rpdata/api/File")
|
||||
|
||||
const filesTemplate = require("../../marko/page/data/files.marko")
|
||||
|
||||
router.get("/", async(req, res) => {
|
||||
let privates = []
|
||||
if (res.locals.user) {
|
||||
privates = fileApi.list({public: false}, {token: generateToken(res.locals.user.name)})
|
||||
}
|
||||
|
||||
res.markoAsync(filesTemplate, {
|
||||
privates: privates,
|
||||
publics: fileApi.list(),
|
||||
selected: {files: true},
|
||||
})
|
||||
})
|
||||
|
||||
module.exports = router
|
||||
+6
-12
@@ -3,16 +3,10 @@ const express = require("express")
|
||||
const jwt = require("jsonwebtoken")
|
||||
|
||||
const config = require("../config")
|
||||
const { query } = require("../rpdata/client")
|
||||
|
||||
const router = express.Router()
|
||||
|
||||
router.post("/", (req, res) => {
|
||||
if (!req.header("Content-Type").startsWith("application/json")) {
|
||||
res.status(400).json({errors: [{message: "Incorrect input type, expected application/json"}]})
|
||||
return
|
||||
}
|
||||
|
||||
const user = res.locals.user
|
||||
const permissions = (req.header("X-Permissions") || "").split(",").filter(t => t != "" && t != "undefined" && t != "null")
|
||||
let authorization = req.header("Authorization")
|
||||
@@ -20,17 +14,17 @@ router.post("/", (req, res) => {
|
||||
authorization = ""
|
||||
}
|
||||
|
||||
if (!authorization && permissions.length > 0 && user.loggedIn) {
|
||||
if (!authorization && user.loggedIn) {
|
||||
authorization = `Bearer ${generateToken(user.name, permissions)}`
|
||||
}
|
||||
|
||||
fetch(config.graphqlEndpoint, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"Content-Type": req.header("Content-Type"),
|
||||
"Authorization": authorization,
|
||||
},
|
||||
body: JSON.stringify(req.body),
|
||||
body: req,
|
||||
credentials: "include",
|
||||
}).then(fetchRes => {
|
||||
res.setHeader("Content-Type", fetchRes.headers.get("Content-Type"))
|
||||
@@ -51,8 +45,8 @@ router.use("/", proxy(config.graphqlEndpoint, {ws: true}))
|
||||
* @param {string} user
|
||||
* @param {string[]} permissions
|
||||
*/
|
||||
function generateToken(user, permissions) {
|
||||
return jwt.sign({user, permissions, exp: Math.floor((Date.now() / 1000) + 1200)}, config.backend.secret, {header: {kid: config.backend.kid}})
|
||||
function generateToken(user) {
|
||||
return jwt.sign({user, exp: Math.floor((Date.now() / 1000) + 1200)}, config.backend.secret, {header: {kid: config.backend.kid}})
|
||||
}
|
||||
|
||||
module.exports = router
|
||||
module.exports = {router, generateToken}
|
||||
Reference in New Issue
Block a user