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

link between servers & groups, clean, bug fix

This commit is contained in:
Valentin PUCCETTI
2023-09-11 16:28:18 +02:00
parent a034396dbe
commit 221a4b24a0
19 changed files with 298 additions and 76 deletions

View File

@@ -0,0 +1,52 @@
const Group = require("../model/group.model");
const Access = require("../model/access.model");
const Server = require("../model/server.model");
async function addAccess(serverHostname, groupName) {
Group.findOne({ where: { name: groupName} }).then((result) => {
if (result) {
Server.findOne({ where: { hostname: serverHostname } }).then((server) => {
if (server) {
Access.findOne({ where: { groupName: result.name, serverHostname: server.hostname } }).then((access) => {
if (!access) {
Access.create({
serverHostname: server.hostname,
groupName: result.name
}).then((access) => {
console.log('access added to database' + '(' + access.serverHostname + ',' + access.groupName + ')')
});
}
})
}
})
}
})
}
async function delAccess(serverHostname, groupName) {
Group.findOne({ where: { name: groupName} }).then((result) => {
if (result) {
Server.findOne({ where: { hostname: serverHostname } }).then((server) => {
if (user) {
Access.findOne({ where: { groupName: result.name, serverHostname: server.hostname } }).then((access) => {
if (access) {
access.destroy()
.then(() => {
console.log('access deleted from database' + '(' + access.serverHostname + ',' + access.groupName + ')')
});
}
})
}
})
}
})
}
module.exports = {
addAccess,
delAccess
};

View File

@@ -1,14 +1,18 @@
const Group = require('../model/group.model')
const Member = require('../model/member.model')
const regexp = /^\S*$/;
const User = require('../model/user.model')
const Server = require('../model/server.model')
const Access = require('../model/access.model')
const regexp_space = /^\S*$/;
async function addGroup(name) {
Group.findOne({where: { name: name}}).then((result) => {
if (result) {
return false;
} else {
if (name && regexp.test(name)) {
if (name && regexp_space.test(name)) {
Group.create({
name: name.toLowerCase(),
}).then((result) => {
@@ -26,7 +30,7 @@ async function addGroup(name) {
async function delGroup(name) {
Group.findOne({where: { name: name}}).then((result) => {
if (result && regexp.test(name)) {
if (result && regexp_space.test(name)) {
result.destroy()
.then(() => {
console.log('group ' + result.name + ' added to database')
@@ -37,6 +41,13 @@ async function delGroup(name) {
})
}
});
Access.findAll({where: { groupName: name}}).then((accesses) => {
for (x in accesses) {
accesses[x].destroy().then(() => {
console.log('access ' + accesses[x].userId + ' deleted from database')
})
}
});
});
} else {
return false;
@@ -51,6 +62,8 @@ async function getGroupsWithMembers() {
return count
}
async function groupUserList(groupName) {
User.hasMany(Member);
Member.belongsTo(User);
@@ -69,10 +82,35 @@ async function groupUserList(groupName) {
return result
};
async function groupServerList(groupName) {
Server.hasMany(Access);
Access.belongsTo(Server);
const servers = await Server.findAll({ include: Access });
var result = []
for (x in servers) {
try {
for (y in servers[x].dataValues.accesses) {
if (servers[x].dataValues.accesses[y].dataValues.groupName === groupName) {
result[x] = (servers[x].dataValues)
}
}
} catch (error) {
}}
return result
};
groupServerList('group1').then(
(result) => {
console.log(result)
}
)
module.exports = {
addGroup,
delGroup,
groupUserList,
getGroupsWithMembers
getGroupsWithMembers,
groupServerList
};

View File

@@ -1,13 +1,13 @@
const Key = require('../model/key.model')
const regexp = /^\S*$/;
const regexp_space = /^\S*$/;
async function addKey(content, name, idOwner) {
Key.findOne({where: { idOwner: idOwner, name: name}}).then((result) => {
if (result) {
return false;
} else {
if (content && name && idOwner && regexp.test(name, idOwner, content)) {
if (content && name && idOwner && regexp_space.test(name, idOwner, content)) {
Key.create({
idOwner: idOwner,
content: content,
@@ -25,7 +25,7 @@ async function addKey(content, name, idOwner) {
async function delKey(name, idOwner) {
Key.findOne({where: { name: name, idOwner: idOwner}}).then((result) => {
if (result && regexp.test(name, idOwner)) {
if (result && regexp_space.test(name, idOwner)) {
result.destroy()
.then(() => {
console.log('key for ' + result.idOwner + ' deleted from database')

View File

@@ -2,8 +2,6 @@ const Member = require('../model/member.model')
const Group = require("../model/group.model");
const User = require("../model/user.model");
const regexp = /^\S*$/;
async function addMember(userId, groupName) {
Group.findOne({ where: { name: groupName} }).then((result) => {
if (result) {

View File

@@ -1,10 +1,8 @@
const Group = require('../model/group.model')
const Member = require('../model/member.model')
const User = require('../model/user.model')
const Server = require('../model/server.model')
const Access = require("../model/access.model");
const regexp_space = /^\S*$/;
const regexp_ip = /^((25[05]|2[04][09]|[01]?[09][09]?).(25[05]|2[04][09]|[01]?[09][09]?).(25[05]|2[04][09]|[01]?[09][09]?).(25[05]|2[04][09]|[01]?[09][09]?))|((([09A-Fa-f]{1,4}:){7}[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){6}:[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){5}:([09A-Fa-f]{1,4}:)?[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){4}:([09A-Fa-f]{1,4}:){0,2}[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){3}:([09A-Fa-f]{1,4}:){0,3}[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){2}:([09A-Fa-f]{1,4}:){0,4}[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){6}((b((25[05])|(1d{2})|(2[04]d)|(d{1,2}))b).){3}(b((25[05])|(1d{2})|(2[04]d)|(d{1,2}))b))|(([09A-Fa-f]{1,4}:){0,5}:((b((25[05])|(1d{2})|(2[04]d)|(d{1,2}))b).){3}(b((25[05])|(1d{2})|(2[04]d)|(d{1,2}))b))|(::([09A-Fa-f]{1,4}:){0,5}((b((25[05])|(1d{2})|(2[04]d)|(d{1,2}))b).){3}(b((25[05])|(1d{2})|(2[04]d)|(d{1,2}))b))|([09A-Fa-f]{1,4}::([09A-Fa-f]{1,4}:){0,5}[09A-Fa-f]{1,4})|(::([09A-Fa-f]{1,4}:){0,6}[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){1,7}:))$/
const regexp_ip = /((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/
async function addServer(hostname, ip, username) {
Server.findOne({where: { hostname: hostname}}).then((result) => {
@@ -33,6 +31,13 @@ async function delServer(hostname) {
result.destroy()
.then(() => {
console.log('server ' + result.hostname + ' deleted from database')
Access.findAll({where: { serverHostname: hostname}}).then((accesses) => {
for (x in accesses) {
accesses[x].destroy().then(() => {
console.log('access ' + accesses[x].userId + ' deleted from database')
})
}
});
});
} else {
return false;

View File

@@ -1,7 +1,6 @@
const User = require('../model/user.model')
const Key = require("../model/key.model");
const regexp = /^\S*$/;
const regexp_space = /^\S*$/;
async function userList(code) {
@@ -22,7 +21,7 @@ function makeAdmin(userId) {
async function delUser(id) {
User.findOne({where: { id: id}}).then((result) => {
if (result && regexp.test(id)) {
if (result && regexp_space.test(id)) {
result.destroy()
.then(() => {
console.log('user ' + id + ' deleted from database')