From 6d529e209102dea21b4213a366435fa6e734e9e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 12 Nov 2010 14:14:48 +0000 Subject: [PATCH] =?UTF-8?q?WaWi:=20-=20Kostenstellenberechtigung=20-=20Gru?= =?UTF-8?q?ndger=C3=BCst=20-=20Login=20als=20anderer=20User=20-=20=C3=9Cbe?= =?UTF-8?q?rarbeitung=20Stylesheet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/benutzerberechtigung.class.php | 79 ++++++-- include/functions.inc.php | 17 ++ include/tw/wawi_menu_main.inc.php | 54 +++++ skin/images/wawi_logo.png | Bin 0 -> 17710 bytes skin/images/wawi_logo_sz.png | Bin 0 -> 76782 bytes skin/wawi.css | 264 +++++++------------------ wawi/home.php | 41 ++++ wawi/index.php | 46 +++++ wawi/kontouebersicht.php | 16 +- wawi/kostenstellenuebersicht.php | 50 ++++- wawi/login.php | 36 +++- wawi/logout.php | 62 ++++-- wawi/menu.php | 190 ++++++++++++++++++ 13 files changed, 600 insertions(+), 255 deletions(-) create mode 100644 include/tw/wawi_menu_main.inc.php create mode 100644 skin/images/wawi_logo.png create mode 100644 skin/images/wawi_logo_sz.png create mode 100644 wawi/home.php create mode 100644 wawi/index.php create mode 100644 wawi/menu.php diff --git a/include/benutzerberechtigung.class.php b/include/benutzerberechtigung.class.php index f69d56d8f..e50a97755 100644 --- a/include/benutzerberechtigung.class.php +++ b/include/benutzerberechtigung.class.php @@ -25,6 +25,7 @@ require_once(dirname(__FILE__).'/organisationseinheit.class.php'); require_once(dirname(__FILE__).'/studiengang.class.php'); require_once(dirname(__FILE__).'/fachbereich.class.php'); require_once(dirname(__FILE__).'/functions.inc.php'); +require_once(dirname(__FILE__).'/wawi_kostenstelle.class.php'); class benutzerberechtigung extends basis_db { @@ -47,7 +48,8 @@ class benutzerberechtigung extends basis_db public $updatevon; public $insertamum; public $insertvon; - + public $kostenstelle_id; + public $starttimestamp; public $endetimestamp; @@ -100,6 +102,7 @@ class benutzerberechtigung extends basis_db $this->updatevon = $row->updatevon; $this->insertamum = $row->insertamum; $this->insertvon = $row->insertvon; + $this->kostenstelle_id = $row->kostenstelle_id; return true; } @@ -175,6 +178,19 @@ class benutzerberechtigung extends basis_db $this->errormsg = 'Art darf nicht leer sein'; return false; } + + if($this->kostenstelle_id!='' && !is_numeric($this->kostenstelle_id)) + { + $this->errormsg = 'Kostenstelle_id muss eine gueltige Zahl sein'; + return false; + } + + if($this->kostenstelle_id!='' && $this->oe_kurzbz!='') + { + $this->errormsg = 'Wenn eine Kostenstelle angegeben wird, darf keine Organisationseinheit eingetragen sein'; + return false; + } + return true; } @@ -193,7 +209,8 @@ class benutzerberechtigung extends basis_db if($this->new) { $qry = 'INSERT INTO system.tbl_benutzerrolle (rolle_kurzbz, berechtigung_kurzbz, uid, funktion_kurzbz, - oe_kurzbz, art, studiensemester_kurzbz, start, ende, negativ, updateamum, updatevon, insertamum, insertvon) + oe_kurzbz, art, studiensemester_kurzbz, start, ende, negativ, updateamum, updatevon, + insertamum, insertvon, kostenstelle_id) VALUES('.$this->addslashes($this->rolle_kurzbz).','. $this->addslashes($this->berechtigung_kurzbz).','. $this->addslashes($this->uid).','. @@ -207,7 +224,8 @@ class benutzerberechtigung extends basis_db $this->addslashes($this->updateamum).','. $this->addslashes($this->updatevon).','. $this->addslashes($this->insertamum).','. - $this->addslashes($this->insertvon).');'; + $this->addslashes($this->insertvon).','. + $this->addslashes($this->kostenstelle_id).');'; } else { @@ -222,6 +240,7 @@ class benutzerberechtigung extends basis_db ' start='.$this->addslashes($this->start).','. ' ende='.$this->addslashes($this->ende).','. ' negativ='.($this->negativ?'true':'false').','. + ' kostenstelle_id='.$this->addslashes($this->kostenstelle_id).','. ' updateamum='.$this->addslashes($this->updateamum).','. ' updatevon='.$this->addslashes($this->updatevon). " WHERE benutzerberechtigung_id='".addslashes($this->benutzerberechtigung_id)."'"; @@ -303,6 +322,7 @@ class benutzerberechtigung extends basis_db $obj->updatevon = $row->updatevon; $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; + $obj->kostenstelle_id = $row->kostenstelle_id; $this->berechtigungen[] = $obj; } @@ -335,7 +355,7 @@ class benutzerberechtigung extends basis_db tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1, tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start, tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon, - tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon + tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id FROM system.tbl_benutzerrolle JOIN system.tbl_berechtigung USING(berechtigung_kurzbz) WHERE uid='".addslashes($uid)."' @@ -347,7 +367,7 @@ class benutzerberechtigung extends basis_db tbl_benutzerrolle.rolle_kurzbz, tbl_berechtigung.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_rolleberechtigung.art art1, tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start, tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon, - tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon + tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id FROM system.tbl_benutzerrolle JOIN system.tbl_rolle USING(rolle_kurzbz) JOIN system.tbl_rolleberechtigung USING(rolle_kurzbz) @@ -359,9 +379,9 @@ class benutzerberechtigung extends basis_db SELECT benutzerberechtigung_id, tbl_benutzerfunktion.uid, tbl_benutzerrolle.funktion_kurzbz, tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1, - tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start, + tbl_benutzerfunktion.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start, tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon, - tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon + tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id FROM system.tbl_benutzerrolle JOIN public.tbl_benutzerfunktion USING(funktion_kurzbz) WHERE tbl_benutzerfunktion.uid='".addslashes($uid)."' @@ -373,7 +393,7 @@ class benutzerberechtigung extends basis_db tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1, tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start, tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon, - tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon + tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id FROM system.tbl_benutzerrolle WHERE @@ -387,7 +407,7 @@ class benutzerberechtigung extends basis_db tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1, tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start, tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon, - tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon + tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id FROM system.tbl_benutzerrolle WHERE @@ -428,6 +448,7 @@ class benutzerberechtigung extends basis_db $b->updatevon = $row->updatevon; $b->insertamum = $row->insertamum; $b->insertvon = $row->insertvon; + $b->kostenstelle_id = $row->kostenstelle_id; $this->berechtigungen[]=$b; } @@ -464,10 +485,10 @@ class benutzerberechtigung extends basis_db * derzeit kann hier noch die Studiengangskennzahl uebergeben werden, * dies wird in Zukunft aber nicht mehr moeglich sein * @param $art suid (select|update|insert|delete) - * @param $fachbereich_kurzbz DEPRECATED + * @param $kostenstelle_id ID der Kostenstelle * @return true wenn eine Berechtigung entspricht. */ - public function isBerechtigt($berechtigung_kurzbz,$oe_kurzbz=null,$art=null, $fachbereich_kurzbz=null) + public function isBerechtigt($berechtigung_kurzbz, $oe_kurzbz=null, $art=null, $kostenstelle_id=null) { $timestamp=time(); @@ -479,12 +500,12 @@ class benutzerberechtigung extends basis_db $oe_kurzbz = $stg->oe_kurzbz; } - //Fachbereich - if(!is_null($fachbereich_kurzbz)) + if($kostenstelle_id!='' && !is_numeric($kostenstelle_id)) { - $fb = new fachbereich($fachbereich_kurzbz); - $oe_kurzbz = $fb->oe_kurzbz; + $this->errormsg = 'Kostenstelle_id ist ungueltig'; + return false; } + $oe = new organisationseinheit(); foreach ($this->berechtigungen as $b) @@ -492,7 +513,8 @@ class benutzerberechtigung extends basis_db //Pruefen ob eine negativ-Berechtigung vorhanden ist if($b->berechtigung_kurzbz==$berechtigung_kurzbz && $b->negativ - && (is_null($oe_kurzbz) || $oe_kurzbz==$b->oe_kurzbz || $oe->isChild($b->oe_kurzbz, $oe_kurzbz))) + && (is_null($oe_kurzbz) || ($b->kostenstelle_id=='' && ($b->oe_kurzbz=='' || $oe_kurzbz==$b->oe_kurzbz || $oe->isChild($b->oe_kurzbz, $oe_kurzbz)))) + && (is_null($kostenstelle_id) || $kostenstelle_id==$b->kostenstelle_id)) { if (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null)) @@ -503,15 +525,34 @@ class benutzerberechtigung extends basis_db if($b->berechtigung_kurzbz==$berechtigung_kurzbz && (is_null($art) || mb_strstr($b->art, $art)) - && (is_null($oe_kurzbz) || $oe_kurzbz==$b->oe_kurzbz || $oe->isChild($b->oe_kurzbz, $oe_kurzbz))) + && (is_null($oe_kurzbz) || ($b->kostenstelle_id=='' && ($b->oe_kurzbz=='' || $oe_kurzbz==$b->oe_kurzbz || $oe->isChild($b->oe_kurzbz, $oe_kurzbz)))) + && (is_null($kostenstelle_id) || $kostenstelle_id==$b->kostenstelle_id)) { if (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null)) { return true; } - } + } } + + //Kostenstellenrecht ueber Organisationseinheit + if($kostenstelle_id!='') + { + //Kostenstelle laden und schauen, ob auf die Organisationseinheit der Kostenstelle + //die Berechtigung vorhanden ist + $kostenstelle = new wawi_kostenstelle(); + if($kostenstelle->load($kostenstelle_id)) + { + return $this->isBerechtigt($berechtigung_kurzbz, $kostenstelle->oe_kurzbz, $art); + } + else + { + $this->errormsg='Kostenstelle existiert nicht'; + return false; + } + } + //wenn ein Doppelpunkt vorkommt, pruefen ob das Uebergeordnete vorhanden ist if($pos=mb_strpos($berechtigung_kurzbz,':')===false) @@ -520,7 +561,7 @@ class benutzerberechtigung extends basis_db } else { - return $this->isBerechtigt(substr($berechtigung_kurzbz,0,$pos-1), $oe_kurzbz, $art, $fachbereich_kurzbz); + return $this->isBerechtigt(substr($berechtigung_kurzbz,0,$pos-1), $oe_kurzbz, $art, $kostenstelle_id); } } diff --git a/include/functions.inc.php b/include/functions.inc.php index f98f13988..b252280b7 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -36,6 +36,23 @@ function get_uid() //return 'pam'; } +function get_original_uid() +{ + if(isset($_SERVER['REMOTE_USER'])) + return (isset($_SERVER['REMOTE_USER'])?mb_strtolower(trim($_SERVER['REMOTE_USER'])):''); + else + { + if(isset($_SESSION['user_original'])) + return $_SESSION['user_original']; + } +} + +function login_as_user($uid) +{ + $_SESSION['user']=$uid; + return true; +} + function crlf() { // doing some DOS-CRLF magic... diff --git a/include/tw/wawi_menu_main.inc.php b/include/tw/wawi_menu_main.inc.php new file mode 100644 index 000000000..b0c0a7d06 --- /dev/null +++ b/include/tw/wawi_menu_main.inc.php @@ -0,0 +1,54 @@ +, + * Andreas Oesterreicher and + * Karl Burkhart array + ( + 'name'=>'Administration', 'opener'=>'true', 'hide'=>'false', 'permissions'=>array('wawi/kostenstelle','wawi/konto'), + + 'Konto'=>array + ( + 'name'=>'Konto', 'permissions'=>array('wawi/konto'),'link'=>'kontouebersicht.php', 'target'=>'content', + 'KontoNeu'=>array('name'=>'Neu', 'link'=>'kontouebersicht.php?method=update', 'target'=>'content'), + 'KontoZusammenlegen'=>array('name'=>'Zusammenlegen', 'link'=>'kontouebersicht.php?method=merge', 'target'=>'content'), + ), + 'Kostenstelle'=>array + ( + 'name'=>'Kostenstelle', 'permissions'=>array('wawi/kostenstelle'),'link'=>'kostenstellenuebersicht.php', 'target'=>'content', + 'KostenstelleNeu'=>array('name'=>'Neu', 'link'=>'kostenstellenuebersicht.php?method=update', 'target'=>'content'), + 'KostenstelleZusammenlegen'=>array('name'=>'Zusammenlegen', 'link'=>'kostenstellenuebersicht.php?method=merge', 'target'=>'content'), + ), + ), + 'Benutzerbereich'=> array + ( + 'name'=>'Benutzerbereich', 'opener'=>'true', 'hide'=>'false','permissions'=>array('wawi/bestellung'), + 'Bestellung'=>array + ( + 'name'=>'Bestellung', 'permissions'=>array('wawi/bestellung'),'link'=>'bestellung.php', 'target'=>'content', + 'BestellungNeu'=>array('name'=>'Neu', 'link'=>'bestellung.php?mehtod=update', 'target'=>'content'), + ), + ) +); +?> \ No newline at end of file diff --git a/skin/images/wawi_logo.png b/skin/images/wawi_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8863b0a6f287cf07c985223c7e53b68aed39969e GIT binary patch literal 17710 zcmXtg19T8J3cP3g8REMMY8+R6Rv>3>?53 z%SwuY{{8n~&{>)coI!Au(sBWTn7;h?f$;bx>;{~KbCs4Chg*fhLqvdf6SJNMfk;8p zVqeufR?j=F8VDCMncmKlTn{~)u49f?hM*w&u>KwfCxFP%!tmBiPd@lQ-<;~u`!2N| zx7)u=>z#7t^80Kw6WT)MvQUahks7k!;}X@xUJLA?uURCxN=&MrUk=YIC6&uimNls* zZ4S!{9sQQkQExBLd+)exe|%+w7vUkYhpXZGII1E=gAaLQh1gbldyM|^<45|0ZBFK_ z6b+U()OHuoY!%GR*QHnyQuv;5C(*Z>uC9;Rx&(uqtEM3XF*j()LZY#&A0S~c7(A_m zeJJnOYxoxjBuwp+CPJzS&kym|QP|6aKtR=P$kG7YGbiQ+4cXf#b9EdR_R`HA`v%#& z?H^Ym2pK3+!zTpoXkhZK-?Voh7an$PkBhSmIIkql1HJuS5OSWPTZD9m*kYz}J|1|e zF+xqP(;t>+^lNnZ5Nm3Y$cT6mQZ?2^V?L$moc-|Q9$0jeK#|`#w#d+sTl1XWz8^h| zP79L2NEbq)L5p16zb3Zi4w{o+B7ob-4k0{b)So?lKd2+#;GspaO(1(Z(hf^ToiNk-?u}=kN7>^h-juc072hGjjC3y%Q^4Eh_z^71k$e1qw&J%p~?ks`{FM@}O}gmgc2Xb5)X z15^ZwUBGgH8$BxK1IXHtgOdyXyI&9i)$SKGc=7BWWaKNj;MC%`qS}mJS_WWp3y{P6 zQK){~vF_u>&Z+|!mHZYC|0Z|!4gPu1lw24x&@kx*6YCip<2=FwR?J{G3dO^�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

nnhZ>2cM`Lkl4X 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 Kcsa~E;{O2HFeASJ literal 0 HcmV?d00001 diff --git a/skin/wawi.css b/skin/wawi.css index 59932ae65..06291903e 100644 --- a/skin/wawi.css +++ b/skin/wawi.css @@ -1,225 +1,107 @@ +/* Copyright (C) 2010 Technikum-Wien + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + * + * Authors: Christian Paminger , + * Andreas Oesterreicher and + * Karl Burkhart . + */ +@charset "utf-8"; -A:link {text-decoration: none; +img +{ + border:0; +} + +A:link +{ + text-decoration: none; color: blue; - - } +} -A:visited {text-decoration: none; - color: blue; - } -A:active {text-decoration: underline; - color: blue; - } +A:visited +{ + text-decoration: none; + color: blue; +} -A.neutral:link {text-decoration: underline; +A:active +{ + text-decoration: underline; + color: blue; +} + +A:hover +{ + text-decoration: underline; color: black; +} - } -A.neutral:visited {text-decoration: underline; - color: black; - } -A.neutral:active {text-decoration: underline; - color: black; - } - A img{text-decoration: none; - border:none; - - } - -B { - font-family: Verdana,Lucida,Helvetica,Arial; - } - -BODY,H1,H2,H3,H4,H5,H6,P,I,TD,TH { +BODY,H1,H2,H3,H4,H5,H6,P,I,TD,TH +{ font-family: Verdana,Lucida,Helvetica,Arial; color:black; - } +} -BODY,TD,TH,P,I { - font-size: 9pt; - } - -td.blue { font-family: Verdana,Lucida,Helvetica,Arial; - font-size: 1pt; - background:blue - } - -td.darkgray { - font-family: Verdana,Lucida,Helvetica,Arial; - font-size: 1pt; - background:darkgray; - } - -td.grays{white-space:nowrap; - font-family: Verdana,Lucida,Helvetica,Arial; - font-size: 8pt; - font-weight: normal; - background:#EEEEEE; - } - -td.white{ width:170pt; - text-align:right; - white-space:nowrap; - font-family: Verdana,Lucida,Helvetica,Arial; - font-size: 10pt; - font-weight: normal; - background:#FFFFFF; - } - - -td.yellow { - font-family: Verdana,Lucida,Helvetica,Arial; - font-size: 10pt; - background:#E1DD00; - } - -th.yellow { - white-space:nowrap; - font-family: Verdana,Lucida,Helvetica,Arial; - font-size: 9pt; - font-weight: 900; - background:#E1DD00; - background:#DCE4EF; - } - -th.yellows { - white-space:nowrap; - font-family: Verdana,Lucida,Helvetica,Arial; - font-size: 8pt; - font-weight: 600; - background:#E1DD00; - background:#DCE4EF; - } - - -H1 { +H1 +{ font-size: 14pt; - font-weight: 900; - } - - -H3,H2 { - font-size: 12pt; - font-weight: 900; - } - -div.firma { - border-style:none; - border-width:thin; - font-family: Verdana,Lucida,Helvetica,Arial; - font-size: 10pt; - font-weight: 900; - background-color:yellow; - width:627; - vertical-align:middle; - } - -div.DCE4EF { - border-style:none; - border-width:thin; - font-family: Verdana,Lucida,Helvetica,Arial; - font-size: 10pt; - font-weight: 900; - background:#DCE4EF; - width:627; - vertical-align:middle; - } - - - -.liste { - font-family: Arial,Lucida,Verdana,Helvetica; - FONT-SIZE: 9pt; - color:black; - } - -.mod { - color: #000; -} - - -.del { - color: #ee2222; } -.new { - color: #22bb22; -} +body.menue +{ + background-color: #D0DCE0; + font-size: 9pt; +} -INPUT, SELECT { +INPUT, SELECT +{ font-family: Courier New,Arial,TimesNewRoman; font-size: 9pt; border: 1px solid #ccc; - } - -.number { - text-align: right; } -.button_gr { - font-family: Arial,Helvetica; - font-size: 9pt; - background: #aaffaa; -} - -.button { - font-family: Arial,Helvetica; - font-size: 9pt; -} - -TD.black { - font-family: Lucida,Verdana,Helvetica,Arial; - font-size: 9pt; - color:black; - } - -TD.content { - font-family: Lucida,Verdana,Helvetica,Arial; - FONT-SIZE: 9pt; - color:lightgreen; - } - -TD.small { - text-align:left; - font-family: Lucida,Verdana,Helvetica,Arial; - font-size: 8pt; - font-weight: normal; - color:white; - background:blue - } - -BODY { background-color:#F5F5F5; - margin-left:5pt; - } - -BODY.v1 { +BODY +{ background-color:#F5F5F5; - padding:0pt; - margin:0pt; - margin-height=0pt; - margin-width=0pt; - } + margin-left:5pt; +} -ul {list-style-type:none} -ul.disc {list-style-type:disc} - -.frmField {background: #dedede;} - -table.tablesorter tbody td { +table.tablesorter tbody td +{ color: #3D3D3D; padding: 4px; background-color: #EEEEEE; vertical-align: top; } -table.tablesorter tbody tr.odd td { + +table.tablesorter tbody tr.odd td +{ background-color:lightgray; } -table.tablesorter thead tr th, table.tablesorter tfoot tr th { +table.tablesorter thead tr th, table.tablesorter tfoot tr th +{ background:#E1DD00; background:#DCE4EF; border: 1px solid #FFF; font-size: 8pt; padding: 4px; +} - +ul +{ + padding-left: 10px; +} diff --git a/wawi/home.php b/wawi/home.php new file mode 100644 index 000000000..b8896a3f2 --- /dev/null +++ b/wawi/home.php @@ -0,0 +1,41 @@ +, + * Andreas Oesterreicher and + * Karl Burkhart . + */ +require_once('../config/wawi.config.inc.php'); +require_once('auth.php'); +?> + + + + + WaWi Home + + + +


+


+


+


+
+ +

+ + \ No newline at end of file diff --git a/wawi/index.php b/wawi/index.php new file mode 100644 index 000000000..c2f2561ad --- /dev/null +++ b/wawi/index.php @@ -0,0 +1,46 @@ +, + * Andreas Oesterreicher and + * Karl Burkhart . + */ +require_once('../config/wawi.config.inc.php'); +require_once('auth.php'); + +$menu = isset($_GET['menu'])?$_GET['menu']:'menu.php'; +$content = isset($_GET['content'])?$_GET['content']:'home.php'; + +echo ' + + + + WaWi - Warenwirtschaft + + + + + + <body> + <h1>Error</h1> + <p>Ihr Browser unterstuetzt leider keine Frames</p> + </body> + + + +'; +?> \ No newline at end of file diff --git a/wawi/kontouebersicht.php b/wawi/kontouebersicht.php index 06ae2a0c2..a66e084ef 100644 --- a/wawi/kontouebersicht.php +++ b/wawi/kontouebersicht.php @@ -65,7 +65,7 @@ require_once('../include/sprache.class.php'); $id = ''; $konto = new wawi_konto(); $user=get_uid(); -echo 'USER: '.$user. '

'; + $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); @@ -81,9 +81,10 @@ if(isset($_GET['method'])) { if(!$rechte->isBerechtigt('wawi/konto',null,'su')) die('Keine Berechtigung für Update'); - + if(isset($_GET['id'])) { + echo '

Konto - Bearbeiten

'; //Update Konto $id = $_GET['id']; if($konto->load($id)) @@ -140,6 +141,7 @@ if(isset($_GET['method'])) if(!$rechte->isBerechtigt('wawi/konto',null,'sui')) die('Keine Berechtigung für Insert'); + echo '

Konto - Neu

'; // neues Konto anlegen echo "
"; echo ''; @@ -243,6 +245,7 @@ if(isset($_GET['method'])) if(!$rechte->isBerechtigt('wawi/konto',null,'su')) die('Keine Berechtigung für Update'); + echo '

Konto - Zusammenlegen

'; $konto = new wawi_konto(); if(isset($_POST['radio_1']) && isset($_POST['radio_2'])) @@ -393,8 +396,9 @@ else // Anzeige aller Konten if($konto->getAll(null, 'kontonr' )) { - echo 'neues Konto anlegen
'; - echo 'Konten zusammenlegen

'; + echo '

Konto - Übersicht

'; + //echo 'neues Konto anlegen
'; + //echo 'Konten zusammenlegen

'; echo '
'; echo ' @@ -437,11 +441,7 @@ else } echo '
'; - echo 'abmelden
'; - } } - - ?> \ No newline at end of file diff --git a/wawi/kostenstellenuebersicht.php b/wawi/kostenstellenuebersicht.php index 0264e291d..74d6ef354 100644 --- a/wawi/kostenstellenuebersicht.php +++ b/wawi/kostenstellenuebersicht.php @@ -21,13 +21,12 @@ */ require_once('../config/wawi.config.inc.php'); -require_once ('../include/organisationseinheit.class.php'); +require_once('../include/organisationseinheit.class.php'); require_once('auth.php'); require_once('../include/wawi_kostenstelle.class.php'); require_once('../include/wawi_konto.class.php'); require_once('../include/benutzerberechtigung.class.php'); ?> - @@ -63,7 +62,12 @@ require_once('../include/benutzerberechtigung.class.php'); $kostenstelle = new wawi_kostenstelle(); $user=get_uid(); -echo 'USER: '.$user. '

'; + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +if(!$rechte->isBerechtigt('wawi/kostenstelle')) + die('Sie haben keine Berechtigung für diese Seite'); if(isset($_GET['method'])) { @@ -72,7 +76,10 @@ if(isset($_GET['method'])) //wenn id gesetzt ist --> update ansonsten neue anlegen if(isset($_GET['id'])) { + echo '

Kostenstelle - Bearbeiten

'; $id = $_GET['id']; + if(!$rechte->isberechtigt('wawi/kostenstelle',null, 'su',$id)) + die('Sie haben keine Berechtigung für diese Kostenstelle'); //gültige ID if(is_numeric($id)) @@ -158,6 +165,11 @@ if(isset($_GET['method'])) } else { + echo '

Kostenstelle - Neu

'; + + if(!$rechte->isberechtigt('wawi/kostenstelle',null, 'sui')) + die('Sie haben keine Berechtigung zum Anlegen von Kostenstellen'); + //neue Anlegen $oe = new organisationseinheit(); $oe->getAll(); @@ -214,6 +226,9 @@ if(isset($_GET['method'])) { $id = (isset($_GET['id'])?$_GET['id']:null); + if(!$rechte->isberechtigt('wawi/kostenstelle',null, 'suid')) + die('Sie haben keine Berechtigung zum Löschen von Kostenstellen'); + if($kostenstelle->delete($id)) { echo 'Kostenstelle erfolgreich gelöscht.
'; @@ -231,9 +246,12 @@ if(isset($_GET['method'])) $kostenstelle = new wawi_kostenstelle(); $aktiv = ''; $ausgabe ="Kostenstelle wurde erfolgreich upgedated!"; - + if(isset($_GET['id'])) { + if(!$rechte->isberechtigt('wawi/kostenstelle',null, 'su',$_GET['id'])) + die('Sie haben keine Berechtigung zum Ändern der Kostenstelle'); + //Update $kostenstelle->load($_GET['id']); $kostenstelle->kostenstelle_id = $_GET['id']; @@ -257,6 +275,9 @@ if(isset($_GET['method'])) } else { + if(!$rechte->isberechtigt('wawi/kostenstelle',null, 'suid')) + die('Sie haben keine Berechtigung zum Anlegen von Kostenstellen'); + // neue Kostenstelle $kostenstelle->new = true; $kostenstelle->aktiv = true; @@ -283,6 +304,10 @@ if(isset($_GET['method'])) } else if ($_GET['method']=="allocate") { + if(!$rechte->isberechtigt('wawi/kostenstelle',null, 'su',$_GET['id'])) + die('Sie haben keine Berechtigung zum Ändern der Kostenstelle'); + + echo '

Kostenstelle - Konten zuordnen

'; $kostenstelle = new wawi_kostenstelle(); $konto = new wawi_konto(); @@ -338,8 +363,12 @@ if(isset($_GET['method'])) echo ' 
'; } - else if ($_GET['method']=="merge") + else if ($_GET['method']=="merge") { + if(!$rechte->isberechtigt('wawi/kostenstelle',null, 'suid')) + die('Sie haben keine Berechtigung zum Zusammenlegen von Kostenstellen'); + + echo '

Kostenstelle - Zusammenlegen

'; //Kostenstellen zusammenlegen $kostenstelle = new wawi_kostenstelle(); @@ -467,11 +496,14 @@ if(isset($_GET['method'])) } else { + echo '

Kostenstelle - Übersicht

'; + if(!$rechte->isberechtigt('wawi/kostenstelle',null, 's')) + die('Sie haben keine Berechtigung zum Anzeigen der Kostenstellen'); if($kostenstelle->getAll()) { - echo 'neue Kostenstelle anlegen
'; - echo 'Konten zusammenlegen

'; + //echo 'neue Kostenstelle anlegen
'; + //echo 'Konten zusammenlegen

'; echo ''; @@ -501,9 +533,7 @@ else echo ''; } - echo '
'; - echo 'abmelden
'; - + echo ''; } } diff --git a/wawi/login.php b/wawi/login.php index 3359be4c3..4f0b9fdc0 100644 --- a/wawi/login.php +++ b/wawi/login.php @@ -1,4 +1,24 @@ , + * Andreas Oesterreicher and + * Karl Burkhart . + */ require_once(dirname(__FILE__).'/../config/wawi.config.inc.php'); require_once(dirname(__FILE__).'/../include/wawi_konto.class.php'); require_once(dirname(__FILE__).'/../include/functions.inc.php'); @@ -18,6 +38,7 @@ if (isset($_POST['username'])) if (checkldapuser($username,$passwort)) { $_SESSION['user'] = $username; + $_SESSION['user_original'] = $username; if(isset($_SESSION['request_uri'])) $path = $_SESSION['request_uri']; else @@ -37,16 +58,13 @@ if (isset($_POST['username'])) - Login - Bestellwesen Technikum Wien V 2.0.0 - - + + Login - Bestellwesen Technikum Wien V 2.0.0 + - + +
+
diff --git a/wawi/logout.php b/wawi/logout.php index 914f5a513..c407f57f4 100644 --- a/wawi/logout.php +++ b/wawi/logout.php @@ -1,26 +1,52 @@ Sie werden sofort weitergeleitet! "; - - // header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/login.php'); +/* Copyright (C) 2010 FH Technikum Wien + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + * + * Authors: Christian Paminger , + * Andreas Oesterreicher and + * Karl Burkhart . + */ ?> - + -logout + + Logout + + - - + +
+ +
+
+Sie wurden erfolgreich ausgeloggt!!
Sie werden sofort weitergeleitet!
+
+
+Sollten Sie nicht weitergeleitet werden klicken Sie bitte hier +
diff --git a/wawi/menu.php b/wawi/menu.php new file mode 100644 index 000000000..245b9332d --- /dev/null +++ b/wawi/menu.php @@ -0,0 +1,190 @@ +, + * Andreas Oesterreicher and + * Karl Burkhart . + */ +require_once('../config/wawi.config.inc.php'); +require_once('auth.php'); +require_once('../include/functions.inc.php'); +require_once('../include/benutzerberechtigung.class.php'); +require_once('../include/'.EXT_FKT_PATH.'/wawi_menu_main.inc.php'); + +$user_original = get_original_uid(); + +$berechtigung_orig = new benutzerberechtigung(); +$berechtigung_orig->getBerechtigungen($user_original); + +if(isset($_GET['loginasuser']) && $berechtigung_orig->isBerechtigt('system/loginasuser')) +{ + login_as_user($_GET['uid']); +} + +$user = get_uid(); +$berechtigung = new benutzerberechtigung(); +$berechtigung->getBerechtigungen($user); + + +echo ' + + + + WaWi Menue + + + + +

WaWi Home

+ +
'; + +function checkpermission($permissions) +{ + global $berechtigung; + + $permission=false; + foreach ($permissions as $perm) + { + if($berechtigung->isBerechtigt($perm)) + { + $permission=true; + } + } + return $permission; +} + +//Menue generieren aus wawi_menu_main.inc.php +$umbruch=true; + +foreach($menu AS $m1) +{ + if (is_array($m1) && isset($m1['name'])) + { + if (isset($m1['permissions']) && !checkpermission($m1['permissions'])) + continue; + + if (isset($m1['link'])) + echo ''; + + if (isset($m1['name']) && !isset($m1['link']) ) + { + if($umbruch) + echo '
'; + echo ''.$m1['name'].'
'; + } + else + echo $m1['name']; + + if (isset($m1['link'])) + echo '
'; + echo '
'; + $umbruch=true; + foreach($m1 AS $m2) + { + if (is_array($m2) && isset($m2['name'])) + { + if (isset($m2['permissions']) && !checkpermission($m2['permissions'])) + continue; + echo "\n\t\t".'page go '; + if (isset($m2['link'])) + echo ''; + if (isset($m2['name'])) + echo $m2['name']; + if (isset($m2['link'])) + echo '
'; + $umbruch=false; + + foreach($m2 AS $m3) + { + if (is_array($m3) && isset($m3['name'])) + { + if (isset($m3['permissions']) && !checkpermission($m3['permissions'])) + continue; + echo "\n\t\t   ".'page go '; + if (isset($m3['link'])) + echo ''; + if (isset($m3['name'])) + echo $m3['name']; + if (isset($m3['link'])) + echo '
'; + $umbruch=false; + } + } + echo '
'; + } + } + + + echo '
'; + } +} + +// Logout Button +echo ' +
+Logout +
+

+

Login
+ + + + '; + +//Wenn der eingeloggte Benutzer nicht der original Benutzer ist, dann doe Original-UID anzeigen +if($user!=$user_original) +{ + echo ' + + + '; +} + +// Formular zum Wechseln des Benutzers anzeigen wenn berechtigt +if($berechtigung_orig->isBerechtigt('system/loginasuser')) +{ + echo ' + + + '; +} +echo ' +
Benutzer:'.$user.'
Benutzer Original:'.$user_original.'
Login as: + + + + +
+

+ + +'; + +?> \ No newline at end of file