diff --git a/cis/private/lehre/lesson.php b/cis/private/lehre/lesson.php index b3b6f2e1d..4b131a124 100644 --- a/cis/private/lehre/lesson.php +++ b/cis/private/lehre/lesson.php @@ -32,6 +32,7 @@ require_once('../../../include/phrasen.class.php'); require_once('../../../include/lehre_tools.class.php'); require_once('../../../include/lvangebot.class.php'); require_once('../../../include/benutzergruppe.class.php'); +require_once('../../../include/lehreinheit.class.php'); $sprache = getSprache(); $p = new phrasen($sprache); @@ -44,6 +45,7 @@ if (!$user=get_uid()) // Init $user_is_allowed_to_upload=false; +$lektor_der_lv=false; // Plausib if(check_lektor($user)) @@ -101,6 +103,43 @@ if (isset($_GET["handbuch"])){ studiengang_kz==0 || (defined('CIS_LEHRVERANSTALTUNG_AKTUELLES_STUDIENSEMESTER_ANZEIGEN') && CIS_LEHRVERANSTALTUNG_AKTUELLES_STUDIENSEMESTER_ANZEIGEN)) + $angezeigtes_stsem = $stsem->getNearest(); + else + { + // wenn im nahegelegensten/aktuellen Studiensemester eine Lehreinheit angelegt ist dann diese anzeigen + $lehreinheit = new lehreinheit(); + if($lehreinheit->load_lehreinheiten($lvid, $stsem->getNearest()) && count($lehreinheit->lehreinheiten)>0) + { + $lehreinheit_found=false; + foreach($lehreinheit->lehreinheiten as $row_lehreinheit) + { + if($row_lehreinheit->lehre) + { + $angezeigtes_stsem = $stsem->getNearest(); + $lehreinheit_found=true; + break; + } + } + if($lehreinheit_found==false) + { + $angezeigtes_stsem = $stsem->getNearest($semester); + } + } + else + { + // fuer ungerade semester das naeheste WS fuer gerade semester das naeheste SS anzeigen + $angezeigtes_stsem = $stsem->getNearest($semester); + } + } +} // ADDONS laden $addon_obj = new addon(); @@ -120,7 +159,7 @@ $( document ).ready(function() { for(i in addon) { - addon[i].init("cis/private/lehre/lesson.php", {uid:\''.$user.'\',lvid:\''.$lvid.'\',studiensemester_kurzbz:\''.$studiensemester_kurzbz.'\'}); + addon[i].init("cis/private/lehre/lesson.php", {uid:\''.$user.'\',lvid:\''.$lvid.'\',studiensemester_kurzbz:\''.$angezeigtes_stsem.'\'}); } } }); @@ -170,17 +209,7 @@ $( document ).ready(function()  

- studiengang_kz==0 || (defined('CIS_LEHRVERANSTALTUNG_AKTUELLES_STUDIENSEMESTER_ANZEIGEN') && CIS_LEHRVERANSTALTUNG_AKTUELLES_STUDIENSEMESTER_ANZEIGEN)) - $angezeigtes_stsem = $stsem->getNearest(); - else - $angezeigtes_stsem = $stsem->getNearest($semester); - } + uid) + { + $lektor_der_lv=true; $user_is_allowed_to_upload=true; + } if($row_lector->lvleiter=='t') $style='style="font-weight: bold"'; @@ -298,27 +330,27 @@ $( document ).ready(function() } } - //Berechtigungen auf Fachbereichsebene - $qry = "SELECT - distinct fachbereich_kurzbz, tbl_lehrveranstaltung.studiengang_kz, tbl_fachbereich.oe_kurzbz + //Berechtigungen auf Fachbereichsebene + $qry = "SELECT + distinct lehrfach.oe_kurzbz FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) - JOIN public.tbl_fachbereich ON(tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz) WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER); - if(isset($angezeigtes_stsem) && $angezeigtes_stsem!='') - $qry .= " AND studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem); - - if($result = $db->db_query($qry)) - { - while($row = $db->db_fetch_object($result)) - { - if($rechte->isBerechtigt('lehre',$row->oe_kurzbz) || $rechte->isBerechtigt('assistenz',$stg_obj->oe_kurzbz)) - $user_is_allowed_to_upload=true; - } - } + if(isset($angezeigtes_stsem) && $angezeigtes_stsem!='') + $qry .= " AND studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem); + $lehrfach_oe_kurzbz_arr = array(); + if($result = $db->db_query($qry)) + { + while($row = $db->db_fetch_object($result)) + { + $lehrfach_oe_kurzbz_arr[]=$row->oe_kurzbz; + if($rechte->isBerechtigt('lehre',$row->oe_kurzbz) || $rechte->isBerechtigt('assistenz',$stg_obj->oe_kurzbz)) + $user_is_allowed_to_upload=true; + } + } ?> diff --git a/cis/private/lehre/semupload.php b/cis/private/lehre/semupload.php index 1000a8294..50626b4a5 100644 --- a/cis/private/lehre/semupload.php +++ b/cis/private/lehre/semupload.php @@ -33,7 +33,7 @@ $user = get_uid(); $sprache=getSprache(); $p = new phrasen($sprache); - +$is_lector=false; if(check_lektor($user)) $is_lector=true; diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index e048b4fb7..a457962f2 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -133,7 +133,7 @@ define('VILESCI_PERSON_NEU_STUDIENSEMESTER_WINTERONLY',false); define('CIS_STUDIENPLAN_SEMESTER_ANZEIGEN', false); //Legt fest ob ein User zu einer LV angemeldet sein muss um Detailinformationen abrufen zu können. (true|false) -define('CIS_LEHRVERANSTALTUNG_WENNANGEMELDET_DETAILS_ANZEIGEN', true); +define('CIS_LEHRVERANSTALTUNG_WENNANGEMELDET_DETAILS_ANZEIGEN', false); // Prestudent_ID des Dummy_Studenten (zB fuer Testtool) define('PRESTUDENT_ID_DUMMY_STUDENT', 13478); diff --git a/include/tw/cis_menu_lv.inc.php b/include/tw/cis_menu_lv.inc.php index 87c896d40..5db91a048 100644 --- a/include/tw/cis_menu_lv.inc.php +++ b/include/tw/cis_menu_lv.inc.php @@ -69,7 +69,13 @@ function checkZeilenUmbruch() } } - if($user_is_allowed_to_upload || $rechte->isBerechtigt('admin',$studiengang_kz) || $rechte->isBerechtigt('lehre',$studiengang_kz)) + // Bearbeiten Button anzeigen wenn Lektor der LV und bearbeiten fuer Lektoren aktiviert ist + // Oder Berechtigung zum Bearbeiten eingetragen ist + 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',$studiengang_kz) + || $rechte->isBerechtigtMultipleOe('lehre/lvinfo', $lehrfach_oe_kurzbz_arr) + ) { if($need_br) echo "
"; @@ -93,21 +99,12 @@ function checkZeilenUmbruch() if(defined('CIS_LEHRVERANSTALTUNG_WENNANGEMELDET_DETAILS_ANZEIGEN') && CIS_LEHRVERANSTALTUNG_WENNANGEMELDET_DETAILS_ANZEIGEN && !$is_lector) { $angemeldet = false; - $studiensemester = new studiensemester($angezeigtes_stsem); - $lvangebot = new lvangebot(); - $lvangebot->getAllFromLvId($lvid, $studiensemester->studiensemester_kurzbz); + $lehrveranstaltung_obj = new lehrveranstaltung(); + $result = $lehrveranstaltung_obj->getLehreinheitenOfLv($lvid, $user, $angezeigtes_stsem); - if(!empty($lvangebot->result)) - { - $bngruppe = new benutzergruppe(); - $bngruppe->load($user, $lvangebot->result[0]->gruppe_kurzbz, $studiensemester->studiensemester_kurzbz); - - if(!is_null($bngruppe->gruppe_kurzbz)) - { + if(count($result)>0) $angemeldet = true; - } - } } if((!defined('CIS_LEHRVERANSTALTUNG_SEMESTERPLAN_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_SEMESTERPLAN_ANZEIGEN) && $angemeldet) @@ -171,7 +168,9 @@ function checkZeilenUmbruch() echo ''.$p->t('lehre/semesterplan').''; } - if($user_is_allowed_to_upload || $rechte->isBerechtigt('admin',$studiengang_kz) || $rechte->isBerechtigt('lehre',$studiengang_kz)) + if((!defined('CIS_LEHRVERANSTALTUNG_SEMESTERPLAN_LEKTOR_EDIT') && $user_is_allowed_to_upload) + || (defined('CIS_LEHRVERANSTALTUNG_SEMESTERPLAN_LEKTOR_EDIT') && CIS_LEHRVERANSTALTUNG_SEMESTERPLAN_LEKTOR_EDIT==true && $user_is_allowed_to_upload) + || $rechte->isBerechtigt('admin',$studiengang_kz) || $rechte->isBerechtigt('lehre',$studiengang_kz)) { echo '
'; echo $p->t('lehre/semesterplanUpload').""; @@ -523,7 +522,8 @@ function checkZeilenUmbruch() echo '
'.$p->t('lehre/moodle').'
'; } - if($is_lector) + + if($is_lector && (!defined('CIS_LEHRVERANSTALTUNG_MOODLE_LEKTOR_EDIT') || (defined('CIS_LEHRVERANSTALTUNG_MOODLE_LEKTOR_EDIT') && CIS_LEHRVERANSTALTUNG_MOODLE_LEKTOR_EDIT))) echo ' '.$p->t('lehre/moodleWartung').'
'.$p->t('lehre/moodleHandbuch').''; diff --git a/system/checksystem.php b/system/checksystem.php index ef70e82e7..f90c147d1 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -3126,6 +3126,26 @@ if(!$result = @$db->db_query("SELECT exklusiv FROM campus.tbl_infoscreen_content echo '
campus.tbl_infoscreen_content: neue Spalte exklusiv hinzugefuegt'; } +// Eigene Berechtigung fuer LV-Info eingabe +if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz='lehre/lvinfo' LIMIT 1")) +{ + if($db->db_num_rows($result)==0) + { + $qry = " + INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/lvinfo','LVinfo'); + + INSERT INTO system.tbl_rolleberechtigung(berechtigung_kurzbz, rolle_kurzbz, art) VALUES('lehre/lvinfo','lehre','suid'); + INSERT INTO system.tbl_rolleberechtigung(berechtigung_kurzbz, rolle_kurzbz, art) VALUES('lehre/lvinfo','admin','suid'); + INSERT INTO system.tbl_rolleberechtigung(berechtigung_kurzbz, rolle_kurzbz, art) VALUES('lehre/lvinfo','assistenz','suid'); + "; + + if(!$db->db_query($qry)) + echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; + else + echo ' system.tbl_berechtigung: Eigene Berechtigungen fuer LV-Infos hinzugefuegt lehre/lvinfo!
'; + } +} + echo '


'; $tabellen=array( @@ -3486,6 +3506,7 @@ $berechtigungen = array( array('lehre/lehrveranstaltung','Lehrveranstaltungsverwaltung'), array('lehre/lehrveranstaltung:begrenzt','nur die Felder Lehre, Sort, Zeugnis, BA/DA, FBK und LVInfo dürfen geändert werden (eventuelle Aufteilung in einzelne Berechtigungen??)'), array('lehre/lvplan','Tempus'), + array('lehre/lvinfo','LVInfo editieren'), array('lehre/pruefungsanmeldungAdmin','Erlaubt die Verwaltung der Prüfungsanmeldungen.'), array('lehre/pruefungsbeurteilung','Erlaubt dem Benutzer Beurteilungen zu Prüfungen einzutragen.'), array('lehre/pruefungsbeurteilungAdmin','Erlaubt dem Benutzer für alle Prüfungen Beurteilungen einzutragen.'),