From 732e84ee8af98484d31a4a48d762d6c8a733f4f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 23 Jan 2009 14:30:24 +0000 Subject: [PATCH] =?UTF-8?q?-=20DB=20Fehler=20in=20upload.php=20entfernt=20?= =?UTF-8?q?-=20Urlaubstool=20kann=20als=20Administrator=20f=C3=BCr=20alle?= =?UTF-8?q?=20Lektoren=20eingesehen=20werden=20wenn=20der=20Parameter=20ui?= =?UTF-8?q?d=3Dxxx=20=C3=BCbergeben=20wird=20-=20lektorenstatistik=20zeigt?= =?UTF-8?q?=20nun=20nur=20mehr=20bezahlte=20stunden=20an?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lehre/upload.php | 15 ++-- cis/private/profile/urlaubsfreigabe.php | 15 +++- cis/private/profile/zeitsperre_resturlaub.php | 20 +++++- content/ToDo_FASo.html | 69 +++++++++++-------- content/statistik/alvsstatistik.php | 6 +- content/statistik/lektorenstatistik.php | 8 +-- 6 files changed, 88 insertions(+), 45 deletions(-) diff --git a/cis/private/lehre/upload.php b/cis/private/lehre/upload.php index 7e4aca491..285f8331d 100644 --- a/cis/private/lehre/upload.php +++ b/cis/private/lehre/upload.php @@ -217,13 +217,18 @@ A:hover { { $ids='-1'; foreach ($arr as $elem) - $ids.=",'$elem'"; + { + if($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; + if($result_stg_kurzbzlang=pg_query($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; + } } } diff --git a/cis/private/profile/urlaubsfreigabe.php b/cis/private/profile/urlaubsfreigabe.php index 992fa1f8d..b44299e54 100644 --- a/cis/private/profile/urlaubsfreigabe.php +++ b/cis/private/profile/urlaubsfreigabe.php @@ -28,12 +28,16 @@ require_once('../../../include/person.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/mitarbeiter.class.php'); require_once('../../../include/resturlaub.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); if(!$conn = pg_pconnect(CONN_STRING)) die('Fehler beim Connecten zur Datenbank'); $user = get_uid(); +$rechte = new benutzerberechtigung($conn); +$rechte->getBerechtigungen($user); + if(isset($_GET['year']) && is_numeric($_GET['year'])) $year = $_GET['year']; else @@ -76,7 +80,7 @@ echo ' $mitarbeiter = new mitarbeiter($conn); $mitarbeiter->getUntergebene($user); -if(count($mitarbeiter->untergebene)==0) +if(count($mitarbeiter->untergebene)==0 && !$rechte->isBerechtigt('admin')) die('Es sind Ihnen keine Mitarbeiter zugeteilt für die sie den Urlaub freigeben dürfen'); $untergebene = ''; foreach ($mitarbeiter->untergebene as $row) @@ -85,6 +89,13 @@ foreach ($mitarbeiter->untergebene as $row) $untergebene.=','; $untergebene .= "'".$row."'"; } + +if($rechte->isBerechtigt('admin')) +{ + if($untergebene!='') + $untergebene.=','; + $untergebene .= "'".$uid."'"; +} $qry = "SELECT * FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid in($untergebene)"; $mitarbeiter = array(); @@ -98,7 +109,7 @@ if($result = pg_query($conn, $qry)) $mitarbeiter[$row->uid]['titelpost']=$row->titelpost; } } -if($uid!='' && !isset($mitarbeiter[$uid]) && $uid!=$user) +if($uid!='' && !isset($mitarbeiter[$uid]) && $uid!=$user && !$rechte->isBerechtigt('admin')) die('Sie haben keine Berechtigung fuer diesen Mitarbeiter'); //Freigeben eines Urlaubes diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index 9aee051ac..f64ff1892 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -32,9 +32,10 @@ require_once('../../../include/benutzer.class.php'); require_once('../../../include/mitarbeiter.class.php'); require_once('../../../include/mail.class.php'); + require_once('../../../include/benutzerberechtigung.class.php'); $uid = get_uid(); - + $PHP_SELF = $_SERVER['PHP_SELF']; if(isset($_GET['type'])) @@ -43,6 +44,21 @@ if (!$conn = @pg_pconnect(CONN_STRING)) die("Es konnte keine Verbindung zum Server aufgebaut werden."); + //Wenn User Administrator ist und UID uebergeben wurde, dann die Zeitsperren + //des uebergebenen Users anzeigen + if(isset($_GET['uid'])) + { + $rechte = new benutzerberechtigung($conn); + $rechte->getBerechtigungen($uid); + if($rechte->isBerechtigt('admin')) + { + $uid = $_GET['uid']; + } + else + { + die('Fuer diese Aktion benoetigen Sie Administratorenrechte'); + } + } $datum_obj = new datum(); $ma= new mitarbeiter($conn); @@ -56,7 +72,7 @@ "http://www.w3.org/TR/html4/loose.dtd"> Zeitsperre - +