1
0
mirror of synced 2025-10-28 18:19:17 +00:00

first functionnal instance ! 🎉

This commit is contained in:
Valentin
2023-09-12 23:44:38 +02:00
parent 86cf05c43f
commit 7b0a757fc7
15 changed files with 301 additions and 71 deletions

View File

@@ -4,6 +4,7 @@ const User = require("../../model/user.model");
const Group = require("../../model/group.model");
const Server = require("../../model/server.model");
const {groupServerList} = require("../../services/groups.service");
const url = require("url");
groupService = require("../../services/groups.service");
memberService = require("../../services/members.service");
@@ -17,7 +18,7 @@ router.get("/", (req, res) => {
for (x in groups) {
groups[x]['servers'] = groups2[x].dataValues.accesses
}
res.render('admin/groups', { "groups": groups })
res.render('admin/groups', { "groups": groups, locals: {alert: req.query.alert, alert_type: req.query.type} })
})
})
} catch (e) {
@@ -29,20 +30,45 @@ router.get("/", (req, res) => {
router.post("/add", (req, res) => {
if (req.body.group_name) {
groupService.addGroup(req.body.group_name).then((result) => {
res.redirect("/admin/groups")
res.redirect(url.format({
pathname:'/admin/groups',
query: {
"alert": "✅ Group " + req.body.group_name + " added.",
"type": "success"
}
}));
})
} else {
res.redirect("/admin/groups")
res.redirect(url.format({
pathname:'/admin/groups',
query: {
"alert": "⚠️ Missing or invalid arguments.",
"type": "warning"
}
}));
}
})
router.get("/delete/:group", (req, res) => {
try {
groupService.delGroup(req.params.group).then((result) => {
res.redirect("/admin/groups")
res.redirect(url.format({
pathname:'/admin/groups',
query: {
"alert": "🗑️ Group " + req.params.group + " deleted.",
"type": "success"
}
}));
})
} catch (e) {
console.log(e)
res.redirect(url.format({
pathname:'/admin/groups',
query: {
"alert": "⚠️ An error occured, ask your admin to check logs.",
"type": "danger"
}
}));
}
});
@@ -54,30 +80,47 @@ router.get("/:name", async (req, res) => {
res.render('admin/group_new')
} else {
Group.findOne({ where: { name: req.params.name } }).then((group) => {
groupService.groupUserList(req.params.name).then((result) => {
User.findAll().then((users) => {
for (user in users) {
if (Object.keys(result).includes(users[user].dataValues.id.toString())) {
delete users[user]
}
}
groupService.groupServerList(req.params.name).then((result2) => {
Server.findAll().then((servers) => {
for (server in servers) {
if (Object.keys(result2).includes(servers[server].dataValues.hostname)) {
delete servers[server]
}
if (group) {
groupService.groupUserList(req.params.name).then((result) => {
User.findAll().then((users) => {
for (user in users) {
if (Object.keys(result).includes(users[user].dataValues.id.toString())) {
delete users[user]
}
res.render('admin/group_edit', { "group": group, "inGroup": result, "outGroup": users, "inServer": result2, "outServer": servers});
}
groupService.groupServerList(req.params.name).then((result2) => {
Server.findAll().then((servers) => {
for (server in servers) {
if (Object.keys(result2).includes(servers[server].dataValues.hostname)) {
delete servers[server]
}
}
res.render('admin/group_edit', { "group": group, "inGroup": result, "outGroup": users, "inServer": result2, "outServer": servers});
});
});
});
})
});
})
});
} else {
res.redirect(url.format({
pathname:'/admin/groups',
query: {
"alert": "⚠️ Missing or invalid group.",
"type": "warning"
}
}));
}
})
;
}
} catch(e){
console.log(e)
res.redirect(url.format({
pathname:'/admin/groups',
query: {
"alert": "⚠️ An error occured, ask your admin to check logs.",
"type": "danger"
}
}));
}
})

View File

@@ -3,6 +3,7 @@ const User = require("../../model/user.model");
const Group = require("../../model/group.model");
const Server = require("../../model/server.model");
const url = require('url');
require('dotenv').config()
memberService = require("../../services/members.service");
serverService = require("../../services/server.service");
@@ -12,14 +13,28 @@ var router = express.Router();
router.get("/", (req, res) => {
try {
Server.findAll().then((servers) => {
if (req.query.alert) {
res.render('admin/servers', { "servers": servers, locals: { alert: req.query.alert, alert_type: req.query.type} })
} else {
res.render('admin/servers', { "servers": servers })
if (req.query.alert === "secretDisplay") {
var tmp = ''
var secret_display = {}
servers.forEach((server) => {
if (server.hostname === req.query.server) {
secret_display.content = server.tmp
secret_display.url = process.env.APP_URL
secret_display.name = server.hostname
}
})
}
res.render('admin/servers', { "servers": servers, locals: {secret: secret_display, alert: req.query.alert, alert_type: req.query.type} })
});
} catch (e) {
console.log(e)
res.redirect(url.format({
pathname:'/admin/users',
query: {
"alert": "⚠️ An error occured, ask your admin to check logs.",
"type": "danger"
}
}));
}
})
@@ -27,46 +42,64 @@ router.get("/", (req, res) => {
router.post("/add", (req, res) => {
try {
if (req.body.server_hostname && req.body.server_ip && req.body.server_username) {
serverService.addServer(req.body.server_hostname, req.body.server_ip, req.body.server_username).then((result) => {
serverService.addServer(req.body.server_hostname, req.body.server_ip, req.body.server_username).then((secret) => {
res.redirect(url.format({
pathname:'/admin/servers',
query: {
"server": req.body.server_hostname,
"alert": "secretDisplay"
}
}));
res.redirect("/admin/servers")
})
} else {
res.redirect(url.format({
pathname:'/admin/servers',
query: {
"alert": "Please check the value of your fields or if the server does not already exist.",
"alert": "⚠️ Please check the value of your fields or if the server does not already exist.",
"type": "danger"
}
}));
}
} catch (e) {
console.log(e)
res.redirect(url.format({
pathname:'/admin/servers',
query: {
"alert": "⚠️ An error occured, ask your admin to check logs.",
"type": "danger"
}
}));
}
})
router.get("/delete/:server", (req, res) => {
try {
serverService.delServer(req.params.server).then((result) => {
res.redirect("/admin/servers")
res.redirect(url.format({
pathname:'/admin/servers',
query: {
"alert": "✅ Server " + req.params.server + " deleted.",
"type": "success"
}
}));
})
} catch (e) {
console.log(e)
res.redirect(url.format({
pathname:'/admin/servers',
query: {
"alert": "⚠️ An error occured, ask your admin to check logs.",
"type": "danger"
}
}));
}
});
router.get("/:name", async (req, res) => {
try {
if (req.params.name === "new") {
res.render('admin/server_new')
} else {
console.log('a')
}
} catch(e){
console.log(e)
}
router.get("/new", async (req, res) => {
res.render('admin/server_new')
})

View File

@@ -1,6 +1,7 @@
const express = require('express');
const User = require("../../model/user.model");
const Key = require("../../model/key.model");
const url = require("url");
keyService = require("../../services/keys.service");
groupService = require("../../services/groups.service");
@@ -13,7 +14,7 @@ var router = express.Router();
router.get("/",async (req, res) => {
try {
User.findAll().then((users) => {
res.render('admin/users', { "users": users})
res.render('admin/users', { "users": users, locals: {alert: req.query.alert, alert_type: req.query.type}})
})
} catch(e) {
console.log(e)
@@ -25,13 +26,32 @@ router.get("/delete/:userId", (req, res) => {
try {
if (req.params.userId != req.session.user.id) {
userService.delUser(req.params.userId).then((result) => {
res.redirect("/admin/users")
res.redirect(url.format({
pathname:'/admin/users',
query: {
"alert": "🗑️ User " + req.params.userId + " deleted.",
"type": "success"
}
}));
})
} else {
res.redirect("/admin/users")
res.redirect(url.format({
pathname:'/admin/users',
query: {
"alert": "☹️",
"type": "danger"
}
}));
}
} catch(e) {
console.log(e)
res.redirect(url.format({
pathname:'/admin/users',
query: {
"alert": "⚠️ An error occured, ask your admin to check logs.",
"type": "danger"
}
}));
}
});
@@ -40,21 +60,46 @@ router.get("/delete/:userId", (req, res) => {
router.get("/:id", async (req, res) => {
try {
User.findOne({ where: { id: req.params.id } }).then((user) => {
Key.findAll({where: { "idOwner": user.id}}).then((keys) => {
res.render('admin/user_edit', { "keys": keys, "user": user})});
});
Key.findAll({where: {"idOwner": user.id}}).then((keys) => {
res.render('admin/user_edit', {
"keys": keys,
"user": user,
locals: {alert: req.query.alert, alert_type: req.query.type}
})
});
})
} catch(e) {
console.log(e)
res.redirect(url.format({
pathname:'/admin/users',
query: {
"alert": "⚠️ An error occured, ask your admin to check logs.",
"type": "danger"
}
}));
}
})
router.get("/:id/deleteKey/:key", (req, res) => {
try {
keyService.delKey(req.params.key, req.params.id).then((result) => {
res.redirect("/admin/users/"+req.params.id)
res.redirect(url.format({
pathname:"/admin/users/"+req.params.id,
query: {
"alert": "🗑️ Key " + req.params.key + " deleted.",
"type": "success"
}
}));
})
} catch (e) {
console.log(e)
res.redirect(url.format({
pathname:'/admin/users',
query: {
"alert": "⚠️ An error occured, ask your admin to check logs.",
"type": "danger"
}
}));
}
});
@@ -62,13 +107,32 @@ router.post("/:id/addKey", (req, res) => {
try {
if (req.body.key_content && req.body.key_name) {
keyService.addKey(req.body.key_content, req.body.key_name, req.params.id).then((result) => {
res.redirect("/admin/users/"+req.params.id)
res.redirect(url.format({
pathname:"/admin/users/"+req.params.id,
query: {
"alert": "✅ Key " + req.body.key_name + " added.",
"type": "success"
}
}));
})
} else {
res.redirect("/admin/users/"+req.params.id)
res.redirect(url.format({
pathname:"/admin/users/"+req.params.id,
query: {
"alert": "⚠️ Missing or invalid arguments.",
"type": "warning"
}
}));
}
} catch(e) {
console.log(e)
res.redirect(url.format({
pathname:'/admin/users',
query: {
"alert": "⚠️ An error occured, ask your admin to check logs.",
"type": "danger"
}
}));
}
})

View File

@@ -11,16 +11,20 @@ const serverService = require("../../services/server.service");
router.get("/:server", async (req, res) => {
try {
Server.findOne({ where: { hostname: req.params.server } }).then((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)
})
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)
})
} else {
res.send("invalid request")
}
} else {
res.send("invalid secret")
res.send("invalid request")
}
})
} catch (e) {

View File

@@ -2,6 +2,7 @@ const express = require('express');
const keyService = require("../services/keys.service");
const Key = require("../model/key.model");
const url = require("url");
var router = express.Router();
@@ -17,13 +18,32 @@ router.post("/add", (req, res) => {
try {
if (req.body.key_content && req.body.key_name) {
keyService.addKey(req.body.key_content, req.body.key_name, req.session.user.id).then((result) => {
res.redirect("/keys")
res.redirect(url.format({
pathname:'/keys',
query: {
"alert": "✅ Key " + req.body.key_name + " added.",
"type": "success"
}
}));
})
} else {
res.redirect("/keys")
res.redirect(url.format({
pathname:'/keys',
query: {
"alert": "⚠️ Missing or invalid arguments.",
"type": "warning"
}
}));
}
} catch (e) {
console.log(e)
res.redirect(url.format({
pathname:'/keys',
query: {
"alert": "⚠️ An error occured, ask your admin to check logs.",
"type": "danger"
}
}));
}
})
@@ -31,10 +51,23 @@ router.post("/add", (req, res) => {
router.get("/delete/:key", (req, res) => {
try {
keyService.delKey(req.params.key, req.session.user.id).then((result) => {
res.redirect("/keys")
res.redirect(url.format({
pathname:'/keys',
query: {
"alert": "🗑️ Key " + req.params.key + " deleted.",
"type": "success"
}
}));
})
} catch(e) {
console.log(e)
res.redirect(url.format({
pathname:'/keys',
query: {
"alert": "⚠️ An error occured, ask your admin to check logs.",
"type": "danger"
}
}));
}
});
@@ -43,10 +76,11 @@ router.get("/delete/:key", (req, res) => {
router.get("/", (req, res) => {
try {
Key.findAll({where: {idOwner: req.session.user.id}}).then((keys) => {
res.render('keys', { "keys": keys })
res.render('keys', { "keys": keys, locals: {alert: req.query.alert, alert_type: req.query.type} })
})
} catch(e) {
console.log(e)
}
});