From d4653bc89fadc01b4560b1b10a3f119e59689d7e Mon Sep 17 00:00:00 2001 From: Manfred Date: Mon, 15 May 2023 12:10:25 +0200 Subject: [PATCH] Neue Rechte anlegen und bestehende bearbeiten --- include/berechtigung.class.php | 26 +- include/tw/vilesci_menu_main.inc.php | 2 + .../benutzerberechtigung_details.php | 3 +- .../benutzerberechtigung_uebersicht.php | 2 +- vilesci/stammdaten/berechtigungen.php | 218 ++++++++++++++++ vilesci/stammdaten/berechtigungrolle.php | 236 ++++++++++++++++++ 6 files changed, 483 insertions(+), 4 deletions(-) create mode 100644 vilesci/stammdaten/berechtigungen.php diff --git a/include/berechtigung.class.php b/include/berechtigung.class.php index ab224be4d..e7be01283 100644 --- a/include/berechtigung.class.php +++ b/include/berechtigung.class.php @@ -103,14 +103,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)) { diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 204feeec3..7b6f52e85 100644 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -137,8 +137,10 @@ $menu=array 'User'=>array ( 'name'=>'User', 'permissions'=>array('basis/variable','basis/berechtigung'), + 'Rechte'=>array('name'=>'Rechte', 'link'=>'stammdaten/berechtigungen.php', 'target'=>'main','permissions'=>array('basis/berechtigung')), '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')), + 'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main', 'permissions'=>array('mitarbeiter')), 'Variablen'=>array('name'=>'Variablen', 'link'=>'stammdaten/variablen_frameset.html', 'target'=>'main', 'target'=>'main','permissions'=>array('basis/variable')), ), 'Personal'=>array diff --git a/vilesci/stammdaten/benutzerberechtigung_details.php b/vilesci/stammdaten/benutzerberechtigung_details.php index 4cee06950..7ae0e711b 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) diff --git a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php index ecc9c6e09..d986d6642 100644 --- a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php +++ b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php @@ -251,7 +251,7 @@ $htmlstr=' + '.(256 - strlen($recht->beschreibung)).' + + + + + '; + } + else + { + echo ' + + '.$recht->berechtigung_kurzbz.' + '.$recht->beschreibung.' + + + Bearbeiten + + + + + Recht löschen + + + '; + } + } + echo ' + + + +
'; + + echo '
+

Neues Recht einfügen

+ Kurzbz: + Beschreibung: + 256 +   +
+
+ +'; + ?> diff --git a/vilesci/stammdaten/berechtigungrolle.php b/vilesci/stammdaten/berechtigungrolle.php index e33057d59..82430d64e 100644 --- a/vilesci/stammdaten/berechtigungrolle.php +++ b/vilesci/stammdaten/berechtigungrolle.php @@ -1,3 +1,239 @@ + + * 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 + + + + + + + + + + +

Rollenü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 +   +
+
+ +'; + ?> + + + + + + + + + + + + + + + + + +