diff --git a/routes/endpoint/update.route.js b/routes/endpoint/update.route.js index 434d9e2..70dbe8b 100644 --- a/routes/endpoint/update.route.js +++ b/routes/endpoint/update.route.js @@ -16,7 +16,7 @@ router.get("/:server/users", async (req, res) => { console.log(result[0].serverUsername) var raw = '' for (x in result) { - raw += '# ' + result[x].login + ' (' + result[x].userId + ')' + '\n' + result[x].serverUsername + '\n\n' + raw += result[x].serverUsername + '\n' } res.send(raw) }) @@ -59,6 +59,31 @@ router.get("/:server/key/:user", async (req, res) => { } }); -module.exports = router; +router.get("/:server/allkeys", async (req, res) => { + try { + Server.findOne({ where: { hostname: req.params.server } }).then((server) => { + if (server) { + if (bcrypt.compareSync(req.body.secret, server.secret)) { + serverService.getServerKeys(req.params.server).then((result) => { + var raw = '' + for (x in result) { + raw += '# ' + x + '\n' + result[x] + '\n\n' + } + res.send(raw) + server.lastPull = new Date() + server.save() + }) + } else { + res.send("invalid request") + } + } else { + res.send("invalid request") + } + }) + } catch (e) { + console.log(e) + } +}); +module.exports = router; \ No newline at end of file diff --git a/services/server.service.js b/services/server.service.js index d80d179..775a1bf 100644 --- a/services/server.service.js +++ b/services/server.service.js @@ -84,6 +84,22 @@ async function getServerUserKey(server, serverUsername) { return result } +async function getServerKeys(server) { + const dump = await sequelize.query('SELECT name, content FROM servers JOIN accesses on accesses.serverHostname = servers.hostname JOIN members on members.groupName = accesses.groupName JOIN keys on keys.idOwner = members.userid WHERE serverHostname = \'' + server + '\'', {}); + result = {} + console.log(dump) + for (x in dump) { + for (y in dump[x]) { + try { + if (dump[x][y]) { + result[dump[x][y].name] = dump[x][y].content.replace(/(\r\n|\n|\r)/gm, ""); + } + } catch (e) {} + } + } + return result +} + async function getServerUsers(server) { const dump = await sequelize.query('SELECT DISTINCT login, userId, serverUsername FROM servers JOIN users on users.id = members.userId JOIN accesses on accesses.serverHostname = servers.hostname JOIN members on members.groupName = accesses.groupName WHERE serverHostname = \'' + server + '\'', {}); return dump[0] @@ -112,6 +128,7 @@ async function getServerListForUserId(userId) { module.exports = { getServerUsers, + getServerKeys, addServer, delServer, getServerUserKey,