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');