mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Anpassungen fuer Abrechnungsaddon, Diverse Security Fixes
This commit is contained in:
@@ -53,7 +53,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragover
|
||||
<!-- **************** -->
|
||||
<!-- * MITARBEITER * -->
|
||||
<!-- **************** -->
|
||||
<vbox id="MitarbeiterEditor" persist="height">
|
||||
<vbox id="MitarbeiterEditor" persist="height" flex="1">
|
||||
<popupset>
|
||||
<menupopup id="mitarbeiter-tree-popup">
|
||||
<menuitem label="EMail versenden" oncommand="MitarbeiterSendMail();" id="mitarbeiter-tree-popup-mail" hidden="false"/>
|
||||
@@ -73,7 +73,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragover
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
</hbox>
|
||||
|
||||
<box style="height: 100px;">
|
||||
<!-- ************ -->
|
||||
<!-- * TREE * -->
|
||||
<!-- ************ -->
|
||||
@@ -82,7 +82,6 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragover
|
||||
onselect="MitarbeiterAuswahl();"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
style="margin:0px;"
|
||||
persist="hidden, height"
|
||||
context="mitarbeiter-tree-popup"
|
||||
>
|
||||
@@ -228,7 +227,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragover
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
|
||||
</box>
|
||||
<splitter collapse="after" persist="state">
|
||||
<grippy />
|
||||
</splitter>
|
||||
@@ -236,8 +235,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragover
|
||||
<!-- ************ -->
|
||||
<!-- * TABS * -->
|
||||
<!-- ************ -->
|
||||
<vbox flex="1" style="overflow:auto;margin:0px;" persist="height">
|
||||
<tabbox id="mitarbeiter-tabbox" flex="3" orient="vertical">
|
||||
<vbox persist="height" flex="1">
|
||||
<tabbox id="mitarbeiter-tabbox" orient="vertical" flex="1">
|
||||
<tabs orient="horizontal" id="mitarbeiter-tabs">
|
||||
<tab id="mitarbeiter-tab-detail" label="Stammdaten" />
|
||||
<tab id="mitarbeiter-tab-kontakt" label="Kontaktdaten" />
|
||||
|
||||
@@ -29,14 +29,30 @@ var MitarbeiterVertragLoadedPerson=null
|
||||
|
||||
function MitarbeiterVertragLoad(person_id)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
if(typeof(person_id)=='undefined' && MitarbeiterVertragLoadedPerson!='')
|
||||
{
|
||||
person_id = MitarbeiterVertragLoadedPerson;
|
||||
}
|
||||
if(person_id=='')
|
||||
return;
|
||||
|
||||
MitarbeiterVertragLoadedPerson=person_id;
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
// Aktiven Filter Eintrag holen
|
||||
var filterpopup = document.getElementById('mitarbeiter-vertrag-menupopup-filter');
|
||||
var e = filterpopup.getElementsByTagName("menuitem");
|
||||
var filter;
|
||||
for (var i = 0; i < e.length; i++)
|
||||
{
|
||||
if (e[i].getAttribute("checked"))
|
||||
filter=e[i].value
|
||||
}
|
||||
|
||||
// *** Vertrag ***
|
||||
var treevertrag = document.getElementById('mitarbeiter-vertrag-tree');
|
||||
url='<?php echo APP_ROOT;?>rdf/vertrag.rdf.php?person_id='+person_id+"&"+gettimestamp();
|
||||
url='<?php echo APP_ROOT;?>rdf/vertrag.rdf.php?person_id='+person_id+"&filter="+filter+"&"+gettimestamp();
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = treevertrag.database.GetDataSources();
|
||||
|
||||
@@ -58,9 +58,18 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<vbox flex="1">
|
||||
<vbox flex="1">
|
||||
<hbox>
|
||||
<description>Verträge</description>
|
||||
<spacer flex="1" />
|
||||
<button label="Neuen Vertrag erstellen" oncommand="MitarbeiterVertragAddVertrag()" />
|
||||
<toolbox flex="1">
|
||||
<toolbar>
|
||||
<toolbarbutton label="Filter " id="mitarbeiter-vertrag-filter" type="menu">
|
||||
<menupopup id="mitarbeiter-vertrag-menupopup-filter">
|
||||
<menuitem type="radio" value="alle" label="Alle Verträge anzeigen" oncommand="MitarbeiterVertragLoad()"/>
|
||||
<menuitem type="radio" value="offen" label="Offene Verträge anzeigen" checked="true" oncommand="MitarbeiterVertragLoad()"/>
|
||||
</menupopup>
|
||||
</toolbarbutton>
|
||||
<spacer flex="1" />
|
||||
<toolbarbutton id="mitarbeiter-vertrag-toolbarbutton-neu" tooltiptext="Neu" image="../skin/images/NeuDokument.png" label="Neuen Vertrag erstellen" oncommand="MitarbeiterVertragAddVertrag()" />
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
</hbox>
|
||||
<tree id="mitarbeiter-vertrag-tree" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/vertrag"
|
||||
@@ -84,6 +93,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<treecol id="mitarbeiter-vertrag-tree-vertragstyp" label="Vertragstyp" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/vertrag/rdf#vertragstyp_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-vertrag-tree-status" label="Status" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/vertrag/rdf#status" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-vertrag-tree-vertragstyp_kurzbz" label="VertragstypKurzbz" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
@@ -102,6 +115,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#bezeichnung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#betrag"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#vertragstyp_bezeichnung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#status"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#vertragstyp_kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#vertrag_id"/>
|
||||
</treerow>
|
||||
|
||||
@@ -231,5 +231,55 @@ class anwesenheit extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function loadAnwesenheitMitarbeiter($mitarbeiter_uid, $lehreinheit_id)
|
||||
{
|
||||
$qry = "SELECT
|
||||
datum, a.einheiten,
|
||||
(SELECT true FROM campus.tbl_anwesenheit
|
||||
WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id)." AND datum=a.datum) as anwesend,
|
||||
(SELECT stundensatz FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id)."
|
||||
AND mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid).") as stundensatz
|
||||
FROM
|
||||
(SELECT datum, count(stunde) as einheiten FROM lehre.tbl_stundenplan
|
||||
WHERE
|
||||
lehreinheit_id=".$this->db_add_param($lehreinheit_id)."
|
||||
AND mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)."
|
||||
GROUP by datum) as a
|
||||
";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
$this->anzahl_termine=0;
|
||||
$this->anzahl_anwesend=0;
|
||||
$this->anwesenheit = array();
|
||||
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$anwesend = $this->db_parse_bool($row->anwesend);
|
||||
$key = $lehreinheit_id.'/'.$row->datum;
|
||||
|
||||
$this->anwesenheit[$key]['anwesend'] = ($anwesend?true:false);
|
||||
$this->anwesenheit[$key]['lehreinheit_id'] = $lehreinheit_id;
|
||||
$this->anwesenheit[$key]['datum']=$row->datum;
|
||||
$this->anwesenheit[$key]['einheiten']=$row->einheiten;
|
||||
$this->anwesenheit[$key]['stundensatz']=$row->stundensatz;
|
||||
|
||||
$this->anzahl_termine++;
|
||||
if($anwesend)
|
||||
$this->anzahl_anwesend++;
|
||||
}
|
||||
if($this->anzahl_termine>0)
|
||||
{
|
||||
$this->prozent_anwesend=$this->anzahl_anwesend/$this->anzahl_termine*100;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -67,7 +67,7 @@ class benutzer extends person
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Kein Eintrag gefunden fuer $uid";
|
||||
$this->errormsg = "Benutzer nicht gefunden";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ class bisverwendung extends basis_db
|
||||
public $insertamum;
|
||||
public $insertvon;
|
||||
public $ext_id;
|
||||
public $dv_art;
|
||||
|
||||
public $ba1bez;
|
||||
public $ba2bez;
|
||||
@@ -369,5 +370,105 @@ class bisverwendung extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Verwendungen eines Mitarbeiters deren Datumsbereich das Datum einschliesst
|
||||
* @param $uid UID des Mitarbeiters
|
||||
* @param $monat Monat in dem die Verwendung liegen soll
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function getVerwendungDatum($uid, $datum)
|
||||
{
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
bis.tbl_bisverwendung
|
||||
WHERE
|
||||
mitarbeiter_uid=".$this->db_add_param($uid)."
|
||||
AND (beginn<=".$this->db_add_param($datum)." OR beginn is null)
|
||||
AND (ende>=".$this->db_add_param($datum)." OR ende is null)
|
||||
ORDER BY beginn;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new bisverwendung();
|
||||
|
||||
$obj->bisverwendung_id = $row->bisverwendung_id;
|
||||
$obj->ba1code = $row->ba1code;
|
||||
$obj->ba2code = $row->ba2code;
|
||||
$obj->beschausmasscode = $row->beschausmasscode;
|
||||
$obj->verwendung_code = $row->verwendung_code;
|
||||
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$obj->hauptberufcode = $row->hauptberufcode;
|
||||
$obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||
$obj->habilitation = $this->db_parse_bool($row->habilitation);
|
||||
$obj->beginn = $row->beginn;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->vertragsstunden = $row->vertragsstunden;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Verwendungen eines Mitarbeiters
|
||||
* @param $uid UID des Mitarbeiters
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function getLastVerwendung($uid)
|
||||
{
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
bis.tbl_bisverwendung
|
||||
WHERE
|
||||
mitarbeiter_uid=".$this->db_add_param($uid)."
|
||||
ORDER BY beginn DESC LIMIT 1;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->bisverwendung_id = $row->bisverwendung_id;
|
||||
$this->ba1code = $row->ba1code;
|
||||
$this->ba2code = $row->ba2code;
|
||||
$this->beschausmasscode = $row->beschausmasscode;
|
||||
$this->verwendung_code = $row->verwendung_code;
|
||||
$this->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$this->hauptberufcode = $row->hauptberufcode;
|
||||
$this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||
$this->habilitation = $this->db_parse_bool($row->habilitation);
|
||||
$this->beginn = $row->beginn;
|
||||
$this->ende = $row->ende;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->vertragsstunden = $row->vertragsstunden;
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -707,7 +707,7 @@ class studiensemester extends basis_db
|
||||
}
|
||||
}
|
||||
/**
|
||||
* untersucht das �bergebene datum in welchem semester es sich befindet
|
||||
* untersucht das uebergebene datum in welchem semester es sich befindet
|
||||
* @param type $datum
|
||||
* @return boolean
|
||||
*/
|
||||
@@ -715,7 +715,7 @@ class studiensemester extends basis_db
|
||||
{
|
||||
if($datum == '')
|
||||
{
|
||||
$this->errormsg = "Ungueltiges Datum �bergeben";
|
||||
$this->errormsg = "Ungueltiges Datum uebergeben";
|
||||
return false;
|
||||
}
|
||||
$qry = "SELECT * FROM public.tbl_studiensemester WHERE start <=".$this->db_add_param($datum, FHC_STRING)." AND ende >= ".$this->db_add_param($datum).';';
|
||||
|
||||
@@ -82,17 +82,24 @@ class vertrag extends basis_db
|
||||
* @param $person_id
|
||||
* @return boolean true wenn ok ,false im Fehlerfall
|
||||
*/
|
||||
public function loadVertrag($person_id)
|
||||
public function loadVertrag($person_id, $abgerechnet=null)
|
||||
{
|
||||
$qry = "SELECT
|
||||
*,
|
||||
tbl_vertrag.bezeichnung as bezeichnung,
|
||||
tbl_vertragstyp.bezeichnung as vertragstyp_bezeichnung
|
||||
tbl_vertragstyp.bezeichnung as vertragstyp_bezeichnung,
|
||||
(SELECT bezeichnung FROM lehre.tbl_vertragsstatus JOIN lehre.tbl_vertrag_vertragsstatus USING(vertragsstatus_kurzbz)
|
||||
WHERE vertrag_id=tbl_vertrag.vertrag_id ORDER BY datum desc limit 1) as status
|
||||
FROM
|
||||
lehre.tbl_vertrag
|
||||
LEFT JOIN lehre.tbl_vertragstyp USING(vertragstyp_kurzbz)
|
||||
WHERE person_id=".$this->db_add_param($person_id);
|
||||
|
||||
if($abgerechnet===true)
|
||||
$qry.=" AND EXISTS (SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=tbl_vertrag.vertrag_id AND vertragsstatus_kurzbz='abgerechnet')";
|
||||
if($abgerechnet===false)
|
||||
$qry.=" AND NOT EXISTS (SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=tbl_vertrag.vertrag_id AND vertragsstatus_kurzbz='abgerechnet')";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
@@ -108,6 +115,7 @@ class vertrag extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->status = $row->status;
|
||||
|
||||
$obj->vertragstyp_bezeichnung = $row->vertragstyp_bezeichnung;
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ $qry = "SELECT le.lehreinheit_id, le.lehrveranstaltung_id, lv.lvnr, lv.bezeichnu
|
||||
. "FROM lehre.tbl_lehreinheit le "
|
||||
. "JOIN lehre.tbl_lehrveranstaltung lv ON lv.lehrveranstaltung_id = le.lehrveranstaltung_id "
|
||||
. "JOIN public.tbl_studiengang stg ON stg.studiengang_kz = lv.studiengang_kz "
|
||||
. "JOIN lehre.tbl_stundenplan sp ON (sp.unr = le.unr AND sp.studiengang_kz = " . $db->db_add_param($studiengang) . ") "
|
||||
. "JOIN lehre.tbl_stundenplan sp ON (sp.lehreinheit_id=le.lehreinheit_id) "
|
||||
. "JOIN lehre.tbl_stunde stu ON stu.stunde = sp.stunde "
|
||||
. "WHERE stg.studiengang_kz = " . $db->db_add_param($studiengang) . " ";
|
||||
|
||||
@@ -180,4 +180,4 @@ foreach($data as $lehreinheit_id => $value)
|
||||
|
||||
echo "</anwesenheitslisten>";
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
+11
-2
@@ -37,8 +37,16 @@ if(isset($_GET['person_id']))
|
||||
{
|
||||
$person_id=$_GET['person_id'];
|
||||
$vertrag = new vertrag();
|
||||
if(!$vertrag->loadVertrag($person_id))
|
||||
die('Fehlgeschlagen:'.$vertrag->errormsg);
|
||||
if(isset($_GET['filter']) && $_GET['filter']=='offen')
|
||||
{
|
||||
if(!$vertrag->loadVertrag($person_id, false))
|
||||
die('Fehlgeschlagen:'.$vertrag->errormsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!$vertrag->loadVertrag($person_id))
|
||||
die('Fehlgeschlagen:'.$vertrag->errormsg);
|
||||
}
|
||||
}
|
||||
elseif(isset($_GET['vertrag_id']))
|
||||
{
|
||||
@@ -62,6 +70,7 @@ foreach($vertrag->result as $row)
|
||||
$oRdf->obj[$i]->setAttribut('vertragstyp_kurzbz',$row->vertragstyp_kurzbz,true);
|
||||
$oRdf->obj[$i]->setAttribut('vertragstyp_bezeichnung',$row->vertragstyp_bezeichnung,true);
|
||||
$oRdf->obj[$i]->setAttribut('betrag',$row->betrag,true);
|
||||
$oRdf->obj[$i]->setAttribut('status',$row->status,true);
|
||||
|
||||
$oRdf->addSequence($row->vertrag_id);
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ foreach($vertrag->result as $row)
|
||||
}
|
||||
$i=$oRdf->newObjekt($key);
|
||||
$oRdf->obj[$i]->setAttribut('type',$row->type,true);
|
||||
$oRdf->obj[$i]->setAttribut('betrag',number_format($row->betrag,2),true);
|
||||
$oRdf->obj[$i]->setAttribut('betrag',number_format($row->betrag,2,'.',''),true);
|
||||
$oRdf->obj[$i]->setAttribut('studiensemester_kurzbz',$row->studiensemester_kurzbz,true);
|
||||
$oRdf->obj[$i]->setAttribut('lehreinheit_id',$row->lehreinheit_id,true);
|
||||
$oRdf->obj[$i]->setAttribut('pruefung_id',$row->pruefung_id,true);
|
||||
|
||||
@@ -2108,6 +2108,20 @@ if(!$result = @$db->db_query("SELECT sort FROM lehre.tbl_studienplan_lehrveranst
|
||||
echo ' lehre.tbl_studienplan_lehrveranstaltung: Spalte sort hinzugefuegt!<br>';
|
||||
}
|
||||
|
||||
// Spalte sort in lehre.tbl_studienplan_lehrveranstaltung
|
||||
if($result = $db->db_query("select * from information_schema.key_column_usage where constraint_name='fk_vertragsstatus_vertrag_vertragsstatus'"))
|
||||
{
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
$qry = "ALTER TABLE lehre.tbl_vertrag_vertragsstatus ADD CONSTRAINT fk_vertragsstatus_vertrag_vertragsstatus FOREIGN KEY (vertragsstatus_kurzbz) REFERENCES lehre.tbl_vertragsstatus(vertragsstatus_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>lehre.tbl_vertrag_vertragsstatus: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo ' lehre.tbl_vertrag_vertragsstatus: fehlenden FK hinzugefuegt!<br>';
|
||||
}
|
||||
}
|
||||
|
||||
// Spalte sort in fue.tbl_aktivitaet
|
||||
if(!$result = @$db->db_query("SELECT sort FROM fue.tbl_aktivitaet LIMIT 1;"))
|
||||
{
|
||||
@@ -2517,6 +2531,7 @@ $berechtigungen = array(
|
||||
array('system/loginasuser','Berechtigung zum Einloggen als anderer User'),
|
||||
array('user','Normale User ohne besonere Rechte'),
|
||||
array('veranstaltung','Berechtigungen fuer Veranstaltungen wie Jahresplan'),
|
||||
array('vertrag/mitarbeiter','Verwalten von Vertraegen'),
|
||||
array('vertrag/typen','Verwalten von Vertragstypen'),
|
||||
array('wawi/berichte','Alle Berichte anzeigen'),
|
||||
array('wawi/bestellung','Bestellungen verwalten'),
|
||||
|
||||
Reference in New Issue
Block a user