From f40a0eef14055e090a87097d2b1d1c0095ee3502 Mon Sep 17 00:00:00 2001 From: kindlm Date: Tue, 1 Sep 2015 16:35:41 +0200 Subject: [PATCH 1/2] OE zu Funktion-Berechtigung speichern Wenn eine OE bei der Berechtigung einer Funktion gespeichert wird, wird diese genommen, ansonsten die von der Benutzerfunktion. --- include/benutzerberechtigung.class.php | 6 +++--- vilesci/stammdaten/benutzerberechtigung_details.php | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/benutzerberechtigung.class.php b/include/benutzerberechtigung.class.php index 206d7a222..e90b49e8d 100644 --- a/include/benutzerberechtigung.class.php +++ b/include/benutzerberechtigung.class.php @@ -169,11 +169,11 @@ class benutzerberechtigung extends basis_db return false; } - if($this->funktion_kurzbz!='' && $this->oe_kurzbz!='') + /*if($this->funktion_kurzbz!='' && $this->oe_kurzbz!='') Auskommentiert von kindlm am 28.08.2015. Wenn beim Recht eine OE angegeben wird, wird diese genommen, ansonsten die von der Funktion. { $this->errormsg = 'Wenn eine Funktion_kurzbz angegeben wird, darf keine Organisationseinheit eingetragen sein'; return false; - } + }*/ if($this->art=='') { @@ -389,7 +389,7 @@ class benutzerberechtigung extends basis_db SELECT benutzerberechtigung_id, tbl_benutzerfunktion.uid, tbl_benutzerrolle.funktion_kurzbz, tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1, - tbl_benutzerfunktion.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start, + COALESCE (tbl_benutzerrolle.oe_kurzbz,tbl_benutzerfunktion.oe_kurzbz) AS oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start, tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon, tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung FROM diff --git a/vilesci/stammdaten/benutzerberechtigung_details.php b/vilesci/stammdaten/benutzerberechtigung_details.php index 6ea2aa519..b657e27f5 100644 --- a/vilesci/stammdaten/benutzerberechtigung_details.php +++ b/vilesci/stammdaten/benutzerberechtigung_details.php @@ -354,9 +354,9 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $htmlstr .= " \n"; //Organisationseinheit - $htmlstr .= " kostenstelle_id!=''?'disabled':'')." onchange='".($funktion_kurzbz!=''?"alert(\"Achtung! Durch diese Auswahl wird die Organisationseinheit der Funktion überschrieben!\");":"")."' onchange='markier(\"td_".$b->benutzerberechtigung_id."\")' style='width: 200px;'>\n"; $htmlstr .= " \n"; - + foreach ($oe->result as $oekey) { if ($b->oe_kurzbz == $oekey->oe_kurzbz && $b->oe_kurzbz != null) @@ -500,7 +500,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $htmlstr .= " \n"; //Organisationseinheit - $htmlstr .= " \n"; $htmlstr .= " \n"; foreach ($oe->result as $oekey) From 3a7ccfa9a4483b641f61123a3a351a8e093b577f Mon Sep 17 00:00:00 2001 From: kindlm Date: Tue, 1 Sep 2015 16:36:42 +0200 Subject: [PATCH 2/2] Berechtigungsabfrage auf OE-Ebene statt Studiengang --- cis/private/lehre/ects/index.php | 46 +++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/cis/private/lehre/ects/index.php b/cis/private/lehre/ects/index.php index ae47b5aab..12922edbf 100644 --- a/cis/private/lehre/ects/index.php +++ b/cis/private/lehre/ects/index.php @@ -106,7 +106,12 @@ textarea //Variablenuebernahme if(isset($_POST['lv'])) //LehrveranstaltungsID + { $lv = $_POST['lv']; + $lv_obj = new lehrveranstaltung(); + $lv_obj->load($lv); + $oe_kurzbz = $lv_obj->oe_kurzbz; + } if(isset($_GET['lvid'])) { @@ -114,15 +119,29 @@ textarea $lv_obj->load($lv); if(!isset($stg)) + { $stg = $lv_obj->studiengang_kz; + $oe_kurzbz = $lv_obj->oe_kurzbz; + } if(!isset($sem)) $sem = $lv_obj->semester; } else + { $stg = ''; + } if(isset($_POST['stg'])) + { $stg = $_POST['stg']; + if(!isset($oe_kurzbz)) + { + $oe = new studiengang(); + $oe->load($stg); + $oe_kurzbz = $oe->oe_kurzbz; + } + } + if(!isset($sem) && isset($_POST['sem'])) $sem = $_POST['sem']; @@ -146,14 +165,15 @@ textarea // Bearbeiten nur moeglich, wenn Lektor der LV und bearbeiten fuer Lektoren aktiviert ist // Oder Berechtigung zum Bearbeiten eingetragen ist + $berechtigt = true; if(!( (!defined('CIS_LEHRVERANSTALTUNG_LVINFO_LEKTOR_EDIT') && $lektor_der_lv) || (defined('CIS_LEHRVERANSTALTUNG_LVINFO_LEKTOR_EDIT') && CIS_LEHRVERANSTALTUNG_LVINFO_LEKTOR_EDIT==true && $lektor_der_lv) - || $rechte->isBerechtigt('lehre/lvinfo',$stg) + || $rechte->isBerechtigt('lehre/lvinfo',$oe_kurzbz) ) ) { - die($p->t('global/keineBerechtigungFuerDieseSeite')); + $berechtigt = false; } //Variablen fuer das Formular @@ -165,7 +185,7 @@ textarea $anmerkungen_de = (isset($_POST['anmerkungen_de'])?$_POST['anmerkungen_de']:''); $kurzbeschreibung_de = (isset($_POST['kurzbeschreibung_de'])?$_POST['kurzbeschreibung_de']:''); $anwesenheit_de = (isset($_POST['anwesenheit_de'])?$_POST['anwesenheit_de']:''); - $freig_de = (isset($_POST['freig_de'])?($_POST['freig_de']=='on' && $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg)?true:false):''); + $freig_de = (isset($_POST['freig_de'])?($_POST['freig_de']=='on' && $rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz)?true:false):''); $methodik_de = (isset($_POST['methodik_de'])?$_POST['methodik_de']:''); //$titel_de = (isset($_POST['titel_de'])?$_POST['titel_de']:''); @@ -198,7 +218,7 @@ textarea $anmerkungen_en = (isset($_POST['anmerkungen_en'])?$_POST['anmerkungen_en']:''); $kurzbeschreibung_en = (isset($_POST['kurzbeschreibung_en'])?$_POST['kurzbeschreibung_en']:''); $anwesenheit_en = (isset($_POST['anwesenheit_en'])?$_POST['anwesenheit_en']:''); - $freig_en = (isset($_POST['freig_en'])?($_POST['freig_en']=='on' && $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg)?true:false):''); + $freig_en = (isset($_POST['freig_en'])?($_POST['freig_en']=='on' && $rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz)?true:false):''); $methodik_en = (isset($_POST['methodik_en'])?$_POST['methodik_en']:''); //$titel_en = (isset($_POST['titel_en'])?$_POST['titel_en']:''); @@ -248,6 +268,8 @@ textarea if($status=='save') // Beim druecken auf "Speichern" { + if ($berechtigt==false) + die($p->t('global/keineBerechtigungFuerDieseSeite')); //Speichert die aenderungen in der Datenbank (de und en) $lv_obj_sav= new lvinfo(); $save_error=false; @@ -262,7 +284,7 @@ textarea $lv_obj_sav->kurzbeschreibung=mb_eregi_replace("\r\n", "
", $kurzbeschreibung_de); $lv_obj_sav->anwesenheit=mb_eregi_replace("\r\n", "
", $anwesenheit_de); - $lv_obj_sav->genehmigt = ($freig_de==true && $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg)?true:false); + $lv_obj_sav->genehmigt = ($freig_de==true && $rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz)?true:false); $lv_obj_sav->updateamum=date('Y-m-d H:i:s'); $lv_obj_sav->updatevon=$user; $lv_obj_sav->aktiv=true; @@ -294,7 +316,7 @@ textarea $lv_obj_sav->anmerkungen=mb_eregi_replace("\r\n", "
", $anmerkungen_en); $lv_obj_sav->kurzbeschreibung=mb_eregi_replace("\r\n", "
", $kurzbeschreibung_en); $lv_obj_sav->anwesenheit=mb_eregi_replace("\r\n", "
", $anwesenheit_en); - $lv_obj_sav->genehmigt = ($freig_en==true && $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg)?true:false); + $lv_obj_sav->genehmigt = ($freig_en==true && $rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz)?true:false); $lv_obj_sav->aktiv=true; $lv_obj_sav->updateamum=date('Y-m-d H:i:s'); $lv_obj_sav->updatevon=$user; @@ -327,6 +349,9 @@ textarea } if($status=='freigeben') // Beim druecken auf "Zur Freigabe abschicken" { + if ($berechtigt==false) + die($p->t('global/keineBerechtigungFuerDieseSeite')); + //Speichert die aenderungen in der Datenbank (de und en) $lv_obj_sav= new lvinfo(); $save_error=false; @@ -341,7 +366,7 @@ textarea $lv_obj_sav->kurzbeschreibung=mb_eregi_replace("\r\n", "
", $kurzbeschreibung_de); $lv_obj_sav->anwesenheit=mb_eregi_replace("\r\n", "
", $anwesenheit_de); - $lv_obj_sav->genehmigt = ($freig_de==true && $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg)?true:false); + $lv_obj_sav->genehmigt = ($freig_de==true && $rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz)?true:false); $lv_obj_sav->updateamum=date('Y-m-d H:i:s'); $lv_obj_sav->updatevon=$user; $lv_obj_sav->aktiv=true; @@ -373,7 +398,7 @@ textarea $lv_obj_sav->anmerkungen=mb_eregi_replace("\r\n", "
", $anmerkungen_en); $lv_obj_sav->kurzbeschreibung=mb_eregi_replace("\r\n", "
", $kurzbeschreibung_en); $lv_obj_sav->anwesenheit=mb_eregi_replace("\r\n", "
", $anwesenheit_en); - $lv_obj_sav->genehmigt = ($freig_en==true && $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg)?true:false); + $lv_obj_sav->genehmigt = ($freig_en==true && $rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz)?true:false); $lv_obj_sav->aktiv=true; $lv_obj_sav->updateamum=date('Y-m-d H:i:s'); $lv_obj_sav->updatevon=$user; @@ -604,6 +629,9 @@ textarea //Kopfzeile hinausschreiben und $output ausgeben echo "

 ".$p->t('courseInformation/lvInfoSemester',array($stg_obj->kuerzel, $sem))."

"; echo $output; + + if ($berechtigt==false) + die($p->t('global/keineBerechtigungFuerDieseSeite')); if(isset($lv) && isset($stg) && isset($sem)) // Wenn oben alles Ausgewaehlt wurde { @@ -858,7 +886,7 @@ textarea '.$p->t('lvinfo/anmerkungenEN').' '; - if ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg)) + if ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz)) echo '
'.$p->t('courseInformation/deutschFreigeben').'

'.$p->t('courseInformation/englischFreigeben').'