From 63afde0bd51246c7811b37d3233b714231f14e0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 24 Oct 2007 12:19:58 +0000 Subject: [PATCH] --- cis/private/lehre/lesson.php | 14 +-- cis/private/lehre/upload.php | 41 +++++++-- content/ToDo_FASo.html | 4 + content/bildupload.php | 2 +- content/lvplanung/lehrveranstaltungDBDML.php | 10 +-- content/mitarbeiter/mitarbeiterDBDML.php | 2 +- content/tempusDBDML.php | 86 +++++++++++-------- include/benutzerberechtigung.class.php | 7 +- vilesci/bis/personalimport.php | 2 +- vilesci/personen/import/mitarbeiterimport.php | 2 +- vilesci/personen/kontaktdaten_edit.php | 2 +- vilesci/personen/personen_anlegen.php | 2 +- 12 files changed, 111 insertions(+), 63 deletions(-) diff --git a/cis/private/lehre/lesson.php b/cis/private/lehre/lesson.php index cb159d2f1..5f10bf3d7 100644 --- a/cis/private/lehre/lesson.php +++ b/cis/private/lehre/lesson.php @@ -63,16 +63,16 @@ $short_short_name = $lv->lehreverzeichnis; $rechte = new benutzerberechtigung($sql_conn); - $rechte->getBerechtigungen($user); - - //Handbuch ausliefern + $rechte->getBerechtigungen($user); + + //Handbuch ausliefern if (isset($_GET["handbuch"])){ $filename = BENOTUNGSTOOL_PATH."handbuch_benotungstool.pdf"; header('Content-Type: application/octet-stream'); header('Content-disposition: attachment; filename="handbuch_benotungstool.pdf"'); readfile($filename); exit; - } + } ?> @@ -144,7 +144,7 @@ isBerechtigt('lehre',null,null,$row->fachbereich_kurzbz)) + if($rechte->isBerechtigt('lehre',null,null,$row->fachbereich_kurzbz) || $rechte->isBerechtigt('assistenz',$row->studiengang_kz)) $user_is_allowed_to_upload=true; } } @@ -489,7 +489,7 @@ ?> " >
- Benotungstool
("Kreuzerl"-Tool)

+ Benotungstool
("Kreuzerl"-Tool)

">Handbuch [PDF] " > diff --git a/cis/private/lehre/upload.php b/cis/private/lehre/upload.php index eef81a47f..c8a850a58 100644 --- a/cis/private/lehre/upload.php +++ b/cis/private/lehre/upload.php @@ -161,7 +161,7 @@ A:hover { echo ''; echo '
'; - if(!($num_rows_lector_dispatch > 0) && !$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('lehre')) + if(!($num_rows_lector_dispatch > 0) && !$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('lehre') && !$rechte->isBerechtigt('assistenz')) { die('

Es konnten keine Studiengänge definiert werden!

'); } @@ -239,7 +239,36 @@ A:hover { $stg_arr[$row->studiengang_kz]=$row->kurzbz; } } + + //Assistenz Berechtigungen auf Studiengangsebene + if($rechte->isBerechtigt('assistenz')) + { + $arr = $rechte->getStgKz('assistenz'); + if(isset($arr[0]) && $arr[0]==0) //Berechtigt fuer alle Stg + { + $sql_query="SELECT studiengang_kz, kurzbzlang, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kurzbz FROM public.tbl_studiengang WHERE studiengang_kz<>0 ORDER BY kurzbz"; + $result_stg=pg_exec($sql_conn,$sql_query); + + while($row = pg_fetch_object($result_stg)) + if(!array_key_exists($row->studiengang_kz,$stg_arr)) + $stg_arr[$row->studiengang_kz]=$row->kurzbz; + } + else //Berechtigt fuer einen Teil der Studiengaenge + { + $ids='-1'; + foreach ($arr as $elem) + $ids.=",'$elem'"; + + $sql_query = "SELECT studiengang_kz, kurzbzlang, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kurzbz FROM public.tbl_studiengang WHERE studiengang_kz IN(".$ids.")"; + + $result_stg_kurzbzlang=pg_exec($sql_conn, $sql_query); + while($row = pg_fetch_object($result_stg_kurzbzlang)) + if(!array_key_exists($row->studiengang_kz,$stg_arr)) + $stg_arr[$row->studiengang_kz]=$row->kurzbz; + } + } + //Lehre Berechtigung auf Fachbereichsebnene if($rechte->isBerechtigt('lehre') || $rechte->isBerechtigt('admin')) { @@ -311,7 +340,7 @@ A:hover { $num_rows_lector_dispatch = pg_num_rows($result_lector_dispatch); - if(!($num_rows_lector_dispatch > 0) && !$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('lehre')) + if(!($num_rows_lector_dispatch > 0) && !$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('lehre') && !$rechte->isBerechtigt('assistenz')) die('

Es konnten keine Semester definiert werden!

'); @@ -325,7 +354,7 @@ A:hover { $sem_arr[]=$row->semester; //Alle Semester mit admin oder lehre Rechten - if($rechte->isBerechtigt('admin',$course_id) || $rechte->isBerechtigt('lehre',$course_id)) + if($rechte->isBerechtigt('admin',$course_id) || $rechte->isBerechtigt('lehre',$course_id)|| $rechte->isBerechtigt('assistenz',$course_id)) { $sql_query= "SELECT max_semester FROM public.tbl_studiengang WHERE studiengang_kz=".$course_id; $result_studiengang_semester=pg_exec($sql_conn, $sql_query); @@ -397,12 +426,12 @@ A:hover { tbl_lehrveranstaltung.semester='$term_id' AND tbl_lehrveranstaltung.studiengang_kz='$course_id' AND tbl_lehrveranstaltung.lehre=true"; //Admin und Lehreberechtigung - if($rechte->isBerechtigt('admin',$course_id) || $rechte->isBerechtigt('lehre',$course_id) || $rechte->isBerechtigt('lehre',null,null,'0')) + if($rechte->isBerechtigt('admin',$course_id) || $rechte->isBerechtigt('lehre',$course_id) || $rechte->isBerechtigt('lehre',null,null,'0') || $rechte->isBerechtigt('assistenz',$course_id)) { $sql_query = "SELECT DISTINCT lehreverzeichnis AS kuerzel, bezeichnung FROM lehre.tbl_lehrveranstaltung WHERE studiengang_kz='$course_id' AND semester='$term_id' AND tbl_lehrveranstaltung.lehre=true AND tbl_lehrveranstaltung.lehreverzeichnis<>''"; } //Fachbereichsberechtigung - if($rechte->isBerechtigt('lehre') || $rechte->isBerechtigt('admin')) + if($rechte->isBerechtigt('lehre') || $rechte->isBerechtigt('admin') || $rechte->isBerechtigt('assistenz')) { $arr=$rechte->getFbKz(); $ids='-1'; @@ -706,7 +735,7 @@ A:hover { "; echo " "; - echo " "; + echo " "; echo "Max. Uploadgröße (alle Dateien): 8 MB"; echo " "; echo " "; diff --git a/content/ToDo_FASo.html b/content/ToDo_FASo.html index 2a5c17b1e..84af349d1 100644 --- a/content/ToDo_FASo.html +++ b/content/ToDo_FASo.html @@ -184,6 +184,10 @@

Erledigte Anforderungen

    +
  • Berechtigungsfehler beim Zuordnen eines Lektors zu einem Studiengang und beim Anlegen von Firmenbetreuern
    +24.10.2007 oesi

  • +
  • Beim Zuordnen eines Interessenten/Bewerbers zu einer Spezialgruppe erscheint nun eine Fehlermeldung
    +23.10.2007 oesi

  • Fehler beim Export der Mitarbeiterdaten behoben (Fehler beim Export der Spalte "Geaendert Von")
    22.10.2007 oesi

  • Neuer Menüpunkt Extras->Lehrveranstaltungsverwaltung zur Verwaltung der LV-Daten und FBK auf LV-Ebene
    diff --git a/content/bildupload.php b/content/bildupload.php index 8a35d8ac7..d198f82a3 100644 --- a/content/bildupload.php +++ b/content/bildupload.php @@ -74,7 +74,7 @@ $user = get_uid(); $rechte = new benutzerberechtigung($conn); $rechte->getBerechtigungen($user); -if(!$rechte->isBerechtigt('admin')) +if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz')) die('Keine Berechtigung'); //Bei Upload des Bildes if(isset($_POST['submitbild'])) diff --git a/content/lvplanung/lehrveranstaltungDBDML.php b/content/lvplanung/lehrveranstaltungDBDML.php index 29fdcfabb..6b426c171 100644 --- a/content/lvplanung/lehrveranstaltungDBDML.php +++ b/content/lvplanung/lehrveranstaltungDBDML.php @@ -361,7 +361,7 @@ if(!$error) $qry = "SELECT tbl_lehrveranstaltung.studiengang_kz, fachbereich_kurzbz FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrfach WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - tbl_lehreinheit.lehrfach_id=tbl_lehrfach.lehrfach_id AND lehreinheit_id='".addslashes($_POST['lehreinheit_id'])."'"; + tbl_lehreinheit.lehrfach_id=tbl_lehrfach.lehrfach_id AND lehreinheit_id=(SELECT lehreinheit_id FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id='".addslashes($_POST['lehreinheitgruppe_id'])."')"; if($result = pg_query($conn, $qry)) { if($row = pg_fetch_object($result)) @@ -512,7 +512,7 @@ if(!$error) $return = false; $errormsg = 'Lehreinheit wurde nicht gefunden'; } - + if(!$error) { $leDAO=new lehreinheit($conn, null, true); @@ -529,13 +529,13 @@ if(!$error) if(!$rechte->isBerechtigt('admin', $studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid') && - !$rechte->isBerechtigt('assistenz', $row->studiengang_kz, 'suid', $row->fachbereich_kurzbz) && - !$rechte->isBerechtigt('admin', $row->studiengang_kz, 'suid', $row->fachbereich_kurzbz)) + !$rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid', $fachbereich_kurzbz)) /*&& + !$rechte->isBerechtigt('admin', $studiengang_kz, 'suid', $fachbereich_kurzbz))*/ { $error = true; $return = false; $errormsg = 'Keine Berechtigung'; - } + } } else { diff --git a/content/mitarbeiter/mitarbeiterDBDML.php b/content/mitarbeiter/mitarbeiterDBDML.php index d872cb014..1b60816f4 100644 --- a/content/mitarbeiter/mitarbeiterDBDML.php +++ b/content/mitarbeiter/mitarbeiterDBDML.php @@ -54,7 +54,7 @@ $error = false; //Berechtigungen laden $rechte = new benutzerberechtigung($conn); $rechte->getBerechtigungen($user); -if(!$rechte->isBerechtigt('admin','0') && !$rechte->isBerechtigt('mitarbeiter','0')) +if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('mitarbeiter')) { $return = false; $errormsg = 'Sie haben keine Berechtigung zum Speichern'; diff --git a/content/tempusDBDML.php b/content/tempusDBDML.php index 25e9ffce0..9d7c7ef23 100644 --- a/content/tempusDBDML.php +++ b/content/tempusDBDML.php @@ -20,18 +20,9 @@ * Rudolf Hangl . */ -// **************************************** -// * Insert/Update/Delete -// * der Lehreinheiten -// * -// * Script sorgt fuer den Datenbanzugriff -// * fuer das XUL - Lehreinheiten-Modul -// * -// * Derzeitige Funktionen: -// * - Lehreinheitmitarbeiter Zuteilung hinzufuegen/bearbeiten/loeschen -// * - Lehreinheitgruppe Zutelung hinzufuegen/loeschen -// * - Lehreinheit anlegen/bearbeiten/loeschen -// **************************************** +// ********************************************* +// * Datenbankschnittstelle fuer FAS und Tempus +// ********************************************* require_once('../vilesci/config.inc.php'); require_once('../include/functions.inc.php'); @@ -55,7 +46,7 @@ $error = false; //Berechtigungen laden $rechte = new benutzerberechtigung($conn); $rechte->getBerechtigungen($user); -if(!$rechte->isBerechtigt('admin')) +if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz')) { $return = false; $errormsg = 'Keine Berechtigung'; @@ -97,23 +88,33 @@ if(!$error) //Fuegt eine Lkt Funktion zu einem Studiengang/Mitarbeiter hinzu if(isset($_POST['uid']) && isset($_POST['studiengang_kz'])) { - $obj = new benutzerfunktion($conn); - $obj->uid = $_POST['uid']; - $obj->studiengang_kz = $_POST['studiengang_kz']; - $obj->funktion_kurzbz = 'lkt'; - $obj->updateamum = date('Y-m-d H:i:s'); - $obj->updatevon = $user; - $obj->insertamum = date('Y-m-d H:i:s'); - $obj->insertvon = $user; - - if($obj->save(true)) + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'],'suid')) { - $return = true; + $return = false; + $error = true; + $errormsg = 'keine Berechtigung'; } else { - $return = false; - $errormsg = $obj->errormsg; + $obj = new benutzerfunktion($conn); + $obj->uid = $_POST['uid']; + $obj->studiengang_kz = $_POST['studiengang_kz']; + $obj->funktion_kurzbz = 'lkt'; + $obj->updateamum = date('Y-m-d H:i:s'); + $obj->updatevon = $user; + $obj->insertamum = date('Y-m-d H:i:s'); + $obj->insertvon = $user; + + if($obj->save(true)) + { + $return = true; + } + else + { + $return = false; + $errormsg = $obj->errormsg; + } } } else @@ -127,14 +128,30 @@ if(!$error) //Loescht eine Lektorfunktion if(isset($_POST['uid']) && isset($_POST['studiengang_kz'])) { - $obj = new benutzerfunktion($conn); - //Benutzerfunktion suchen - if($obj->getBentuzerFunktion($_POST['uid'], 'lkt', $_POST['studiengang_kz'])) + + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'],'suid')) { - //Benutzerfunktion loeschen - if($obj->delete($obj->benutzerfunktion_id)) + $return = false; + $error = true; + $errormsg = 'keine Berechtigung'; + } + else + { + $obj = new benutzerfunktion($conn); + //Benutzerfunktion suchen + if($obj->getBentuzerFunktion($_POST['uid'], 'lkt', $_POST['studiengang_kz'])) { - $return = true; + //Benutzerfunktion loeschen + if($obj->delete($obj->benutzerfunktion_id)) + { + $return = true; + } + else + { + $return = false; + $errormsg = $obj->errormsg; + } } else { @@ -142,11 +159,6 @@ if(!$error) $errormsg = $obj->errormsg; } } - else - { - $return = false; - $errormsg = $obj->errormsg; - } } else { diff --git a/include/benutzerberechtigung.class.php b/include/benutzerberechtigung.class.php index a8ddad1c3..d782e6709 100644 --- a/include/benutzerberechtigung.class.php +++ b/include/benutzerberechtigung.class.php @@ -302,7 +302,9 @@ class benutzerberechtigung if($fachbereich_kurzbz!=null) { //Wenn Fachbereichs oder Adminberechtigung - if(($berechtigung == $b->berechtigung_kurzbz || $b->berechtigung_kurzbz == 'admin') && ($b->fachbereich_kurzbz==$fachbereich_kurzbz || is_null($b->fachbereich_kurzbz))) + if(($berechtigung == $b->berechtigung_kurzbz || $b->berechtigung_kurzbz == 'admin') + && ($b->fachbereich_kurzbz==$fachbereich_kurzbz || is_null($b->fachbereich_kurzbz)) + && (is_null($b->studiengang_kz) || $b->studiengang_kz==$studiengang_kz)) { if ($b->starttimestamp!=null && $b->endetimestamp!=null) { @@ -345,7 +347,8 @@ class benutzerberechtigung //Wenn Berechtigung mit Studiengang und der richtigen BerechtigungsArt (suid) vorhanden ist if ($berechtigung==$b->berechtigung_kurzbz && ($studiengang_kz==$b->studiengang_kz || is_null($b->studiengang_kz)) - && strstr($b->art,$art)) + && strstr($b->art,$art) + && is_null($b->fachbereich_kurzbz)) if ($b->starttimestamp!=null && $b->endetimestamp!=null) { if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp) diff --git a/vilesci/bis/personalimport.php b/vilesci/bis/personalimport.php index 286dcaedc..c41f47dc1 100644 --- a/vilesci/bis/personalimport.php +++ b/vilesci/bis/personalimport.php @@ -44,7 +44,7 @@ $rechte->getBerechtigungen($user);

    Personal - Funktionen - Import

    isBerechtigt('mitarbeiter','0') && !$rechte->isBerechtigt('admin','0')) +if(!$rechte->isBerechtigt('mitarbeiter') && !$rechte->isBerechtigt('admin')) die('Sie haben nicht die erforderlichen Rechte zum Importieren der Personaldaten'); $anzahl_personen_gesamt=0; diff --git a/vilesci/personen/import/mitarbeiterimport.php b/vilesci/personen/import/mitarbeiterimport.php index 72e196787..6caeca964 100644 --- a/vilesci/personen/import/mitarbeiterimport.php +++ b/vilesci/personen/import/mitarbeiterimport.php @@ -124,7 +124,7 @@ function GeburtsdatumEintragen() $rechte = new benutzerberechtigung($conn); $rechte->getBerechtigungen($user); -if(!$rechte->isBerechtigt('admin','0') && !$rechte->isBerechtigt('mitarbeiter','0')) +if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('mitarbeiter')) die('Sie haben keine Berechtigung fuer diese Seite'); $where = ''; diff --git a/vilesci/personen/kontaktdaten_edit.php b/vilesci/personen/kontaktdaten_edit.php index 8dac4cfa7..61b822027 100644 --- a/vilesci/personen/kontaktdaten_edit.php +++ b/vilesci/personen/kontaktdaten_edit.php @@ -63,7 +63,7 @@ td $rechte = new benutzerberechtigung($conn); $rechte->getBerechtigungen($user); -if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('mitarbeiter')) +if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('mitarbeiter') && !$rechte->isBerechtigt('assistenz')) die('Sie haben keine Berechtigung fuer diese Seite'); $person_id = (isset($_GET['person_id'])?$_GET['person_id']:''); diff --git a/vilesci/personen/personen_anlegen.php b/vilesci/personen/personen_anlegen.php index 35ebcc28a..2d5352e7a 100644 --- a/vilesci/personen/personen_anlegen.php +++ b/vilesci/personen/personen_anlegen.php @@ -103,7 +103,7 @@ function disablefields2(val) $rechte = new benutzerberechtigung($conn); $rechte->getBerechtigungen($user); -if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('mitarbeiter')) +if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('mitarbeiter') && !$rechte->isBerechtigt('assistenz')) die('Sie haben keine Berechtigung fuer diese Seite'); $where = '';