diff --git a/vilesci/personen/zeitwunsch.php b/vilesci/personen/zeitwunsch.php index 8e365fb68..520bb5e4d 100644 --- a/vilesci/personen/zeitwunsch.php +++ b/vilesci/personen/zeitwunsch.php @@ -56,7 +56,7 @@ $uid_benutzer = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($uid_benutzer); -if(!$rechte->isBerechtigt('mitarbeiter', null, 's')) +if(!$rechte->isBerechtigt('mitarbeiter/zeitwuensche', null, 's')) die($rechte->errormsg); $datum_obj = new datum(); diff --git a/vilesci/stammdaten/benutzerberechtigung_details.php b/vilesci/stammdaten/benutzerberechtigung_details.php index b230d702f..d1f88102d 100644 --- a/vilesci/stammdaten/benutzerberechtigung_details.php +++ b/vilesci/stammdaten/benutzerberechtigung_details.php @@ -38,6 +38,8 @@ require_once('../../include/benutzer.class.php'); require_once('../../include/funktion.class.php'); require_once('../../include/wawi_kostenstelle.class.php'); require_once('../../include/log.class.php'); +require_once('../../include/mitarbeiter.class.php'); +require_once('../../include/datum.class.php'); /* * TODOs @@ -60,6 +62,7 @@ BEschreibungstexte bestehender Rechte */ $user = get_uid(); +$datum = new datum(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); @@ -68,7 +71,14 @@ if (!$db = new basis_db()) die('Fehler beim öffnen der Datenbankverbindung'); if(!$rechte->isBerechtigt('basis/berechtigung')) - die('Sie haben keine Berechtigung fuer diese Seite'); + die($rechte->errormsg); + +$mitarbeiter = new mitarbeiter($user); +$userKuerzel = $user; +if ($mitarbeiter->kurzbz != '') +{ + $userKuerzel = $mitarbeiter->kurzbz; +} //$reloadstr = ''; // neuladen der liste im oberen frame $htmlstr = ''; @@ -104,7 +114,27 @@ if(isset($_POST['delete']) && $_POST['delete'] != '') $ber = new benutzerberechtigung(); if(!$ber->delete($benutzerberechtigung_id)) + { $errorstr .= 'Datensatz konnte nicht gelöscht werden!'; + } + else + { + //Log schreiben + $log = new log(); + + $logdata = var_export((array) $ber, true); + $log->new = true; + $log->sql = $logdata; + $log->sqlundo = 'Kein Undo vorhanden'; + $log->executetime = date('Y-m-d H:i:s'); + $log->mitarbeiter_uid = $user; + $log->beschreibung = 'Berechtigung gelöscht'; + + if(!$log->save()) + { + $errorstr .= "Fehler beim schreiben des Log-Eintrags
"; + } + } //$reloadstr .= ""; + +} + +if(isset($_POST['save_anmerkung_multi']) && $_POST['anmerkung_multi'] != '') +{ + if(!$rechte->isBerechtigt('basis/berechtigung', null, 'su')) + die($rechte->errormsg); + + $anmerkungNeu = $_POST['anmerkung_multi']; + + if (isset($_POST['dataset'])) + { + $i = 0; + foreach ($_POST['dataset'] AS $benutzerberechtigung_id => $value) + { + // Nur markierte Einträge bearbeiten + if (!isset($value['check'])) + { + continue; + } + + $ber = new benutzerberechtigung(); + if(!$ber->load($benutzerberechtigung_id)) + { + die('Fehler beim Laden der Berechtigung'); + } + + // Bestehende Anmerkungen belassen und neue Ergänzen + if ($ber->anmerkung != '') + { + $ber->anmerkung = $ber->anmerkung.'; '.$anmerkungNeu; + } + else + { + $ber->anmerkung = $anmerkungNeu; + } + + // Wenn Anmerkung länger als 256 Zeichen ist (DB-Beschränkung), String kürzen und Warnung ausgeben + if (strlen($ber->anmerkung) > 256) + { + $ber->anmerkung = cutString($ber->anmerkung, 256, '...'); + $errorstr .= "Die Anmerkung bei der ID ".$benutzerberechtigung_id." übersteigt die maximale Länge von 256 Zeichen und wurde nicht vollständig gespeichert
"; + } + + $ber->updateamum = date('Y-m-d H:i:s'); + $ber->updatevon = $user; + + if(!$ber->save()) + { + $errorstr .= "Die Anmerkung des Datensatzes mit der ID ".$benutzerberechtigung_id." konnte nicht gespeichert werden!".$ber->errormsg; + } + else + { + $i ++; + //Log schreiben + $log = new log(); + + $logdata = var_export((array) $ber, true); + $log->new = true; + $log->sql = $logdata; + $log->sqlundo = 'Kein Undo vorhanden'; + $log->executetime = date('Y-m-d H:i:s'); + $log->mitarbeiter_uid = $user; + $log->beschreibung = 'Anmerkung bearbeitet'; + + if(!$log->save()) + { + $errorstr .= "Fehler beim schreiben des Log-Eintrags
"; + } + } + } + if ($i > 0) + { + $successstr .= "Anmerkung bei ".$i." Einträgen erfolgreich gespeichert
"; + } + } + + + //$reloadstr .= ""; @@ -424,6 +542,10 @@ if(isset($_POST['schick'])) } } } + if ($errorstr == '') + { + $successstr .= "Änderungen erfolgreich gespeichert
"; + } } } else @@ -503,14 +625,16 @@ $oe = new organisationseinheit(); $oe->getAll(); foreach ($oe->result AS $row) { - $oe_arr[$row->oe_kurzbz] = $row->organisationseinheittyp_kurzbz.' '.$row->bezeichnung; + $oe_arr[$row->oe_kurzbz]['bezeichnung'] = $row->organisationseinheittyp_kurzbz.' '.$row->bezeichnung; + $oe_arr[$row->oe_kurzbz]['aktiv'] = $row->aktiv; } $kostenstelle = new wawi_kostenstelle(); $kostenstelle->getAll(); foreach ($kostenstelle->result AS $row) { - $kst_arr[$row->kostenstelle_id] = $row->bezeichnung; + $kst_arr[$row->kostenstelle_id]['bezeichnung'] = $row->bezeichnung; + $kst_arr[$row->kostenstelle_id]['aktiv'] = $row->aktiv; } if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) @@ -536,23 +660,27 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $name = new benutzer(); $name->load($uid); - $htmlstr .= "Berechtigungen von ".$name->nachname." ".$name->vorname." (".$uid.")"; + $htmlstr .= "Berechtigungen von ".$name->nachname." ".$name->vorname." (".$uid.") Zum CIS-Profil"; + $message = ''; $class = ''; + $messageString = ''; if ($errorstr != '' || $successstr != '') { if ($successstr != '') { $class = 'class="alert alert-success"'; $message = $successstr; + $messageString .= '
'.$message.'
'; } - elseif ($errorstr != '') + if ($errorstr != '') { $class = 'class="alert alert-danger"'; $message = $errorstr; + $messageString .= '
'.$message.'
'; } } - $htmlstr .= '
'.$message.'
'; + $htmlstr .= '
'.$messageString.'
'; $i = 0; @@ -643,8 +771,9 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) "; $htmlstr .= ""; - $htmlstr .= "
"; + $htmlstr .= ""; $htmlstr .= ""; + $htmlstr .= ""; $htmlstr .= ""; $htmlstr .= ""; $htmlstr .= ""; @@ -708,7 +837,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $htmlstr .= " "; //Start - $htmlstr .= " "; + $htmlstr .= " "; //Ende $htmlstr .= " "; @@ -716,7 +845,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) //Anmerkung $htmlstr .= " "; - $htmlstr .= " "; + //$htmlstr .= " "; $htmlstr .= "
"; $htmlstr .= " "; @@ -726,8 +855,8 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) // Tabelle für bestehende Berechtigungen //////////////// - $htmlstr .= "

"; - $htmlstr .= "
"; + $htmlstr .= "
STRG+ALT+T fügt Datum ein
"; + $htmlstr .= ""; $htmlstr .= ""; $htmlstr .= ""; @@ -759,6 +888,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) "; + $countInaktiveUndWawi = 0; foreach($rights->berechtigungen as $b) { switch($filter) @@ -775,7 +905,6 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) default: break; } - $htmlstr .= " "; $heute = strtotime(date('Y-m-d')); if ($b->ende!='' && strtotime($b->ende) < $heute) { @@ -798,6 +927,17 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $inaktiv_class = ''; $data = 'gruen'; } + // Inaktive Elemente sowie WaWi-Rechte ausblenden + if ($b->ende!='' && strtotime($b->ende) < $heute || $b->rolle_kurzbz == 'wawi' || substr($b->berechtigung_kurzbz, 0, 4) == 'wawi') + { + $htmlstr .= " "; + $countInaktiveUndWawi++; + } + else + { + $htmlstr .= " "; + } + // Auswahlcheckbox $htmlstr .= " "; $htmlstr .= " ".$titel.""; @@ -862,9 +1002,10 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) else { $htmlstr .= " "; - $htmlstr .= " ".($b->oe_kurzbz != '' ? $oe_arr[$b->oe_kurzbz] : '').""; + $htmlstr .= " ".($b->oe_kurzbz != '' ? $oe_arr[$b->oe_kurzbz]['bezeichnung'] : '').""; $htmlstr .= " "; - $htmlstr .= " oe_kurzbz] : '')."'>"; + $style = isset($oe_arr[$b->oe_kurzbz]) && $oe_arr[$b->oe_kurzbz]['aktiv'] == false? 'style="text-decoration: line-through"' : ''; + $htmlstr .= " oe_kurzbz]['bezeichnung'] : '')."'>"; $htmlstr .= " "; } @@ -872,7 +1013,8 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $htmlstr .= " "; $htmlstr .= " ".$b->kostenstelle_id.""; $htmlstr .= " "; - $htmlstr .= " kostenstelle_id] : '')."'>"; + $style = isset($kst_arr[$b->kostenstelle_id]) && $kst_arr[$b->kostenstelle_id]['aktiv'] == false ? 'style="text-decoration: line-through"' : ''; + $htmlstr .= " kostenstelle_id]['bezeichnung'] : '')."'>"; $htmlstr .= " "; @@ -960,20 +1102,39 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $htmlstr .= " "; } $htmlstr .= ""; + + //Button zum einblenden ausgeblendeter Zeilen + if ($countInaktiveUndWawi > 0) + { + $htmlstr .= ""; + } + + // Speichern und Aktions-Bereich $htmlstr .= '
- -
+ + +
- +
-
- - + + +
+
+
+ +
+ +
+
'; @@ -992,6 +1153,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) + @@ -1268,6 +1430,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) /*border-right: 1px solid #999;*/ margin-left: auto; display: block ruby; + border-top-left-radius: 4px; } #msgbox { @@ -1306,8 +1469,35 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) { background-color: #f3f3f3 !important; } + .ausgeblendet + { + display: none; + } + /*.multi-options*/ + /*{*/ + /* display: none;*/ + /*}*/ diff --git a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php index 0be268b70..381d3eaa8 100644 --- a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php +++ b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php @@ -29,17 +29,20 @@ require_once('../../include/benutzer.class.php'); require_once('../../include/berechtigung.class.php'); require_once ('../../include/organisationseinheit.class.php'); require_once ('../../include/benutzerfunktion.class.php'); +require_once ('../../include/funktion.class.php'); echo ' Berechtigungen Uebersicht -'; + +'; include('../../include/meta/jquery.php'); include('../../include/meta/jquery-tablesorter.php'); echo ' + rolle_kurzbz = $rolle_kurzbz; + $berechtigung->berechtigung_kurzbz = $recht; + $berechtigung->art = $art; + $berechtigung->insertamum = date('Y-m-d H:i:s'); + $berechtigung->insertvon = $user; + + if($berechtigung->saveRolleBerechtigung()) + { + echo json_encode(array( + 'status' => 'ok', + 'msg' => '' + )); + exit(); + } + else + { + echo json_encode(array( + 'status' => 'error', + 'msg' => 'Fehler beim Speichern der Rolle' + )); + exit(); + } + } + if(isset($rolle_kurzbz)) { echo '

Berechtigungen der Rolle "'.$rolle_kurzbz.'"

'; @@ -335,35 +458,46 @@ $vergleich = filter_input(INPUT_GET, 'vergleich'); Kurzbz Art +   '; foreach ($rollenGesamt AS $recht => $art) { - if (array_key_exists($recht, $rollen1Arr)) + if (array_key_exists($recht, $rollen1Arr) || !array_key_exists($recht, $rollen2Arr)) { if ($art != $rollen1Arr[$recht]) { - echo ' - '.$recht.' - '.$rollen1Arr[$recht].' + echo ' + '.$recht.' + '.$rollen1Arr[$recht].' + + '; + } + elseif (!array_key_exists($recht, $rollen2Arr)) + { + echo ' + '.$recht.' + '.$art.' + '; } else { - echo ' - '.$recht.' - '.$art.' + echo ' + '.$recht.' + '.$art.' + '; } - } else { - echo ' -   -   + echo ' +   +   + '; } } @@ -395,6 +529,7 @@ $vergleich = filter_input(INPUT_GET, 'vergleich'); echo ' + @@ -402,28 +537,39 @@ $vergleich = filter_input(INPUT_GET, 'vergleich'); '; foreach ($rollenGesamt AS $recht => $art) { - if (array_key_exists($recht, $rollen2Arr)) + if (array_key_exists($recht, $rollen2Arr) || !array_key_exists($recht, $rollen1Arr)) { if ($art != $rollen2Arr[$recht]) { - echo ' - - + echo ' + + + + '; + } + elseif (!array_key_exists($recht, $rollen1Arr)) + { + echo ' + + + '; } else { - echo ' - - + echo ' + + + '; } } else { - echo ' - - + echo ' + + + '; } }
  Kurzbz Art
'.$recht.''.$rollen2Arr[$recht].'
'.$recht.''.$rollen2Arr[$recht].'
'.$recht.''.$art.'
'.$recht.''.$art.'
 '.$recht.''.$art.'