Rechte-Detailansicht

This commit is contained in:
Manfred
2023-03-27 17:08:22 +02:00
parent cff3cab075
commit 9527fd006f
2 changed files with 193 additions and 23 deletions
@@ -0,0 +1,166 @@
<?php
/* Copyright (C) 2009 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 < christian.paminger@technikum-wien.at >
* 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');
require_once('../../include/funktion.class.php');
require_once('../../include/organisationseinheit.class.php');
require_once('../../include/wawi_kostenstelle.class.php');
require_once('../../include/benutzer.class.php');
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
$uid = isset($_GET['uid']) && $_GET['uid']!='' ? $_GET['uid'] : die('UID muss übergeben werden');
$benutzer = new benutzer();
$benutzer->load($uid);
if(!$rechte->isBerechtigt('basis/berechtigung'))
die('Sie habe keine Rechte um diese Seite anzuzeigen');
?>
<html>
<head>
<title>Detaillierte Berechtigungsliste</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
<?php
include('../../include/meta/jquery.php');
include('../../include/meta/jquery-tablesorter.php');
?>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<script>
$(document).ready(function() {
$("#t1").tablesorter(
{
sortList: [[0, 0], [1, 0], [2, 0]],
widgets: ["zebra", "filter", "stickyHeaders"],
widgetOptions: {
filter_functions: {
// Add select menu to this column
8: {
"Aktive/Wartende": function (e, n, f, i, $r, c, data) {
return e == 'Aktiv' || e == 'Wartend';
},
"Aktive": function (e, n, f, i, $r, c, data) {
return /Aktiv/.test(e);
},
"Wartende": function (e, n, f, i, $r, c, data) {
return /Wartend/.test(e);
},
"Inaktive": function (e, n, f, i, $r, c, data) {
return /Inaktiv/.test(e);
}
}
}
}
});
});
</script>
</head>
<body class="background_main">
<h2>Detaillierte Berechtigungsliste von <?php echo $benutzer->vorname.' '.$benutzer->nachname ?></h2>
<?php
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$funktionsArray = array();
$funktionen = new funktion();
$funktionen->getAll();
foreach ($funktionen->result as $item)
{
$funktionsArray[$item->funktion_kurzbz] = $item->beschreibung;
}
$kostenstelleArray = array();
$kostenstellen = new wawi_kostenstelle();
$kostenstellen->getAll();
foreach ($kostenstellen->result as $item)
{
$kostenstelleArray[$item->kostenstelle_id] = $item->bezeichnung.' ('.$item->kostenstelle_id.')';
}
$oeArray = array();
$oes = new organisationseinheit();
$oes->getAll();
foreach ($oes->result as $item)
{
$oeArray[$item->oe_kurzbz] = $item->organisationseinheittyp_kurzbz.' '.$item->bezeichnung;
}
$heute = strtotime(date('Y-m-d'));
echo '<table id="t1" class="tablesorter">
<thead><tr>
<th>Funktion</th>
<th>Rolle</th>
<th>Recht</th>
<th>Art</th>
<th>Organisationseinheit</th>
<th>Kostenstelle</th>
<th>Gültig ab</th>
<th>Gültig bis</th>
<th data-value="Aktive/Wartende">Status</th>
</tr></thead><tbody>';
foreach ($rechte->berechtigungen AS $key)
{
if ($key->ende!='' && strtotime($key->ende) < $heute)
{
$titel="Inaktiv";
}
elseif ($key->start!='' && strtotime($key->start) > $heute)
{
$titel="Wartend";
}
else
{
$titel="Aktiv";
}
echo '<tr>';
echo '<td>'.($key->funktion_kurzbz != '' ? $funktionsArray[$key->funktion_kurzbz] : '').'</td>';
echo '<td>'.($key->rolle_kurzbz != '' ? $key->rolle_kurzbz : '').'</td>';
echo '<td>'.($key->berechtigung_kurzbz != '' ? $key->berechtigung_kurzbz : '').'</td>';
echo '<td>'.($key->art != '' ? $key->art : '').'</td>';
echo '<td>'.($key->oe_kurzbz != '' ? $oeArray[$key->oe_kurzbz] : '').'</td>';
echo '<td>'.($key->kostenstelle_id != '' ? $kostenstelleArray[$key->kostenstelle_id] : '').'</td>';
echo '<td>'.($key->start != '' ? $key->start : '').'</td>';
echo '<td>'.($key->ende != '' ? $key->ende : '').'</td>';
echo '<td>'.$titel.'</td>';
echo '</tr>';
}
echo '</tbody></table>';
?>
</body>
</html>
@@ -65,7 +65,7 @@ $rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if (!$db = new basis_db())
die($p->t("global/fehlerBeimOeffnenDerDatenbankverbindung"));
die('Fehler beim öffnen der Datenbankverbindung');
if(!$rechte->isBerechtigt('basis/berechtigung'))
die('Sie haben keine Berechtigung fuer diese Seite');
@@ -554,14 +554,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
}
}
$htmlstr .= ' <div id="msgbox" '.$class.'>'.$message.'</div>';
//$htmlstr .= "<p class='inserterror'>".$errorstr."</p><p class='insertok'>".$successstr."</p>";
//Formular zum Kopieren von Berechtigungen
//$htmlstr .= "<form action='benutzerberechtigung_details.php?uid=".$uid."' method='POST' name='berechtigung_kopieren'>";
//$htmlstr .= "Berechtigungen (aktive) kopieren von UID <input id='uid_von' name='uid_von' type='text'>";
//$htmlstr .= "<input type='submit' name='kopieren' value='Kopieren' onclick=\"if (document.getElementById('uid_von').value == '') {alert('UID darf nicht leer sein'); return false}\">";
//$htmlstr .= "<input type='hidden' name='uid' value='".$uid."'>";
//$htmlstr .= "</form>";
$i = 0;
// Zusätzlich jede Funktion mit einer gültigen Berechtigung anzeigen
@@ -605,6 +598,10 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
$htmlstr .= '</a></p>';
}
}
if (count($bn) > 0)
{
$htmlstr .= "<p><a href='benutzerberechtigung_detailliste.php?uid=$uid' target='_blank'>Detailliste Rechte</a></p>";
}
}
elseif(isset($_REQUEST['funktion_kurzbz']) && $_REQUEST['funktion_kurzbz']!='')
{
@@ -784,29 +781,32 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
if ($b->ende!='' && strtotime($b->ende) < $heute)
{
$titel="ccc";
$style = 'style="border-left: 10px solid tomato; border-right: 10px solid transparent; text-align: center; vertical-align: middle"';
$style = 'style="border-left: 10px solid tomato; border-right: 10px solid transparent; text-align: center; vertical-align: middle; background-color: #d0d7e0;"';
$inaktiv_style = 'style="background-color: #d0d7e0;"';
$data = 'rot';
}
elseif ($b->start!='' && strtotime($b->start) > $heute)
{
$titel="bbb";
$style = 'style="border-left: 10px solid gold; border-right: 10px solid transparent; text-align: center; vertical-align: middle"';
$inaktiv_style = '';
$data = 'gelb';
}
else
{
$titel="aaa";
$style = 'style="border-left: 10px solid LightGreen; border-right: 10px solid transparent; text-align: center; vertical-align: middle"';
$inaktiv_style = '';
$data = 'gruen';
}
// Auswahlcheckbox
$htmlstr .= " <td $style class='auswahlcheckboxen' name='td_$b->benutzerberechtigung_id' data-".$data."='".$data."'>";
$htmlstr .= " <td $style $inaktiv_style class='auswahlcheckboxen' name='td_$b->benutzerberechtigung_id' data-".$data."='".$data."'>";
$htmlstr .= " <span style='display: none'>".$titel."</span>";
$htmlstr .= " <input type='checkbox' class='auswahlcheckbox' name='dataset[$b->benutzerberechtigung_id][check]'>";
$htmlstr .= " </td>";
//Rolle
$htmlstr .= " <td style='padding: 1px; white-space: nowrap'>";
$htmlstr .= " <td $inaktiv_style style='padding: 1px; white-space: nowrap'>";
$htmlstr .= " <select class='rolle_select'
name='dataset[$b->benutzerberechtigung_id][rolle_kurzbz]'
title='".(isset($rolle_arr[$b->rolle_kurzbz])?$rolle_arr[$b->rolle_kurzbz]:"")."'
@@ -832,12 +832,12 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
{
$htmlstr .= " <a href='berechtigungrolle.php?rolle_kurzbz=".$b->rolle_kurzbz."'
target='_blank'
style='color: unset'><span class='glyphicon glyphicon-eye-open'></span></a>";
style='color: unset'><span class='glyphicon glyphicon-share'></span></a>";
}
$htmlstr.="</td>";
//Berechtigung
$htmlstr .= " <td name='td_$b->benutzerberechtigung_id'>";
$htmlstr .= " <td $inaktiv_style name='td_$b->benutzerberechtigung_id'>";
$htmlstr .= " <span style='display: none'>".$b->berechtigung_kurzbz."</span>";
$htmlstr .= " <input type='text'
class='berechtigung_autocomplete'
@@ -850,7 +850,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
$htmlstr .= " </td>";
//Art
$htmlstr .= " <td name='td_$b->benutzerberechtigung_id'>";
$htmlstr .= " <td $inaktiv_style name='td_$b->benutzerberechtigung_id'>";
$htmlstr .= " <span style='display: none'>".$b->art."</span>";
$htmlstr .= " <input type='text' class='suid_input' name='dataset[$b->benutzerberechtigung_id][art]' value='".$b->art."' size='4' maxlength='4' style='text-transform: lowercase;'>";
$htmlstr .= " </td>";
@@ -858,11 +858,11 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
//Organisationseinheit
if($funktion_kurzbz != '')
{
$htmlstr .= " <td class='oe_column' name='td_$b->benutzerberechtigung_id'>OE aus MA-Funktion</td>";
$htmlstr .= " <td $inaktiv_style class='oe_column' name='td_$b->benutzerberechtigung_id'>OE aus MA-Funktion</td>";
}
else
{
$htmlstr .= " <td class='oe_column'>";
$htmlstr .= " <td $inaktiv_style class='oe_column'>";
$htmlstr .= " <span style='display: none'>".($b->oe_kurzbz != '' ? $oe_arr[$b->oe_kurzbz] : '')."</span>";
$htmlstr .= " <input type='hidden' name='dataset[$b->benutzerberechtigung_id][oe_kurzbz]' value='$b->oe_kurzbz'>";
$htmlstr .= " <input type='text' class='oe_kurzbz_autocomplete' value='".($b->oe_kurzbz != '' ? $oe_arr[$b->oe_kurzbz] : '')."'>";
@@ -870,7 +870,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
}
//Kostenstelle
$htmlstr .= " <td class='ks_column'>";
$htmlstr .= " <td $inaktiv_style class='ks_column'>";
$htmlstr .= " <span style='display: none'>".$b->kostenstelle_id."</span>";
$htmlstr .= " <input type='hidden' name='dataset[$b->benutzerberechtigung_id][kostenstelle_id]' value='$b->kostenstelle_id'>";
$htmlstr .= " <input type='text' class='kostenstelle_autocomplete' value='".($b->kostenstelle_id != '' ? $kst_arr[$b->kostenstelle_id] : '')."'>";
@@ -897,24 +897,24 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
$htmlstr .= " </select></td>";*/
//Negativ-Checkbox
$htmlstr .= " <td align='center'>";
$htmlstr .= " <td $inaktiv_style align='center'>";
$htmlstr .= " <input type='checkbox' name='dataset[$b->benutzerberechtigung_id][negativ]' ".($b->negativ?'checked="checked"':'').">";
$htmlstr .= " </td>";
//Gültig ab
$htmlstr .= " <td style='white-space: nowrap; width: 9rem'>";
$htmlstr .= " <td $inaktiv_style style='white-space: nowrap; width: 9rem'>";
$htmlstr .= " <span style='display: none'>".$b->start."</span>";
$htmlstr .= " <input class='datepicker_datum' type='text' name='dataset[$b->benutzerberechtigung_id][start]' value='".$b->start."' size='10' maxlength='10'>";
$htmlstr .= " </td>";
// Gültig bis
$htmlstr .= " <td style='white-space: nowrap; width: 9rem'>";
$htmlstr .= " <td $inaktiv_style style='white-space: nowrap; width: 9rem'>";
$htmlstr .= " <span style='display: none'>".$b->ende."</span>";
$htmlstr .= " <input class='datepicker_datum' type='text' name='dataset[$b->benutzerberechtigung_id][ende]' value='".$b->ende."' size='10' maxlength='10'>";
$htmlstr .= " </td>";
//Anmerkung
$htmlstr .= " <td>";
$htmlstr .= " <td $inaktiv_style>";
$htmlstr .= " <input
type='text'
name='dataset[$b->benutzerberechtigung_id][anmerkung]'
@@ -929,7 +929,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
$htmlstr .= " </td>";
//Info
$htmlstr .= " <td align='center' name='td_$b->benutzerberechtigung_id'>
$htmlstr .= " <td $inaktiv_style align='center' name='td_$b->benutzerberechtigung_id'>
<span
class='glyphicon glyphicon-info-sign'
title='Angelegt von ".$b->insertvon." am ".$b->insertamum."<br>Zuletzt geaendert von ".$b->updatevon." am ".$b->updateamum."'
@@ -938,7 +938,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
data-placement='auto'>
</span></td>";
$htmlstr .= " <td style='white-space: nowrap; width: 5rem'>";
$htmlstr .= " <td $inaktiv_style style='white-space: nowrap; width: 5rem'>";
$htmlstr .= " <button type='submit'
name='copy'
value='$b->benutzerberechtigung_id'
@@ -1294,6 +1294,10 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
color: white;
border: 4px solid black;
}
td button
{
background-color: transparent;
}
</style>
<script type="text/javascript">
$(document).ready(function()