| | |
| | | getKursRoles, |
| | | |
| | | setStatus, |
| | | |
| | | getCourseAdmins, |
| | | getCoursesWithNoAdmins, |
| | | } |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /////// ADMINS //////////////////////////////////////////////////////////////// |
| | | |
| | | async function getCourseAdmins() { |
| | | const pool = await poolP |
| | | const q = `SELECT om.obj_id as kurs_obj_id, |
| | | t.ref_id as kurs_ref_id, |
| | | om.usr_id, |
| | | ud.login, |
| | | om.admin, |
| | | ud.firstname, |
| | | ud.lastname, |
| | | od2.title |
| | | FROM ${database}.obj_members om |
| | | INNER JOIN ${database}.usr_data ud ON ud.usr_id = om.usr_id |
| | | INNER JOIN ${database}.object_data od2 ON od2.obj_id = om.obj_id |
| | | INNER JOIN ${database}.object_reference t ON t.obj_id = om.obj_id |
| | | WHERE om.admin = 1 |
| | | ` |
| | | const [results] = await pool.query(q) |
| | | return results |
| | | } |
| | | |
| | | /** |
| | | * Liefert die Kurse ohne Admins |
| | | * Admins hier definiert als Einträge in obj_members wo admin==1 |
| | | * Darüber hinaus gibt es offenbar noch einen anderen Mechanismus über die Rolle. |
| | | * Denn ein Kurs ohne Admin (z.B. lokal Fliesenratgeber ref_id=88) hat in ILIAS |
| | | * trotzdem einen Admin im Screen "Members". |
| | | * Dort wird wohl über die Rolle zugeordnet. |
| | | * |
| | | * Die Frage ist wo der Fehler GS-2333 auftritt. |
| | | * Bei obj_members oder bei fehlender Rolle. |
| | | * @return {Promise<*>} |
| | | */ |
| | | async function getCoursesWithNoAdmins() { |
| | | const pool = await poolP |
| | | const q = ` |
| | | SELECT asdf.obj_id, t.ref_id, asdf.numTn, asdf.title |
| | | FROM (SELECT om.obj_id, COUNT(*) as numTn, od.title, MAX(om.admin) as maxAdmin |
| | | FROM ${database}.obj_members om |
| | | INNER JOIN ${database}.object_data od ON od.obj_id = om.obj_id |
| | | GROUP by om.obj_id |
| | | ORDER BY numTn DESC) asdf |
| | | INNER JOIN ${database}.object_reference t ON t.obj_id = asdf.obj_id |
| | | WHERE asdf.maxAdmin = 0 |
| | | ` |
| | | const [results] = await pool.query(q) |
| | | return results |
| | | } |