diff --git a/include/benutzerberechtigung.class.php b/include/benutzerberechtigung.class.php index ed0b60977..a615729f4 100644 --- a/include/benutzerberechtigung.class.php +++ b/include/benutzerberechtigung.class.php @@ -650,7 +650,7 @@ class benutzerberechtigung extends basis_db foreach ($this->berechtigungen as $b) { - if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz) + if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || (mb_strpos($berechtigung_kurzbz,':')!==false && mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)) && (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null))) { if($b->negativ) @@ -671,7 +671,9 @@ class benutzerberechtigung extends basis_db { $childoes = $oe->getChilds($b->oe_kurzbz); foreach($childoes as $row) + { $in .= "'".$this->db_escape($row)."',"; + } } else { @@ -728,7 +730,7 @@ class benutzerberechtigung extends basis_db foreach ($this->berechtigungen as $b) { - if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz) + if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || (mb_strpos($berechtigung_kurzbz,':')!==false && mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)) && (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null))) { if($b->negativ) @@ -801,7 +803,7 @@ class benutzerberechtigung extends basis_db $oe = new organisationseinheit(); foreach ($this->berechtigungen as $b) { - if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz) + if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || (mb_strpos($berechtigung_kurzbz,':')!==false && mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)) && (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null))) { if($b->negativ) @@ -828,9 +830,9 @@ class benutzerberechtigung extends basis_db { if(!is_null($b->oe_kurzbz)) { - $childoes = $oe->getChilds($b->oe_kurzbz); - foreach($childoes as $row) - $oe_kurzbz[] = $row; + $childoes = $oe->getChilds($b->oe_kurzbz); + foreach($childoes as $row) + $oe_kurzbz[] = $row; } else { @@ -874,7 +876,7 @@ class benutzerberechtigung extends basis_db if(!mb_strstr($b->berechtigung_kurzbz,'wawi/')) continue; - if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz) + if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || (mb_strpos($berechtigung_kurzbz,':')!==false && mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)) && (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null))) { if($b->negativ) @@ -1065,7 +1067,7 @@ class benutzerberechtigung extends basis_db * * @param string $berechtigung_kurzbz Kurzbezeichnung der Berechtigung, deren Rollen geladen werden sollen * @param boolean $inklusiveRollen Default TRUE. Wenn true, wird ein UNION SELECT mit der tbl_rolleberechtigung ausgefuehrt - * @param string $oe_kurzbz Organisationseinheit + * @param string $oe_kurzbz Organisationseinheit * @return boolean true wenn ok, false im Fehlerfall */ public function getBenutzerFromBerechtigung($berechtigung_kurzbz, $inklusiveRollen = true, $oe_kurzbz = null) diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 76938c547..5330df225 100644 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -109,7 +109,7 @@ $menu=array 'Benutzer'=>array ( 'name'=>'Benutzer','permissions'=>array('admin','lv-plan','support'), - 'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main'), + 'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main', 'permissions'=>array('mitarbeiter')), 'Berechtigungen'=>array('name'=>'Berechtigungen', 'link'=>'stammdaten/benutzerberechtigung_frameset.html', 'target'=>'main','permissions'=>array('basis/berechtigung')), 'Rollen'=>array('name'=>'Rollen', 'link'=>'stammdaten/berechtigungrolle.php', 'target'=>'main','permissions'=>array('basis/berechtigung')), 'Variablen'=>array('name'=>'Variablen', 'link'=>'stammdaten/variablen_frameset.html', 'target'=>'main', 'target'=>'main','permissions'=>array('basis/variable')), @@ -188,7 +188,7 @@ $menu=array 'Firmenwartung'=>array('name'=>'Firmenwartung', 'link'=>'stammdaten/firma_zusammen_uebersicht.php', 'target'=>'main','permissions'=>array('basis/firma')), 'checkStudenten'=>array('name'=>'CheckStudenten', 'link'=>'../system/checkStudenten.php', 'target'=>'main', 'permissions'=>array('student/stammdaten')), 'StudienplanZuteilung'=>array('name'=>'Studienplan Zuteilung', 'link'=>'lehre/studienplan_zuteilung.php', 'target'=>'main','permissions'=>array('assistenz')), - 'lv_merge'=>array('name'=>'LVs zusammenlegen', 'link'=>'lehre/lv_merge.php', 'target'=>'main','permissions'=>array('admin','lv-plan')), + 'lv_merge'=>array('name'=>'LVs zusammenlegen', 'link'=>'lehre/lv_merge.php', 'target'=>'main','permissions'=>array('lehre/lehrveranstaltung')), 'akteupdate'=>array('name'=>'Akten überschreiben', 'link'=>'personen/akteupdate.php', 'target'=>'main','permissions'=>array('admin')), ), 'Auswertung'=> array diff --git a/vilesci/personen/funktion.php b/vilesci/personen/funktion.php index f2e86a52e..a6628c5fa 100644 --- a/vilesci/personen/funktion.php +++ b/vilesci/personen/funktion.php @@ -20,22 +20,31 @@ * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ - - /** * Changes: 23.10.2004: Anpassung an neues DB-Schema (WM) */ require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/basis_db.class.php'); + +$uid = get_uid(); + if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +if(!$rechte->isBerechtigt('mitarbeiter',null,'suid')) + die($rechte->errormsg); + $sql_query="SELECT beschreibung,funktion_kurzbz FROM public.tbl_funktion ORDER BY funktion_kurzbz"; $result_funktion=$db->db_query($sql_query); if(!$result_funktion) die("funktion not found!" .$db->db_last_error()); ?> - +