From 0410c954474f9e8a586654f7d484f7779da0af89 Mon Sep 17 00:00:00 2001 From: Paolo Date: Mon, 1 Jun 2026 12:13:44 +0200 Subject: [PATCH 1/2] cis/private/lehre/notenliste.xls.php now checks if the lector belongs to the teaching unit --- cis/private/lehre/notenliste.xls.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/cis/private/lehre/notenliste.xls.php b/cis/private/lehre/notenliste.xls.php index 25f353c12..170d35bba 100644 --- a/cis/private/lehre/notenliste.xls.php +++ b/cis/private/lehre/notenliste.xls.php @@ -44,7 +44,7 @@ $uid = get_uid(); $sprache = getSprache(); $p = new phrasen($sprache); -if(!check_lektor($uid)) +if (!check_lektor($uid)) die('Sie haben keine Berechtigung fuer diese Seite'); if (!$db = new basis_db()) @@ -90,6 +90,20 @@ if(isset($_GET['lehreinheit_id'])) else $lehreinheit_id = ''; +// Checks if the logged lector belongs to this teaching unit +$qry = "SELECT DISTINCT 1 + FROM campus.vw_lehreinheit vwl + WHERE lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)." + AND studiensemester_kurzbz = ".$db->db_add_param($stsem)." + AND vwl.mitarbeiter_uid = ".$db->db_add_param($uid); +if ($lehreinheit_id != '') + $qry .= " AND lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER); + +if (!$result = $db->db_query($qry)) + die($p->t('tools/fehlerBeimAuslesenDerNoten')); +if (!$db->db_fetch_object($result)) + die('Sie haben keine Berechtigung fuer diese Seite'); + /* * Create Excel File */ From 4162305ac6ea83c56fa3397db7cd410f5b49be16 Mon Sep 17 00:00:00 2001 From: Paolo Date: Mon, 29 Jun 2026 13:28:57 +0200 Subject: [PATCH 2/2] Improved the permissions check in the cis/private/lehre/notenliste.xls.php --- cis/private/lehre/notenliste.xls.php | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/cis/private/lehre/notenliste.xls.php b/cis/private/lehre/notenliste.xls.php index 170d35bba..52b18b056 100644 --- a/cis/private/lehre/notenliste.xls.php +++ b/cis/private/lehre/notenliste.xls.php @@ -36,6 +36,7 @@ require_once('../../../include/notenschluessel.class.php'); require_once('../../../include/Excel/excel.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/pruefung.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); $uid = get_uid(); @@ -90,18 +91,19 @@ if(isset($_GET['lehreinheit_id'])) else $lehreinheit_id = ''; -// Checks if the logged lector belongs to this teaching unit -$qry = "SELECT DISTINCT 1 - FROM campus.vw_lehreinheit vwl - WHERE lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)." - AND studiensemester_kurzbz = ".$db->db_add_param($stsem)." - AND vwl.mitarbeiter_uid = ".$db->db_add_param($uid); -if ($lehreinheit_id != '') - $qry .= " AND lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER); +// Permissions +$berechtigung = new benutzerberechtigung(); +$berechtigung->getBerechtigungen($uid); -if (!$result = $db->db_query($qry)) - die($p->t('tools/fehlerBeimAuslesenDerNoten')); -if (!$db->db_fetch_object($result)) +// LV load +$lvobj = new lehrveranstaltung($lvid); + +// Check permissions +if (!$berechtigung->isBerechtigt('admin') + && !$berechtigung->isBerechtigt('assistenz') + && !$berechtigung->isBerechtigt('lehre', $lvobj->oe_kurzbz, 's') + && !check_lektor_lehrveranstaltung($uid, $lvid, $stsem) +) die('Sie haben keine Berechtigung fuer diese Seite'); /* @@ -157,8 +159,6 @@ if (!$db->db_fetch_object($result)) // let's merge $format_title->setAlign('merge'); - $lvobj = new lehrveranstaltung($lvid); - $worksheet->write(0,0,$p->t('anwesenheitsliste/notenliste')." ".($sprache=='English'?$lvobj->bezeichnung_english:$lvobj->bezeichnung),$format_bold); $stg_obj = new studiengang($stg);