From 99be6af8ce8a01257c8af28d4c22e9090f9bf1f7 Mon Sep 17 00:00:00 2001
From: alex <alex@alexloehr.net>
Date: Mon, 16 Jun 2025 14:08:57 +0000
Subject: [PATCH] GS-1843
---
lib/libIlias.js | 20 ++++++++++++++++++++
app.js | 10 +++++++---
vue/src/lib/api.js | 2 +-
3 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/app.js b/app.js
index 45cbb9d..e31d23f 100644
--- a/app.js
+++ b/app.js
@@ -52,12 +52,12 @@
fastify
/////// USER ////////////////////////////////////////////////////////////////
- .get('/api/users', async function (req, res) {
+ .get('/api/user', async function (req, res) {
const {offset, limit, search} = req.query
const users = await db.getUsers(offset, limit, search)
return res.send(users)
})
- .get("/api/users/count", async function (req, res) {
+ .get("/api/user/count", async function (req, res) {
const count = await db.getUserCount()
return res.send(count)
})
@@ -99,6 +99,11 @@
}
})
+
+ .delete("/api/user", async function (req, res) { // DELETE ALL users
+ const res2 = await libIlias.deleteAllUsers()
+ return res.send(res2)
+ })
.delete("/api/user/:usr_id", async function (req, res) {
const {usr_id} = req.params
if (!usr_id || isNaN(Number(usr_id))) {
@@ -109,7 +114,6 @@
console.log(res2)
return res.send(res2)
}
-
})
/////// ref_id / obj_id ////////////////////////////////////////////////////////////////
diff --git a/lib/libIlias.js b/lib/libIlias.js
index d20ec5e..6c3e472 100644
--- a/lib/libIlias.js
+++ b/lib/libIlias.js
@@ -2,6 +2,7 @@
module.exports = {
deleteUser,
+ deleteAllUsers,
deleteTeilnahme,
}
@@ -9,6 +10,7 @@
const settings = require("../settings")
const {getObjIdFromRefId} = require("./db")
+const db = require("./db")
const {url} = settings.ilias
/////////////////////////////////////////////////////////////////////////
@@ -26,6 +28,24 @@
return data //
}
+async function deleteAllUsers () {
+ const users = await db.getUsers()
+ const res = {
+ command: "deleteAllUsers",
+ start: new Date(),
+ end: new Date(),
+ duration: null,
+ count: 0,
+ }
+ for (const user of users) {
+ await deleteUser(user.usr_id)
+ res.count += 1
+ }
+ res.end = new Date()
+ res.duration = res.end - res.start
+ return res
+}
+
async function deleteTeilnahme (ref_id, usr_id, dry = false) {
const {obj_id} = await getObjIdFromRefId(ref_id)
const sp = new URLSearchParams({
diff --git a/vue/src/lib/api.js b/vue/src/lib/api.js
index 7ba18d1..3ef461b 100644
--- a/vue/src/lib/api.js
+++ b/vue/src/lib/api.js
@@ -43,7 +43,7 @@
/////// USER ////////////////////////////////////////////////////////////////
export async function getUsers (offset, limit, search) {
- const res = await fetch(`${apiBase}/users?offset=${offset}&limit=${limit}&search=${search}&token=${apiToken.value}`)
+ const res = await fetch(`${apiBase}/user?offset=${offset}&limit=${limit}&search=${search}&token=${apiToken.value}`)
return res.json()
}
--
Gitblit v1.8.0