member count & bugfix

pull/1/head
Valentin PUCCETTI 2023-09-11 10:43:00 +02:00
parent c8efefdc4e
commit 06f92073c9
6 changed files with 17 additions and 22 deletions

View File

@ -10,6 +10,8 @@ const groupService = require("./services/group.service");
const User = require('./model/user.model') const User = require('./model/user.model')
const Key = require('./model/key.model') const Key = require('./model/key.model')
const {makeAdmin} = require("./services/users.service"); const {makeAdmin} = require("./services/users.service");
const Member = require("./model/member.model");
const Group = require("./model/group.model");
databaseService.sync().then(() => { databaseService.sync().then(() => {
console.log("Database ready"); console.log("Database ready");
@ -64,7 +66,6 @@ app.get("/login", (req, res) => {
app.use('/admin/', require('./routes/admin.route')); app.use('/admin/', require('./routes/admin.route'));
app.use('/auth/', require('./routes/auth.route')); app.use('/auth/', require('./routes/auth.route'));
app.use('/keys/', require('./routes/keys.route')); app.use('/keys/', require('./routes/keys.route'));

View File

@ -6,7 +6,7 @@ const Member = require("../model/member.model");
memberService = require("../services/members.service"); memberService = require("../services/members.service");
var router = express.Router(); var router = express.Router();
router.use('*', (req, res, next) => { router.use('*aaaa', (req, res, next) => {
if (req.session.loggedin === true) { if (req.session.loggedin === true) {
User.findOne({ where: { id: req.session.user.id } }).then((result) => { User.findOne({ where: { id: req.session.user.id } }).then((result) => {
if (result.admin === true) { if (result.admin === true) {
@ -29,11 +29,15 @@ router.get("/users",async (req, res) => {
}) })
router.get("/groups", (req, res) => { router.get("/groups", (req, res) => {
Group.findAll().then((groups) => { groupService.getGroupsWithMembers().then((groups) => {
res.render('admin/groups', { "groups": groups }) res.render('admin/groups', { "groups": groups })
}) })
}) })
router.post("/groups/add", (req, res) => { router.post("/groups/add", (req, res) => {
if (req.body.group_name) { if (req.body.group_name) {
groupService.addGroup(req.body.group_name).then((result) => { groupService.addGroup(req.body.group_name).then((result) => {
@ -66,12 +70,9 @@ router.get("/groups/:name", async (req, res) => {
} }
} }
res.render('admin/group_edit', { "group": group, "inGroup": result, "outGroup": users }) res.render('admin/group_edit', { "group": group, "inGroup": result, "outGroup": users })
}); });
}) })
}); });
} }
}) })

View File

@ -3,7 +3,7 @@ const Sequelize = require('sequelize');
const sequelize = new Sequelize('accessgate', 'user', 'password', { const sequelize = new Sequelize('accessgate', 'user', 'password', {
dialect: 'sqlite', dialect: 'sqlite',
host: './database.db', host: './database.db',
logging: true logging: false
}) })

View File

@ -38,20 +38,15 @@ async function delGroup(name) {
}); });
} else { } else {
return false; return false;
} }
}); });
} }
async function userGroupList(userId) { async function getGroupsWithMembers() {
const members = await Member.findAll({where: { userId: userId}}) Group.hasMany(Member);
var result = [] Member.belongsTo(Group);
for (x in members) { const count = await Group.findAll({ include: Member });
result[x] = (members[x].dataValues) return count
}
return result
} }
async function groupUserList(groupName) { async function groupUserList(groupName) {
@ -59,7 +54,6 @@ async function groupUserList(groupName) {
Member.belongsTo(User); Member.belongsTo(User);
const users = await User.findAll({ include: Member }); const users = await User.findAll({ include: Member });
var result = [] var result = []
console.log(users)
for (x in users) { for (x in users) {
try { try {
for (y in users[x].dataValues.members) { for (y in users[x].dataValues.members) {
@ -70,7 +64,6 @@ async function groupUserList(groupName) {
} catch (error) { } catch (error) {
}} }}
console.log(result)
return result return result
}; };
@ -78,5 +71,6 @@ module.exports = {
addGroup, addGroup,
delGroup, delGroup,
groupUserList, groupUserList,
userGroupList getGroupsWithMembers
}; };

View File

@ -15,7 +15,6 @@ function makeAdmin(userId) {
}); });
} }
module.exports = { module.exports = {
makeAdmin makeAdmin
}; };

View File

@ -29,7 +29,7 @@
<% groups.forEach(function (group) { %> <% groups.forEach(function (group) { %>
<tr> <tr>
<td><%= group.name %></td> <td><%= group.name %></td>
<td>undefined</td> <td><%= group.members.length %></td>
<td>undefined</td> <td>undefined</td>
<td style="text-align: right;"><a class="btn btn-sm btn-primary" href="/admin/groups/<%= group.name %>"><i class="far fa-edit"></i></a> <a class="btn btn-sm btn-danger" href="/admin/groups/delete/<%= group.name %>"><i class="far fa-trash-alt"></i></a></td> <td style="text-align: right;"><a class="btn btn-sm btn-primary" href="/admin/groups/<%= group.name %>"><i class="far fa-edit"></i></a> <a class="btn btn-sm btn-danger" href="/admin/groups/delete/<%= group.name %>"><i class="far fa-trash-alt"></i></a></td>
</tr> </tr>