From e02fc7b5dd8008ef2a0f2746f324a64b6d9cb64a Mon Sep 17 00:00:00 2001
From: alex <alex@alexloehr.net>
Date: Fri, 11 Jul 2025 03:32:13 +0000
Subject: [PATCH] adding tn by rolle
---
lib/db.js | 32 ++++++++++++++++++++++++++++++--
app.js | 6 ++++++
2 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/app.js b/app.js
index c4cca36..e565153 100644
--- a/app.js
+++ b/app.js
@@ -196,6 +196,12 @@
return res.code(404).send({status: "error", msg: "not found"})
}
})
+ .get("/api/kurs/:refId/teilnehmerByRole", async function (req, res) {
+ const {refId} = req.params
+ const {obj_id} = await db.getObjIdFromRefId(refId)
+ let data = await db.getKursTeilnehmerByRole(obj_id)
+ return res.send(data)
+ })
.get("/api/kurs/:refId/teilnehmer/:userId", async function (req, res) {
const {refId, userId} = req.params
let data = await db.getSingleKursTeilnehmer(refId, userId)
diff --git a/lib/db.js b/lib/db.js
index bee8d63..3355fa9 100644
--- a/lib/db.js
+++ b/lib/db.js
@@ -44,7 +44,8 @@
getUdf,
- getMemberRoleForCourse,
+ getKursTeilnehmerRolle,
+ getKursTeilnehmerByRole,
setStatus,
}
@@ -172,6 +173,10 @@
/////// obj_id / ref_id ////////////////////////////////////////////////////////////////
+/**
+ * @param refId
+ * @returns {Promise<{ref_id,obj_id}|undefined>}
+ */
async function getObjIdFromRefId (refId) {
const pool = await poolP
const [results] = await pool.query(
@@ -402,7 +407,7 @@
/////// ROLLEN ////////////////////////////////////////////////////////////////
-async function getMemberRoleForCourse (obj_id) {
+async function getKursTeilnehmerRolle (obj_id) {
const pool = await poolP
const q = `SELECT obj_id, title, description
from object_data od
@@ -420,6 +425,29 @@
}
}
+async function getKursTeilnehmerByRole (obj_id) {
+ const pool = await poolP
+ const q = `
+ SELECT obj_id as role_id, ru.usr_id, ud.firstname, ud.lastname
+ FROM ${database}.object_data od
+ INNER JOIN ${database}.rbac_ua ru ON ru.rol_id = od.obj_id
+ INNER JOIN ${database}.usr_data ud ON ud.usr_id = ru.usr_id
+ WHERE type = "role" #AND title LIKE 'il_crs_member_157'
+ AND od.description LIKE 'Member%${obj_id}'
+ `
+ const [results] = await pool.query(q)
+ // darf nur einen Treffer ergeben
+ if (results.length) {
+ const {obj_id, title, description} = results[0]
+ return obj_id
+ }
+ else {
+ return null
+ }
+}
+
+
+
/////// STATUS ////////////////////////////////////////////////////////////////
/**
--
Gitblit v1.8.0