admin dashboard, database updated (members, groups), group setup and permissions
This commit is contained in:
@@ -2,7 +2,9 @@ const Sequelize = require('sequelize');
|
||||
|
||||
const sequelize = new Sequelize('accessgate', 'user', 'password', {
|
||||
dialect: 'sqlite',
|
||||
host: './database.db'
|
||||
host: './database.db',
|
||||
logging: false
|
||||
})
|
||||
|
||||
|
||||
module.exports = sequelize;
|
||||
59
services/group.service.js
Normal file
59
services/group.service.js
Normal file
@@ -0,0 +1,59 @@
|
||||
const Group = require('../model/group.model')
|
||||
const Members = require('../model/member.model')
|
||||
const regexp = /^\S*$/;
|
||||
const User = require('../model/user.model')
|
||||
|
||||
async function addGroup(name) {
|
||||
Group.findOne({where: { name: name}}).then((result) => {
|
||||
if (result) {
|
||||
return false;
|
||||
} else {
|
||||
if (name && regexp.test(name)) {
|
||||
Group.create({
|
||||
name: name,
|
||||
}).then((result) => {
|
||||
console.log('Group ' + result.name + ' added to database')
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function delGroup(name) {
|
||||
Group.findOne({where: { name: name}}).then((result) => {
|
||||
if (result && regexp.test(name)) {
|
||||
result.destroy()
|
||||
.then(() => {
|
||||
console.log('group ' + result.name + ' added to database')
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function groupUserList(groupName) {
|
||||
User.hasMany(Members);
|
||||
Members.belongsTo(User);
|
||||
const users = await User.findAll({ include: Members });
|
||||
var result = []
|
||||
for (x in users) {
|
||||
try {
|
||||
if (users[x].dataValues.members[0].dataValues.groupName === groupName) {
|
||||
result[x] = (users[x].dataValues)
|
||||
}
|
||||
} catch (error) {
|
||||
}}
|
||||
return result
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
addGroup,
|
||||
delGroup,
|
||||
groupUserList
|
||||
};
|
||||
49
services/keys.service.js
Normal file
49
services/keys.service.js
Normal file
@@ -0,0 +1,49 @@
|
||||
const Key = require('../model/key.model')
|
||||
|
||||
const regexp = /^\S*$/;
|
||||
|
||||
async function addKey(content, name, idOwner) {
|
||||
const id_key = idOwner.toString() + name;
|
||||
Key.findOne({where: { idKey: id_key}}).then((result) => {
|
||||
if (result) {
|
||||
return false;
|
||||
} else {
|
||||
if (content && name && idOwner && regexp.test(name, idOwner, content)) {
|
||||
Key.create({
|
||||
idKey: id_key,
|
||||
idOwner: idOwner,
|
||||
content: content,
|
||||
name: name,
|
||||
}).then((key) => {
|
||||
console.log('key ' + key.idKey + ' added to database')
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function delKey(id, idOwner) {
|
||||
Key.findOne({where: { idKey: id}}).then((result) => {
|
||||
if (result && regexp.test(id,idOwner)) {
|
||||
if (result.idOwner !== idOwner) {
|
||||
return false;
|
||||
} else {
|
||||
result.destroy()
|
||||
.then(() => {
|
||||
console.log('key ' + result.idKey + ' added to database')
|
||||
});
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
addKey,
|
||||
delKey
|
||||
};
|
||||
21
services/users.service.js
Normal file
21
services/users.service.js
Normal file
@@ -0,0 +1,21 @@
|
||||
const User = require('../model/user.model')
|
||||
|
||||
async function userList(code) {
|
||||
return await User.findAll()
|
||||
}
|
||||
|
||||
function makeAdmin(userId) {
|
||||
User.findOne({ where: { id: userId } }).then((result) => {
|
||||
if (result) {
|
||||
result.admin = true;
|
||||
result.save().then(() => {
|
||||
console.log('user ' + result.login + ' is now admin')
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
userList,
|
||||
makeAdmin
|
||||
};
|
||||
Reference in New Issue
Block a user