mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-25 00:24:35 +00:00
WaWi:
- Kostenstellenberechtigung - Grundgerüst - Login als anderer User - Überarbeitung Stylesheet
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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...
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
/* 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 <[email protected]>,
|
||||
* Andreas Oesterreicher <[email protected]> and
|
||||
* Karl Burkhart <[email protected]
|
||||
*/
|
||||
/**
|
||||
* Enthaelt das Array fuer die Menuepunkt der WaWi-Seite
|
||||
*/
|
||||
$menu=array
|
||||
(
|
||||
'Administration'=> 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'),
|
||||
),
|
||||
)
|
||||
);
|
||||
?>
|
||||
Reference in New Issue
Block a user