From 0fc7be8d637b1b7839ed458dc50ee9e9bdfca4de Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Thu, 15 Oct 2015 12:43:45 +0200 Subject: [PATCH] =?UTF-8?q?Bugfix=20und=20Rechte=20f=C3=BCr=20Bearbeitung?= =?UTF-8?q?=20inaktiver=20Studienordnungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soap/studienplan.json.php | 2 +- system/checksystem.php | 28 +++++++++++++++++---- vilesci/lehre/lehrveranstaltung.php | 2 +- vilesci/lehre/lehrveranstaltung_details.php | 4 +-- vilesci/lehre/saveStudienordnung.php | 16 +++++++++++- vilesci/lehre/studienordnung.inc.php | 2 +- vilesci/lehre/studienordnung.js | 2 +- vilesci/lehre/studienordnung.php | 2 ++ 8 files changed, 46 insertions(+), 12 deletions(-) diff --git a/soap/studienplan.json.php b/soap/studienplan.json.php index d42e43183..5dc7caeb2 100644 --- a/soap/studienplan.json.php +++ b/soap/studienplan.json.php @@ -14,7 +14,7 @@ $uid = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($uid); -if(!$rechte->isBerechtigt('lehre/studienordnung')) +if((!$rechte->isBerechtigt('lehre/studienordnung')) && (!$rechte->isBerechtigt('lehre/studienordnungInaktiv'))) die('Sie haben keine Berechtigung für diese Seite'); $method = isset($_REQUEST['method'])?$_REQUEST['method']:''; diff --git a/system/checksystem.php b/system/checksystem.php index fb127b768..308bf950f 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -3489,21 +3489,21 @@ if(!@$db->db_query("SELECT inkludierte_lehre FROM bis.tbl_bisverwendung LIMIT 1" } -// Eigene Berechtigung fuer LV-Info Freigabe -if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz='lehre/studienordnungInaktiv' LIMIT 1")) +// Eigene Berechtigung fuer Bearbeitung inaktiver Studienordnungen +if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz='lehre/lehrveranstaltungAnlegen' LIMIT 1")) { if($db->db_num_rows($result)==0) { $qry = " - INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/studienordnungInaktiv','Recht zur Bearbeitung inaktiver Studienordnungen'); + INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/lehrveranstaltungAnlegen','Recht zur Anlage von Lehrveranstaltungen'); - INSERT INTO system.tbl_rolleberechtigung(berechtigung_kurzbz, rolle_kurzbz, art) VALUES('lehre/studienordnungInaktiv','assistenz','suid'); + INSERT INTO system.tbl_rolleberechtigung(berechtigung_kurzbz, rolle_kurzbz, art) VALUES('lehre/lehrveranstaltungAnlegen','assistenz','suid'); "; if(!$db->db_query($qry)) echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; else - echo ' system.tbl_berechtigung: Eigene Berechtigung lehre/studienordnungInaktiv zur Bearbeitung von inaktiven Studienordnungen hinzugefuegt!
'; + echo ' system.tbl_berechtigung: Eigene Berechtigung lehre/lehrveranstalgungAnlegen Anlage von Lehrveranstaltungen hinzugefuegt!
'; } } @@ -3529,6 +3529,24 @@ if(!@$db->db_query("SELECT bezeichnung FROM bis.tbl_zgv LIMIT 1")) echo ' Mehrsprachige Bezeichnung für ZGV, Master ZGV und Doktor ZGV hinzugefügt
'; } +// Eigene Berechtigung fuer Anlage neuer Lehrveranstaltung +if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz='lehre/studienordnungInaktiv' LIMIT 1")) +{ + if($db->db_num_rows($result)==0) + { + $qry = " + INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/studienordnungInaktiv','Recht zur Bearbeitung inaktiver Studienordnungen'); + + INSERT INTO system.tbl_rolleberechtigung(berechtigung_kurzbz, rolle_kurzbz, art) VALUES('lehre/studienordnungInaktiv','assistenz','suid'); + "; + + if(!$db->db_query($qry)) + echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; + else + echo ' system.tbl_berechtigung: Eigene Berechtigung lehre/studienordnungInaktiv zur Bearbeitung von inaktiven Studienordnungen hinzugefuegt!
'; + } +} + echo '


'; diff --git a/vilesci/lehre/lehrveranstaltung.php b/vilesci/lehre/lehrveranstaltung.php index 282c9be6c..77b0e785b 100644 --- a/vilesci/lehre/lehrveranstaltung.php +++ b/vilesci/lehre/lehrveranstaltung.php @@ -853,7 +853,7 @@ echo $outp; echo ''; //Neu Button -if($write_admin) +if($write_admin || $rechte->isBerechtigt('lehre/lehrveranstaltungAnlegen',null,'suid')) echo ''; echo ''; diff --git a/vilesci/lehre/lehrveranstaltung_details.php b/vilesci/lehre/lehrveranstaltung_details.php index cef83a0bc..20d8200f1 100644 --- a/vilesci/lehre/lehrveranstaltung_details.php +++ b/vilesci/lehre/lehrveranstaltung_details.php @@ -50,9 +50,9 @@ if(isset($_POST["schick"]) || isset($_POST["schick_neu"])) { - if(!$rechte->isBerechtigt('lehre/lehrveranstaltung',null,'sui')) + if(!$rechte->isBerechtigt('lehre/lehrveranstaltung',null,'sui') && !$rechte->isBerechtigt('lehre/lehrveranstaltungAnlegen',null,'sui')) die('Sie haben keine Berechtigung fuer diese Aktion'); - + $lv = new lehrveranstaltung(); if(isset($_POST["schick_neu"])) diff --git a/vilesci/lehre/saveStudienordnung.php b/vilesci/lehre/saveStudienordnung.php index 43f8705c0..d8fa1ecdd 100644 --- a/vilesci/lehre/saveStudienordnung.php +++ b/vilesci/lehre/saveStudienordnung.php @@ -30,6 +30,7 @@ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/webservicerecht.class.php'); require_once('../../include/studienordnung.class.php'); +require_once('../../include/studienplan.class.php'); $class = $_REQUEST['class']; $method = $_REQUEST['method']; @@ -147,7 +148,20 @@ elseif(mb_stristr($method,'delete')) { if(!$rechte->isBerechtigt("lehre/studienordnung")) { - die('Sie haben keine Berechtigung fuer diesen Vorgang.'); + if(!$rechte->isBerechtigt("lehre/studienordnungInaktiv")) + { + die('Sie haben keine Berechtigung fuer diesen Vorgang. Recht: lehre/studienordnung'); + } + else + { + $studienplan = new studienplan(); + $studienplan->loadStudienplanLehrveranstaltung($_REQUEST['parameter_0']); + $studienordnung = new studienordnung(); + $studienordnung->getStudienordnungFromStudienplan($studienplan->studienplan_id); + + if($studienordnung->isAktiv($studienordnung->studienordnung_id)) + die('Sie haben keine Berechtigung fuer diesen Vorgang. Studienordnung ist aktiv.'); + } } } $return = ''; diff --git a/vilesci/lehre/studienordnung.inc.php b/vilesci/lehre/studienordnung.inc.php index aa996fc09..91448abc4 100644 --- a/vilesci/lehre/studienordnung.inc.php +++ b/vilesci/lehre/studienordnung.inc.php @@ -39,7 +39,7 @@ $rechte->getBerechtigungen($uid); $method=(isset($_GET['method'])?$_GET['method']:''); -if(!$rechte->isBerechtigt('lehre/studienordnung')) +if((!$rechte->isBerechtigt('lehre/studienordnung')) && (!$rechte->isBerechtigt('lehre/studienordnungInaktiv'))) die('Sie haben keine Berechtigung für diese Seite'); switch($method) diff --git a/vilesci/lehre/studienordnung.js b/vilesci/lehre/studienordnung.js index b01fba7f9..11f03e43b 100644 --- a/vilesci/lehre/studienordnung.js +++ b/vilesci/lehre/studienordnung.js @@ -1060,7 +1060,7 @@ function loadSemester() if($("#neueLV").length === 0) $("#lehrveranstaltung").append("
"); - $("#neueLV").html("
"); + $("#neueLV").html("
"); isLVFilterLoaded=true; loadFilteredLehrveranstaltungen(); }); diff --git a/vilesci/lehre/studienordnung.php b/vilesci/lehre/studienordnung.php index ca0661aca..f710b23e0 100644 --- a/vilesci/lehre/studienordnung.php +++ b/vilesci/lehre/studienordnung.php @@ -152,6 +152,8 @@ if((!$rechte->isBerechtigt('lehre/studienordnung')) && (!$rechte->isBerechtigt(' if($rechte->isBerechtigt('lehre/studienordnungInaktiv')) echo ""; $stg_arr = $rechte->getStgKz('lehre/studienordnung'); +if(empty($stg_arr)) + $stg_arr = $rechte->getStgKz('lehre/studienordnungInaktiv'); $studiengang = new studiengang(); $studiengang->loadArray($stg_arr,'typ,kurzbz');