diff --git a/include/berechtigung.class.php b/include/berechtigung.class.php index ab224be4d..f4c55e576 100644 --- a/include/berechtigung.class.php +++ b/include/berechtigung.class.php @@ -29,6 +29,10 @@ class berechtigung extends basis_db public $rolle_kurzbz; public $beschreibung; public $berechtigung_kurzbz; + public $art; + public $anmerkung; + public $insertamum; + public $insertvon; /** * Konstruktor @@ -79,7 +83,7 @@ class berechtigung extends basis_db { if(is_null($new)) $new = $this->new; - + if($new) { $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES(". @@ -103,14 +107,38 @@ class berechtigung extends basis_db return false; } } + + /** + * Loescht ein Recht + * + * @param $berechtigung_kurzbz + */ + public function delete($berechtigung_kurzbz) + { + $qry = "DELETE FROM system.tbl_berechtigung WHERE berechtigung_kurzbz=".$this->db_add_param($berechtigung_kurzbz).";"; + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Löschen des Rechts:'.$this->db_last_error(); + return false; + } + } /** * Holt alle BerechtigungsRollen * @return true wenn erfolgreich, false im Fehlerfall */ - public function getRollen() + public function getRollen($order = null) { $qry = 'SELECT * FROM system.tbl_rolle'; + if ($order != '') + { + $qry .= " ORDER BY $order"; + } if($this->db_query($qry)) { @@ -152,6 +180,9 @@ class berechtigung extends basis_db $obj->rolle_kurzbz = $row->rolle_kurzbz; $obj->art = $row->art; $obj->beschreibung = $row->beschreibung; + $obj->anmerkung = $row->anmerkung; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; $this->result[] = $obj; } @@ -252,15 +283,22 @@ class berechtigung extends basis_db if($this->db_num_rows()>0) { //Update - $qry = "UPDATE system.tbl_rolleberechtigung SET art=".$this->db_add_param($this->art)." WHERE rolle_kurzbz=".$this->db_add_param($this->rolle_kurzbz)." AND berechtigung_kurzbz=".$this->db_add_param($this->berechtigung_kurzbz).";"; + $qry = "UPDATE system.tbl_rolleberechtigung SET art=".$this->db_add_param($this->art).", + anmerkung=".$this->db_add_param($this->anmerkung).", + insertamum=".$this->db_add_param($this->insertamum).", + insertvon=".$this->db_add_param($this->insertvon)." + WHERE rolle_kurzbz=".$this->db_add_param($this->rolle_kurzbz)." AND berechtigung_kurzbz=".$this->db_add_param($this->berechtigung_kurzbz).";"; } else { //Insert - $qry = "INSERT INTO system.tbl_rolleberechtigung (rolle_kurzbz, berechtigung_kurzbz, art) VALUES(". + $qry = "INSERT INTO system.tbl_rolleberechtigung (rolle_kurzbz, berechtigung_kurzbz, art, anmerkung, insertamum, insertvon) VALUES(". $this->db_add_param($this->rolle_kurzbz).",". $this->db_add_param($this->berechtigung_kurzbz).",". - $this->db_add_param($this->art).");"; + $this->db_add_param($this->art).",". + $this->db_add_param($this->anmerkung).",". + $this->db_add_param($this->insertamum).",". + $this->db_add_param($this->insertvon).");"; } if($this->db_query($qry)) diff --git a/include/organisationseinheit.class.php b/include/organisationseinheit.class.php index 1a2e0ca16..78b0e40c3 100644 --- a/include/organisationseinheit.class.php +++ b/include/organisationseinheit.class.php @@ -650,11 +650,14 @@ class organisationseinheit extends basis_db LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') OR LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') + OR + LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') )'; foreach($searchItem as $value) { $qry.=' OR (LOWER(oe_kurzbz)=LOWER('.$this->db_add_param($value).')) - OR (LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))'; + OR (LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\')) + OR (LOWER(organisationseinheittyp_kurzbz||bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))'; } $qry.= ' ORDER BY organisationseinheittyp_kurzbz, bezeichnung;'; diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 834183c2c..7d24f16f3 100644 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -33,7 +33,7 @@ $menu=array 'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'), /* Leerzeile */'emptyrow1'=>array('name'=>'', 'link'=>'#empty', 'target'=>'main'), 'Verplanungsuebersicht'=>array('name'=>'Verplanungsübersicht', 'link'=>'lehre/check/verplanungsuebersicht.php', 'target'=>'main'), - 'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('reihungstest')), + 'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('lehre/reihungstest')), 'LV-Planung'=>array ( 'name'=>'LV-Planung', 'permissions'=>array('admin','lv-plan','support'), @@ -109,7 +109,7 @@ $menu=array ), 'Benutzer'=>array ( - 'name'=>'Benutzer','permissions'=>array('admin','lv-plan','support'), + 'name'=>'Benutzer','permissions'=>array('admin','lv-plan','support','mitarbeiter'), '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')), @@ -132,14 +132,15 @@ $menu=array 'name'=>'Stammdaten', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('admin','lv-plan','support','basis/berechtigung','basis/variable','basis/studiengang','basis/ort','basis/firma','basis/fhausweis','basis/infoscreen','basis/organisationseinheit'), 'image'=>'vilesci_stammdaten.png', 'link'=>'left.php?categorie=Stammdaten', 'target'=>'nav', 'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')), - 'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('admin','assistenz')), + 'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('lehre/reihungstest')), - 'User'=>array + 'Rechtemanagement'=>array ( - 'name'=>'User', 'permissions'=>array('basis/variable','basis/berechtigung'), + 'name'=>'Rechtemanagement', 'permissions'=>array('basis/berechtigung','mitarbeiter'), 'Berechtigungen'=>array('name'=>'Berechtigungen', 'link'=>'stammdaten/benutzerberechtigung_frameset.html', 'target'=>'main','permissions'=>array('basis/berechtigung')), + 'Rechte'=>array('name'=>'Rechte', 'link'=>'stammdaten/berechtigungen.php', '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')), + 'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main', 'permissions'=>array('mitarbeiter')), ), 'Personal'=>array ( @@ -155,7 +156,7 @@ $menu=array 'Statistik'=>array('name'=>'Statistik', 'link'=>'stammdaten/statistik_frameset.html', 'target'=>'main','permissions'=>array('basis/statistik')), 'Ampel'=>array('name'=>'Ampel', 'link'=>'stammdaten/ampel_frameset.html', 'target'=>'main','permissions'=>array('basis/ampel')), 'Infoscreen'=>array('name'=>'Infoscreen', 'link'=>'stammdaten/infoscreen_frameset.html', 'target'=>'main','permissions'=>array('basis/infoscreen')), - 'Ferien'=>array('name'=>'Ferien', 'link'=>'lehre/ferienverwaltung.php', 'target'=>'main','permissions'=>array('admin')), + 'Ferien'=>array('name'=>'Ferien', 'link'=>'lehre/ferienverwaltung.php', 'target'=>'main','permissions'=>array('basis/ferien')), 'Service'=>array('name'=>'Service', 'link'=>'stammdaten/service_frameset.html', 'target'=>'main','permissions'=>array('basis/service')), 'Dokumentvorlagen'=>array('name'=>'Dokumentvorlagen', 'link'=>'stammdaten/dokumentvorlagen_verwaltung.php', 'target'=>'main','permissions'=>array('basis/dokumente')), 'GSProgramm'=>array('name'=>'GSProgramm', 'link'=>'stammdaten/gsprogramm.php', 'target'=>'main','permissions'=>array('inout/uebersicht')), diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php index 9fda09bba..ed60aeddf 100644 --- a/system/dbupdate_3.4.php +++ b/system/dbupdate_3.4.php @@ -39,6 +39,7 @@ require_once('dbupdate_3.4/27107_vilesci_erfassung_abwesenheiten_reinigung.php') require_once('dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php'); require_once('dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php'); require_once('dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php'); +require_once('dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php'); // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -326,7 +327,7 @@ $tabellen=array( "system.tbl_phrase" => array("phrase_id","app","phrase","insertamum","insertvon","category"), "system.tbl_phrasentext" => array("phrasentext_id","phrase_id","sprache","orgeinheit_kurzbz","orgform_kurzbz","text","description","insertamum","insertvon"), "system.tbl_rolle" => array("rolle_kurzbz","beschreibung"), - "system.tbl_rolleberechtigung" => array("berechtigung_kurzbz","rolle_kurzbz","art"), + "system.tbl_rolleberechtigung" => array("berechtigung_kurzbz","rolle_kurzbz","art","anmerkung","insertamum","insertvon"), "system.tbl_verarbeitungstaetigkeit" => array("taetigkeit_kurzbz", "bezeichnung", "bezeichnung_mehrsprachig","aktiv"), "system.tbl_webservicelog" => array("webservicelog_id","webservicetyp_kurzbz","request_id","beschreibung","request_data","execute_time","execute_user"), "system.tbl_webservicerecht" => array("webservicerecht_id","berechtigung_kurzbz","methode","attribut","insertamum","insertvon","updateamum","updatevon","klasse"), diff --git a/system/dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php b/system/dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php new file mode 100644 index 000000000..0d7b43b8f --- /dev/null +++ b/system/dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php @@ -0,0 +1,15 @@ +db_query("SELECT anmerkung FROM system.tbl_rolleberechtigung LIMIT 1")) +{ + $qry = "ALTER TABLE system.tbl_rolleberechtigung ADD COLUMN anmerkung varchar(256); + ALTER TABLE system.tbl_rolleberechtigung ADD COLUMN insertamum timestamp DEFAULT now(); + ALTER TABLE system.tbl_rolleberechtigung ADD COLUMN insertvon varchar(32);"; + + if(!$db->db_query($qry)) + echo 'system.tbl_rolleberechtigung '.$db->db_last_error().'
'; + else + echo '
Spalten anmerkung, insertamum, insertvon in system.tbl_rolleberechtigung hinzugefügt'; +} diff --git a/vilesci/stammdaten/benutzerberechtigung_autocomplete.php b/vilesci/stammdaten/benutzerberechtigung_autocomplete.php index a888a5b67..774828c19 100644 --- a/vilesci/stammdaten/benutzerberechtigung_autocomplete.php +++ b/vilesci/stammdaten/benutzerberechtigung_autocomplete.php @@ -98,17 +98,29 @@ if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'oe_kurzbz' if(is_array($oe->result) && count($oe->result) > 0) { - $result_obj = array(); + $resultArray = array(); foreach($oe->result as $row) { if($row->aktiv==true) { - $item['oe_kurzbz'] = html_entity_decode($row->oe_kurzbz); - $item['organisationseinheittyp_kurzbz'] = html_entity_decode($row->organisationseinheittyp_kurzbz); - $item['bezeichnung'] = html_entity_decode($row->bezeichnung); - $result_obj[] = $item; + $resultArray[html_entity_decode($row->oe_kurzbz)] = array('organisationseinheittyp_kurzbz' => html_entity_decode($row->organisationseinheittyp_kurzbz),'bezeichnung' => html_entity_decode($row->bezeichnung)); } } + + usort($resultArray, function($a, $b) + { + return $a['organisationseinheittyp_kurzbz'] <=> $b['organisationseinheittyp_kurzbz']; + }); + + $result_obj = array(); + foreach($resultArray as $key => $value) + { + $item['oe_kurzbz'] = $key; + $item['organisationseinheittyp_kurzbz'] = $value['organisationseinheittyp_kurzbz']; + $item['bezeichnung'] = $value['bezeichnung']; + $result_obj[] = $item; + } + echo json_encode($result_obj); } exit(); diff --git a/vilesci/stammdaten/benutzerberechtigung_details.php b/vilesci/stammdaten/benutzerberechtigung_details.php index 4cee06950..b230d702f 100644 --- a/vilesci/stammdaten/benutzerberechtigung_details.php +++ b/vilesci/stammdaten/benutzerberechtigung_details.php @@ -479,12 +479,11 @@ if(isset($_POST['copy']) && $_POST['copy'] != '') if (!$b = new berechtigung()) die($b->errormsg); -$b->getRollen(); +$b->getRollen('rolle_kurzbz'); foreach($b->result as $berechtigung) { $rolle_arr[$berechtigung->rolle_kurzbz] = $berechtigung->beschreibung; } -ksort($rolle_arr, SORT_STRING | SORT_FLAG_CASE); $b->getBerechtigungen(); foreach($b->result as $berechtigung) @@ -600,7 +599,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) } if (count($bn) > 0) { - $htmlstr .= "

Rechte Details

"; + $htmlstr .= "

Rechte Detailaufschlüsselung

"; } } elseif(isset($_REQUEST['funktion_kurzbz']) && $_REQUEST['funktion_kurzbz']!='') diff --git a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php index ecc9c6e09..0be268b70 100644 --- a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php +++ b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php @@ -182,7 +182,7 @@ $(document).ready(function() -

Benutzerberechtigungen Übersicht

'; +

Berechtigungen Übersicht

'; if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -229,7 +229,7 @@ $htmlstr='

- Berechtigung: + Rechte: '; $rollen = new berechtigung(); - $rollen->getRollen(); + $rollen->getRollen('rolle_kurzbz'); foreach($rollen->result as $rolle) { if ($rolle_kurzbz == $rolle->rolle_kurzbz) diff --git a/vilesci/stammdaten/berechtigungen.php b/vilesci/stammdaten/berechtigungen.php new file mode 100644 index 000000000..54ff60e27 --- /dev/null +++ b/vilesci/stammdaten/berechtigungen.php @@ -0,0 +1,218 @@ + + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/berechtigung.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); + +$user = get_uid(); + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +if(!$rechte->isBerechtigt('basis/berechtigung')) + die($rechte->errormsg); + +$berechtigung_kurzbz = filter_input(INPUT_POST, 'berechtigung_kurzbz'); +$beschreibung = filter_input(INPUT_POST, 'beschreibung'); +$kurzbz = filter_input(INPUT_GET, 'kurzbz'); +$kurzbzPost = filter_input(INPUT_POST, 'kurzbz_post'); +$edit = filter_input(INPUT_GET, 'edit'); +$save = filter_input(INPUT_POST, 'save'); +$delete = filter_input(INPUT_GET, 'delete'); +$saveNew = filter_input(INPUT_POST, 'saveNew'); + +//$delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN); +?> + + + Rechte Übersicht + + + + + + + + + + +

Rechte Übersicht

+ + berechtigung_kurzbz = $kurzbzPost; + $berechtigung->beschreibung = $beschreibung; + $berechtigung->new = true; + + if($berechtigung->save()) + { + echo 'Recht '.$kurzbzPost.' wurde angelegt

'; + } + else + { + echo 'Fehler beim Speichern:'.$berechtigung->errormsg.'

'; + } + } + else + { + echo 'Zum Speichern der Daten muss die Kurzbz und die Beschreibung angegeben werden

'; + } + } + + if(isset($delete) && isset($kurzbz)) + { + $berechtigung = new berechtigung(); + if($berechtigung->delete($kurzbz)) + echo 'Das Recht "'.$kurzbz.'" wurde erfolgreich gelöscht

'; + else + echo 'Fehler beim Löschen des Rechts:'.$berechtigung->errormsg.'

'; + } + + if(isset($save)) + { + $berechtigung = new berechtigung(); + $berechtigung->load($berechtigung_kurzbz); + $berechtigung->beschreibung = $beschreibung; + if (!$berechtigung->save(false)) + echo 'Fehler beim Speichern:'.$berechtigung->errormsg.'

'; + } + + //Tabelle mit Rollen anzeigen + $berechtigung = new berechtigung(); + $berechtigung->getBerechtigungen(); + + echo ''; + echo ' + + + + + + + + + '; + + foreach($berechtigung->result as $recht) + { + if($edit && $recht->berechtigung_kurzbz == $kurzbz) + { + echo ' + + + + '; + } + else + { + echo ' + + + + + + '; + } + } + echo ' + +
KurzbzBeschreibungAktion
+ '.$recht->berechtigung_kurzbz.' + + + '.(256 - strlen($recht->beschreibung)).' + + + +
'.$recht->berechtigung_kurzbz.''.$recht->beschreibung.' + + Bearbeiten + + + + Recht löschen + +
+ +
'; + + echo '
+

Neues Recht einfügen

+ Kurzbz: + Beschreibung: + 256 +   +
+
+ +'; + ?> diff --git a/vilesci/stammdaten/berechtigungrolle.php b/vilesci/stammdaten/berechtigungrolle.php index e33057d59..7e87a4901 100644 --- a/vilesci/stammdaten/berechtigungrolle.php +++ b/vilesci/stammdaten/berechtigungrolle.php @@ -35,10 +35,12 @@ if(!$rechte->isBerechtigt('basis/berechtigung')) $rolle_kurzbz = filter_input(INPUT_GET, 'rolle_kurzbz'); $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN); +$copy = filter_input(INPUT_POST, 'copy'); +$vergleich = filter_input(INPUT_GET, 'vergleich'); ?> - Berechtigungen Uebersicht + Rollen Uebersicht @@ -54,15 +56,37 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN); $("#t1").tablesorter( { sortList: [[0,0]], - widgets: ["zebra"], - headers: {3:{sorter:false}} + widgets: ["zebra", "filter", "stickyHeaders"], + headers: {3:{filter:false, sorter:false}}, + widgetOptions : {filter_saveFilters : true} }); $("#t2").tablesorter( { sortList: [[0,0]], - widgets: ["zebra"], - headers: {2:{sorter:false}} + widgets: ["zebra", "filter", "stickyHeaders"], + headers: {2:{filter:false, sorter:false}}, + widgetOptions : {filter_saveFilters : true} + }); + $("#t3").tablesorter( + { + sortList: [], + widgets: ["zebra"] + }); + $("#t4").tablesorter( + { + sortList: [], + widgets: ["zebra"] + }); + $('.resetsaved').click(function() + { + $(".tablesorter").trigger("filterReset"); + window.location(""); + return false; + }); + $("textarea").keyup(function() + { + $(this).siblings("span").text((256 - $(this).val().length)); }); // Breite des Autocompletes korrigieren um das Springen zu verhindern @@ -93,16 +117,15 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN); $(this).val(ui.item.berechtigung_kurzbz); } }); - }); - function confdel() - { - var value=prompt('Achtung! Sie sind dabei eine Rolle zu löschen. Die Zuordnungen gehen dadurch verloren! Um diese Rolle wirklich zu Löschen tippen Sie "LÖSCHEN" in das untenstehende Feld.'); - if(value=='LÖSCHEN') - return true; - else - return false; - } + $(".copyButton").click(function(event) + { + event.preventDefault(); + $(this).siblings().show(); + $(this).hide(); + }); + }); + function validateNewData() { if($('#berechtigung_neu_autocomplete').val() == '') @@ -138,14 +161,16 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN); -

Berechtigung - Rolle -

+ Berechtigungen der Rolle "'.$rolle_kurzbz.'"'; $berechtigung_kurzbz = filter_input(INPUT_GET, 'berechtigung_kurzbz'); $art = filter_input(INPUT_GET, 'art'); $save = filter_input(INPUT_GET, 'save'); + $anmerkung = filter_input(INPUT_GET, 'anmerkung'); if(isset($save)) { @@ -155,10 +180,17 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN); $berechtigung->rolle_kurzbz = $rolle_kurzbz; $berechtigung->berechtigung_kurzbz = $berechtigung_kurzbz; $berechtigung->art = $art; + $berechtigung->anmerkung = $anmerkung; + $berechtigung->insertamum = date('Y-m-d H:i:s'); + $berechtigung->insertvon = $user; if($berechtigung->saveRolleBerechtigung()): ?> Zuteilung gespeichert - + Fehler beim Speichern der Zuteilung: errormsg ?> - Zurück zur Rollenübersicht + Zurück zur Rollen Übersicht

getBerechtigungen(); ?>
- +
+ - - getRolleBerechtigung($rolle_kurzbz); - $berechtigungen_arr = array(); - foreach ($berechtigungen->result as $row) - { - $berechtigungen_arr[] = $row->berechtigung_kurzbz; - } - foreach ($berechtigung->result as $row): ?> - - - - + + +
- + - + + @@ -224,9 +262,15 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN); + + @@ -235,8 +279,166 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
Kurzbz Art BeschreibungAnmerkung
berechtigung_kurzbz ?> art ?> beschreibung ?>anmerkung ?> - - entfernen + + Bearbeiten + + + + Recht entfernen
Rollen vergleichen'; + $rolle1 = filter_input(INPUT_GET, 'rolle_kurzbz1'); + $rolle2 = filter_input(INPUT_GET, 'rolle_kurzbz2'); + ?> + + + Zurück zur Rollen Übersicht + +

+ + getRolleBerechtigung($rolle1); + foreach ($rollen->result AS $recht) + { + $rollen1Arr[$recht->berechtigung_kurzbz] = $recht->art; + } + $rollen = new berechtigung(); + $rollen->getRolleBerechtigung($rolle2); + foreach ($rollen->result AS $recht) + { + $rollen2Arr[$recht->berechtigung_kurzbz] = $recht->art; + } + $rollenGesamt = array_merge($rollen1Arr,$rollen2Arr); + ksort($rollenGesamt); + + echo '
+
+
+ Rolle 1: + '; + if (isset($rolle1)) + { + echo ' + + + + + + + '; + + foreach ($rollenGesamt AS $recht => $art) + { + if (array_key_exists($recht, $rollen1Arr)) + { + if ($art != $rollen1Arr[$recht]) + { + echo ' + + + '; + } + else + { + echo ' + + + '; + } + + } + else + { + echo ' + + + '; + } + } + echo ' + +
KurzbzArt
'.$recht.''.$rollen1Arr[$recht].'
'.$recht.''.$art.'
  
'; + } + echo ' +
+
+ Rolle 2: + '; + echo ''; + if (isset($rolle2)) + { + echo ' + + + + + + + '; + foreach ($rollenGesamt AS $recht => $art) + { + if (array_key_exists($recht, $rollen2Arr)) + { + if ($art != $rollen2Arr[$recht]) + { + echo ' + + + '; + } + else + { + echo ' + + + '; + } + } + else + { + echo ' + + + '; + } + } + echo ' + +
KurzbzArt
'.$recht.''.$rollen2Arr[$recht].'
'.$recht.''.$art.'
  
'; + } + echo ' +
+
+
'; + } else { + echo '

Rollen Übersicht

'; $save = filter_input(INPUT_POST, 'save'); $edit = filter_input(INPUT_POST, 'edit'); @@ -273,11 +475,56 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN); { $berechtigung = new berechtigung(); if($berechtigung->deleteRolle($kurzbz)) - echo 'Rolle wurde entfernt'; + echo 'Die Rolle '.$kurzbz.' wurde erfolgreich gelöscht'; else echo 'Fehler beim Löschen:'.$berechtigung->errormsg; } + if(isset($copy)) + { + $kurzbz = filter_input(INPUT_POST, 'kurzbz'); + $copyName = filter_input(INPUT_POST, 'copy_name'); + $beschreibung = filter_input(INPUT_POST, 'beschreibung'); + + if(isset($kurzbz)) + { + $berechtigung = new berechtigung(); + $berechtigung->rolle_kurzbz = $copyName; + $berechtigung->beschreibung = $beschreibung; + $berechtigung->new = true; + + if($berechtigung->saveRolle()) + { + $rollenrechte = new berechtigung(); + $rollenrechte->getRolleBerechtigung($kurzbz); + foreach($rollenrechte->result as $rollenrecht) + { + $newRolleRecht = new berechtigung(); + $newRolleRecht->rolle_kurzbz = $copyName; + $newRolleRecht->berechtigung_kurzbz = $rollenrecht->berechtigung_kurzbz; + $newRolleRecht->art = $rollenrecht->art; + $newRolleRecht->anmerkung = $rollenrecht->anmerkung; + $newRolleRecht->insertamum = date('Y-m-d H:i:s'); + $newRolleRecht->insertvon = $user; + if(!$newRolleRecht->saveRolleBerechtigung()) + { + echo 'Fehler beim Speichern des Rechts '.$rollenrecht->berechtigung_kurzbz.' zur Rolle '.$rollenrecht->rolle_kurzbz; + break; + } + } + echo 'Rolle erfolgreich kopiert'; + } + else + { + echo 'Fehler beim kopieren der Rolle '.$kurzbz.':'.$berechtigung->errormsg; + } + } + else + { + echo 'Zum Speichern der Daten muss die kurzbz und die Beschreibung angegeben werden'; + } + } + if(isset($edit)) { $beschreibung = filter_input(INPUT_POST, 'beschreibung'); @@ -292,13 +539,18 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN); $berechtigung = new berechtigung(); $berechtigung->getRollen(); ?> -

Rollen:

+

+ + Rollen vergleichen + +

+ - + @@ -325,7 +577,18 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN); + @@ -341,6 +604,7 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN); Kurzbz: Beschreibung: + beschreibung)) ?>  Neue Rolle anlegen @@ -348,6 +612,7 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN); Kurzbz: Beschreibung: + 256  
Kurzbz BeschreibungAktionAktion
- +
+ + + + +
+
+ Rolle kopieren + +
+ Rolle löschen