link between servers & groups, clean, bug fix
This commit is contained in:
52
services/accesses.service.js
Normal file
52
services/accesses.service.js
Normal 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
|
||||
};
|
||||
@@ -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
|
||||
|
||||
};
|
||||
@@ -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')
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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[0–5]|2[0–4][0–9]|[01]?[0–9][0–9]?).(25[0–5]|2[0–4][0–9]|[01]?[0–9][0–9]?).(25[0–5]|2[0–4][0–9]|[01]?[0–9][0–9]?).(25[0–5]|2[0–4][0–9]|[01]?[0–9][0–9]?))|((([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})|(([0–9A-Fa-f]{1,4}:){5}:([0–9A-Fa-f]{1,4}:)?[0–9A-Fa-f]{1,4})|(([0–9A-Fa-f]{1,4}:){4}:([0–9A-Fa-f]{1,4}:){0,2}[0–9A-Fa-f]{1,4})|(([0–9A-Fa-f]{1,4}:){3}:([0–9A-Fa-f]{1,4}:){0,3}[0–9A-Fa-f]{1,4})|(([0–9A-Fa-f]{1,4}:){2}:([0–9A-Fa-f]{1,4}:){0,4}[0–9A-Fa-f]{1,4})|(([0–9A-Fa-f]{1,4}:){6}((b((25[0–5])|(1d{2})|(2[0–4]d)|(d{1,2}))b).){3}(b((25[0–5])|(1d{2})|(2[0–4]d)|(d{1,2}))b))|(([0–9A-Fa-f]{1,4}:){0,5}:((b((25[0–5])|(1d{2})|(2[0–4]d)|(d{1,2}))b).){3}(b((25[0–5])|(1d{2})|(2[0–4]d)|(d{1,2}))b))|(::([0–9A-Fa-f]{1,4}:){0,5}((b((25[0–5])|(1d{2})|(2[0–4]d)|(d{1,2}))b).){3}(b((25[0–5])|(1d{2})|(2[0–4]d)|(d{1,2}))b))|([0–9A-Fa-f]{1,4}::([0–9A-Fa-f]{1,4}:){0,5}[0–9A-Fa-f]{1,4})|(::([0–9A-Fa-f]{1,4}:){0,6}[0–9A-Fa-f]{1,4})|(([0–9A-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;
|
||||
|
||||
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user