mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
Merge branch 'benutzerberechtigungGUIneu'
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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 .= "<span style='color: red'><b>Fehler beim schreiben des Log-Eintrags</b></span><br>";
|
||||
}
|
||||
}
|
||||
|
||||
//$reloadstr .= "<script type='text/javascript'>";
|
||||
//$reloadstr .= " parent.uebersicht.location.href='benutzerberechtigung_uebersicht.php';";
|
||||
@@ -172,7 +202,13 @@ if(isset($_POST['uebertragen']) && $_POST['uebertragen_nach'] != '')
|
||||
//echo '<pre>', var_dump($_POST), '</pre>';exit();
|
||||
if($rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
|
||||
{
|
||||
$mitarbeiter = new mitarbeiter($_POST['uid']);
|
||||
$uidVon = $_POST['uid'];
|
||||
if ($mitarbeiter->kurzbz != '')
|
||||
{
|
||||
$uidVon = $mitarbeiter->kurzbz;
|
||||
}
|
||||
|
||||
$copyTo = $_POST['uebertragen_nach'];
|
||||
|
||||
if (isset($_POST['dataset']))
|
||||
@@ -215,12 +251,12 @@ if(isset($_POST['uebertragen']) && $_POST['uebertragen_nach'] != '')
|
||||
$ber->uid = $copyTo;
|
||||
$ber->funktion_kurzbz = $funktion_kurzbz;
|
||||
$ber->studiensemester_kurzbz = $studiensemester_kurzbz;
|
||||
$ber->start = $start;
|
||||
$ber->start = date('Y-m-d');
|
||||
$ber->ende = $ende;
|
||||
$ber->updateamum = date('Y-m-d H:i:s');
|
||||
$ber->updatevon = $user;
|
||||
$ber->kostenstelle_id = $kostenstelle_id;
|
||||
$ber->anmerkung = 'Kopiert von UID '.$uidVon.($anmerkung!=''?'. Anmerkung von UID '.$uidVon.': '.$anmerkung:'');
|
||||
$ber->anmerkung = 'Kp '.$uidVon.($anmerkung != '' ? ': '.$anmerkung : '');
|
||||
|
||||
if(!$ber->save())
|
||||
{
|
||||
@@ -317,6 +353,88 @@ if(isset($_POST['setDate_multi']) && $_POST['setDate_multi'] != '')
|
||||
|
||||
|
||||
|
||||
//$reloadstr .= "<script type='text/javascript'>";
|
||||
//$reloadstr .= " parent.uebersicht.location.href='benutzerberechtigung_uebersicht.php';";
|
||||
//$reloadstr .= "</script>";
|
||||
|
||||
}
|
||||
|
||||
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 .= "<span style='color: red'><b>Die Anmerkung bei der ID ".$benutzerberechtigung_id." übersteigt die maximale Länge von 256 Zeichen und wurde nicht vollständig gespeichert</b></span><br>";
|
||||
}
|
||||
|
||||
$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 .= "<span style='color: red'><b>Fehler beim schreiben des Log-Eintrags</b></span><br>";
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($i > 0)
|
||||
{
|
||||
$successstr .= "<span style='color: green'><b>Anmerkung bei ".$i." Einträgen erfolgreich gespeichert</b></span><br>";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//$reloadstr .= "<script type='text/javascript'>";
|
||||
//$reloadstr .= " parent.uebersicht.location.href='benutzerberechtigung_uebersicht.php';";
|
||||
//$reloadstr .= "</script>";
|
||||
@@ -424,6 +542,10 @@ if(isset($_POST['schick']))
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($errorstr == '')
|
||||
{
|
||||
$successstr .= "<span style='color: green'><b>Änderungen erfolgreich gespeichert</b></span><br>";
|
||||
}
|
||||
}
|
||||
}
|
||||
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 <b>".$name->nachname." ".$name->vorname." (".$uid.")</b>";
|
||||
$htmlstr .= "Berechtigungen von <b>".$name->nachname." ".$name->vorname." (".$uid.")</b> <a href='".CIS_ROOT."cis/private/profile/index.php?uid=".$uid."' target='_blank'>Zum CIS-Profil</a>";
|
||||
|
||||
$message = '';
|
||||
$class = '';
|
||||
$messageString = '';
|
||||
if ($errorstr != '' || $successstr != '')
|
||||
{
|
||||
if ($successstr != '')
|
||||
{
|
||||
$class = 'class="alert alert-success"';
|
||||
$message = $successstr;
|
||||
$messageString .= ' <div '.$class.'>'.$message.'</div>';
|
||||
}
|
||||
elseif ($errorstr != '')
|
||||
if ($errorstr != '')
|
||||
{
|
||||
$class = 'class="alert alert-danger"';
|
||||
$message = $errorstr;
|
||||
$messageString .= ' <div '.$class.'>'.$message.'</div>';
|
||||
}
|
||||
}
|
||||
$htmlstr .= ' <div id="msgbox" '.$class.'>'.$message.'</div>';
|
||||
$htmlstr .= ' <div id="msgbox">'.$messageString.'</div>';
|
||||
|
||||
$i = 0;
|
||||
|
||||
@@ -643,8 +771,9 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
</tr></thead><tbody>";
|
||||
|
||||
$htmlstr .= "<tr id='neu'>";
|
||||
$htmlstr .= "<form action='benutzerberechtigung_details.php?uid=".$uid."&funktion_kurzbz=".$funktion_kurzbz."' method='POST' name='berechtigung_neu'>";
|
||||
$htmlstr .= "<form id='formNeuesRecht' action='benutzerberechtigung_details.php?uid=".$uid."&funktion_kurzbz=".$funktion_kurzbz."' method='POST' name='berechtigung_neu'>";
|
||||
$htmlstr .= "<input type='hidden' name='neu' value='1'>";
|
||||
$htmlstr .= "<input type='hidden' name='schick' value='1'>";
|
||||
$htmlstr .= "<input type='hidden' name='benutzerberechtigung_id' value=''>";
|
||||
$htmlstr .= "<input type='hidden' name='uid' value='".$uid."'>";
|
||||
$htmlstr .= "<input type='hidden' name='funktion_kurzbz' value='".$funktion_kurzbz."'>";
|
||||
@@ -708,7 +837,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
$htmlstr .= " <td align='center'><input type='checkbox' name='dataset[0][negativ]'></td>";
|
||||
|
||||
//Start
|
||||
$htmlstr .= " <td nowrap><input class='datepicker_datum' type='text' name='dataset[0][start]' value='' size='10' maxlength='10'></td>";
|
||||
$htmlstr .= " <td nowrap><input class='datepicker_datum' type='text' name='dataset[0][start]' value='".date('Y-m-d')."' size='10' maxlength='10'></td>";
|
||||
|
||||
//Ende
|
||||
$htmlstr .= " <td nowrap><input class='datepicker_datum' type='text' name='dataset[0][ende]' value='' size='10' maxlength='10'></td>";
|
||||
@@ -716,7 +845,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
//Anmerkung
|
||||
$htmlstr .= " <td><input id='anmerkung_neu' type='text' name='dataset[0][anmerkung]' value='' size='100' maxlength='256'></td>";
|
||||
|
||||
$htmlstr .= " <td><input type='submit' name='schick' value='Neu anlegen' onclick='return validateNewData()'></td>";
|
||||
//$htmlstr .= " <td><input type='submit' name='schick' value='Neu anlegen' onclick='return validateNewData()'></td>";
|
||||
$htmlstr .= "</form>";
|
||||
$htmlstr .= " </tr></tbody></table>";
|
||||
|
||||
@@ -726,8 +855,8 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
// Tabelle für bestehende Berechtigungen
|
||||
////////////////
|
||||
|
||||
$htmlstr .= "<p style='font-size: small' id='anzahl'></p>";
|
||||
$htmlstr .= "<form action='benutzerberechtigung_details.php?uid=".$uid."&funktion_kurzbz=".$funktion_kurzbz."' method='POST'>";
|
||||
$htmlstr .= "<div class='pull-left' style='font-size: small' id='anzahl'></div><div class='pull-right' style='font-size: smaller'>STRG+ALT+T fügt Datum ein</div>";
|
||||
$htmlstr .= "<form id='formRechte' action='benutzerberechtigung_details.php?uid=".$uid."&funktion_kurzbz=".$funktion_kurzbz."' method='POST'>";
|
||||
|
||||
$htmlstr .= "<input type='hidden' name='uid' value='".$uid."'>";
|
||||
$htmlstr .= "<input type='hidden' name='funktion_kurzbz' value='".$funktion_kurzbz."'>";
|
||||
@@ -759,6 +888,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
|
||||
</tr></thead><tbody>";
|
||||
|
||||
$countInaktiveUndWawi = 0;
|
||||
foreach($rights->berechtigungen as $b)
|
||||
{
|
||||
switch($filter)
|
||||
@@ -775,7 +905,6 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
default: break;
|
||||
}
|
||||
|
||||
$htmlstr .= " <tr class='row_berechtigung' id='".$b->benutzerberechtigung_id."'>";
|
||||
$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 .= " <tr class='row_berechtigung ausgeblendet' id='".$b->benutzerberechtigung_id."'>";
|
||||
$countInaktiveUndWawi++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <tr class='row_berechtigung' id='".$b->benutzerberechtigung_id."'>";
|
||||
}
|
||||
|
||||
// Auswahlcheckbox
|
||||
$htmlstr .= " <td $style class='auswahlcheckboxen' name='td_$b->benutzerberechtigung_id' data-".$data."='".$data."'>";
|
||||
$htmlstr .= " <span style='display: none'>".$titel."</span>";
|
||||
@@ -862,9 +1002,10 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td class='oe_column'>";
|
||||
$htmlstr .= " <span style='display: none'>".($b->oe_kurzbz != '' ? $oe_arr[$b->oe_kurzbz] : '')."</span>";
|
||||
$htmlstr .= " <span style='display: none'>".($b->oe_kurzbz != '' ? $oe_arr[$b->oe_kurzbz]['bezeichnung'] : '')."</span>";
|
||||
$htmlstr .= " <input type='hidden' name='dataset[$b->benutzerberechtigung_id][oe_kurzbz]' value='$b->oe_kurzbz'>";
|
||||
$htmlstr .= " <input type='text' class='oe_kurzbz_autocomplete $inaktiv_class' value='".($b->oe_kurzbz != '' ? $oe_arr[$b->oe_kurzbz] : '')."'>";
|
||||
$style = isset($oe_arr[$b->oe_kurzbz]) && $oe_arr[$b->oe_kurzbz]['aktiv'] == false? 'style="text-decoration: line-through"' : '';
|
||||
$htmlstr .= " <input $style type='text' class='oe_kurzbz_autocomplete $inaktiv_class' value='".($b->oe_kurzbz != '' ? $oe_arr[$b->oe_kurzbz]['bezeichnung'] : '')."'>";
|
||||
$htmlstr .= " </td>";
|
||||
}
|
||||
|
||||
@@ -872,7 +1013,8 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
$htmlstr .= " <td 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 $inaktiv_class' value='".($b->kostenstelle_id != '' ? $kst_arr[$b->kostenstelle_id] : '')."'>";
|
||||
$style = isset($kst_arr[$b->kostenstelle_id]) && $kst_arr[$b->kostenstelle_id]['aktiv'] == false ? 'style="text-decoration: line-through"' : '';
|
||||
$htmlstr .= " <input $style type='text' class='kostenstelle_autocomplete $inaktiv_class' value='".($b->kostenstelle_id != '' ? $kst_arr[$b->kostenstelle_id]['bezeichnung'] : '')."'>";
|
||||
$htmlstr .= " </td>";
|
||||
|
||||
|
||||
@@ -960,20 +1102,39 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
$htmlstr .= " </tr>";
|
||||
}
|
||||
$htmlstr .= "</tbody></table>";
|
||||
|
||||
//Button zum einblenden ausgeblendeter Zeilen
|
||||
if ($countInaktiveUndWawi > 0)
|
||||
{
|
||||
$htmlstr .= "<button type='button' class='btn btn-default' onclick='show_hidden()'>Inaktive und WaWi anzeigen</button>";
|
||||
}
|
||||
|
||||
// Speichern und Aktions-Bereich
|
||||
$htmlstr .= '<div id="bottomArea" >
|
||||
<div class="input-group">
|
||||
<button type="submit" class="btn btn-default" name="schick" onclick="return validateSpeichern()" style="margin-bottom: 10px">Speichern</button>
|
||||
<div class="form-inline" style="">
|
||||
<button id="ButtonNeu" type="button" class="btn btn-default" name="schick" onclick="return submitNeuesRecht()" style="margin-bottom: 10px">Neues Recht speichern</button>
|
||||
<button id="ButtonSpeichern" type="submit" class="btn btn-default" name="schick" onclick="return validateSpeichern()" style="margin-bottom: 10px">Änderungen Speichern</button>
|
||||
<div class="form-inline multi-options" style="">
|
||||
<div class="input-group" style="width: 180px;">
|
||||
<input type="text" id="input_uebertragen_nach" name="uebertragen_nach" class="form-control benutzer_autocomplete" placeholder="Zu UID übertragen">
|
||||
<input type="text" id="input_uebertragen_nach" name="uebertragen_nach" class="form-control benutzer_autocomplete" placeholder="Zu UID übertragen" disabled>
|
||||
<div class="input-group-btn">
|
||||
<button class="btn btn-default" type="submit" id="button_uebertragen" name="uebertragen" onclick="return validateUebertragen()">
|
||||
<button class="btn btn-default" type="submit" id="button_uebertragen" name="uebertragen" onclick="return validateUebertragen()" disabled>
|
||||
<i class="glyphicon glyphicon-transfer" style="line-height: unset"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" id="button_mehrfachbeenden" name="setDate_multi" value="setDate_multi" class="btn btn-default" onclick="return validateBeenden()">Ende setzen</button>
|
||||
<button type="submit" id="button_mehrfachloeschen" name="delete_multi" value="delete_multi" class="btn btn-warning" onclick="return validateDeleteMulti()">Markierte löschen</button>
|
||||
<button type="submit" id="button_mehrfachbeenden" name="setDate_multi" value="setDate_multi" class="btn btn-default" onclick="return validateBeenden()" disabled>Ende setzen</button>
|
||||
<button type="submit" id="button_mehrfachloeschen" name="delete_multi" value="delete_multi" class="btn btn-warning" onclick="return validateDeleteMulti()" disabled>Markierte löschen</button>
|
||||
</div>
|
||||
<div class="form-inline multi-options" style="">
|
||||
<div class="input-group" style="width: 180px;">
|
||||
<input type="text" id="input_anmerkung_multi" maxlength="256" name="anmerkung_multi" class="form-control" placeholder="Mehrfach-Anmerkung" style="width: 390px;" disabled>
|
||||
<div class="input-group-btn">
|
||||
<button class="btn btn-default" type="submit" id="button_anmerkung_multi" name="save_anmerkung_multi" onclick="return validateAnmerkungMulti()" disabled>
|
||||
<i class="glyphicon glyphicon-ok" style="line-height: unset"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>';
|
||||
@@ -992,6 +1153,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
<link href="../../skin/tablesort.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" type="text/css" href="../../vendor/twbs/bootstrap3/dist/css/bootstrap.min.css">
|
||||
<script type="text/javascript" src="../../include/tiny_mce/tiny_mce.js"></script>
|
||||
<script src="../../include/js/mailcheck.js"></script>
|
||||
<script src="../../include/js/datecheck.js"></script>
|
||||
<!-- <script type="text/javascript" src="../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>-->
|
||||
@@ -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;*/
|
||||
/*}*/
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
$.tablesorter.addParser({
|
||||
id: "customDate",
|
||||
is: function(s) {
|
||||
//return false;
|
||||
//use the above line if you don\'t want table sorter to auto detected this parser
|
||||
// match dd.mm.yyyy e.g. 01.01.2001 as regex
|
||||
//return /\d{1,4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2} .*/.test(s);
|
||||
return /\d{1,2}.\d{1,2}.\d{1,4} \d{1,2}:\d{1,2} .*/.test(s);
|
||||
},
|
||||
// replace regex-wildcards and return new date
|
||||
format: function(s) {
|
||||
s = s.replace(/\-/g," ");
|
||||
s = s.replace(/:/g," ");
|
||||
s = s.replace(/\./g," ");
|
||||
s = s.split(" ");
|
||||
return $.tablesorter.formatFloat(new Date(s[2], s[1]-1, s[0], s[3], s[4]).getTime());
|
||||
},
|
||||
type: "numeric"
|
||||
});
|
||||
$(document).ready(function()
|
||||
{
|
||||
// $("[data-toggle=\"popover\"]").popover();
|
||||
@@ -1336,28 +1526,35 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
});
|
||||
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0],[2,0],[4,0]],
|
||||
widgets: ["filter"],
|
||||
headers: {0:{sorter:false},6:{sorter:false, filter:false},10:{sorter:false, filter:false},11:{sorter:false, filter:false}},
|
||||
widgetOptions : { filter_functions : {
|
||||
// Add select menu to this column
|
||||
0 : {
|
||||
"Aktive" : function(e, n, f, i, $r, c, data) { return /a/.test(e); },
|
||||
"Wartende" : function(e, n, f, i, $r, c, data) { return /b/.test(e); },
|
||||
"Inaktive" : function(e, n, f, i, $r, c, data) { return /c/.test(e); }
|
||||
}
|
||||
}},
|
||||
// Um die Werte im Dropdown sortieren zu können
|
||||
textExtraction: function(node) {
|
||||
// Check if option selected is set
|
||||
if ($(node).find('option:selected').text() != "") {
|
||||
return $(node).find('option:selected').text();
|
||||
{
|
||||
sortList: [[0,0],[1,0],[2,0],[4,0]],
|
||||
widgets: ["filter"],
|
||||
headers: {0:{sorter:false},6:{sorter:false, filter:false},10:{sorter:false, filter:false},11:{sorter:false, filter:false}},
|
||||
widgetOptions : { filter_functions : {
|
||||
// Add select menu to this column
|
||||
0 : {
|
||||
"Aktive" : function(e, n, f, i, $r, c, data) { return /a/.test(e); },
|
||||
"Wartende" : function(e, n, f, i, $r, c, data) { return /b/.test(e); },
|
||||
"Inaktive" : function(e, n, f, i, $r, c, data) { return /c/.test(e); }
|
||||
}
|
||||
// Otherwise return text
|
||||
else return $(node).text();
|
||||
}},
|
||||
// Um die Werte im Dropdown sortieren zu können
|
||||
textExtraction: function(node) {
|
||||
// Check if option selected is set
|
||||
if ($(node).find('option:selected').text() != "") {
|
||||
return $(node).find('option:selected').text();
|
||||
}
|
||||
});
|
||||
// Otherwise return text
|
||||
else return $(node).text();
|
||||
}
|
||||
});
|
||||
$("#t2").tablesorter(
|
||||
{
|
||||
sortList: [[0,1]],
|
||||
widgets: ["filter"],
|
||||
headers: { 0: { sorter: "customDate"}},
|
||||
widgetOptions : {}
|
||||
});
|
||||
//document.berechtigung_neu.rolle_kurzbz.focus();
|
||||
|
||||
// Breite des Autocompletes korrigieren um das Springen zu verhindern
|
||||
@@ -1499,17 +1696,99 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
var aktiv = $('td.auswahlcheckboxen[data-gruen]').length + $('td.auswahlcheckboxen[data-gelb]').length;
|
||||
var inaktiv = $('td.auswahlcheckboxen[data-rot]').length;
|
||||
|
||||
$("#anzahl").html(aktiv + inaktiv + " Einträge (" + aktiv + " Aktive, " + inaktiv + " Inaktive)");
|
||||
$("#anzahl").html(aktiv + inaktiv + " Einträge (" + aktiv + " Aktive, " + inaktiv + " Inaktive (ausgeblendet))");
|
||||
|
||||
/*$('.checkbox').each(function ()
|
||||
{
|
||||
$("#t1").checkboxes('range', true);
|
||||
});*/
|
||||
|
||||
$("#uncheck_t1").on('click', function(e) {
|
||||
$(".auswahlcheckboxen").checkboxes('uncheck');
|
||||
e.preventDefault();
|
||||
});
|
||||
$("#uncheck_t1").on('click', function(e)
|
||||
{
|
||||
$(".auswahlcheckboxen").checkboxes('uncheck');
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
// Wenn eine Auswahlcheckbox angeklickt wird, Zusatzoptionen anzeigen
|
||||
$(".auswahlcheckbox").change(function() {
|
||||
if ($(".auswahlcheckbox:checked").length > 0)
|
||||
{
|
||||
// Aktiviere Inputs, wenn mindestens eine Checkbox ausgewählt ist
|
||||
$(".multi-options input[type=text]").prop('disabled', false);
|
||||
$(".multi-options").find("button").prop('disabled', false);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Deaktiviere Inputs, wenn keine Checkbox ausgewählt ist
|
||||
$(".multi-options input[type=text]").prop('disabled', true);
|
||||
$(".multi-options").find("button").prop('disabled', true);
|
||||
}
|
||||
});
|
||||
|
||||
// Wenn etwas ins Neu-Formular eingegeben wird, nur den Neu-Speicherbutton aktivieren, sonst den anderen
|
||||
$("#neu :input").on( "input", function() {
|
||||
var filled = false;
|
||||
|
||||
$("#formNeuesRecht :input").each(function() {
|
||||
if ($(this).val().trim() !== '') {
|
||||
filled = true;
|
||||
return false; // Brechen Sie die each-Schleife ab, wenn ein gefülltes Feld gefunden wurde
|
||||
}
|
||||
});
|
||||
|
||||
// Aktualisieren Sie den Status des Buttons basierend auf den Änderungen in den Feldern
|
||||
$("#ButtonSpeichern").prop("disabled", !filled);
|
||||
$("#ButtonNeu").prop("disabled", filled);
|
||||
|
||||
// Aktualisieren Sie die Variable, um den Status zu speichern
|
||||
isButtonDisabled = !filled;
|
||||
});
|
||||
|
||||
// Wenn etwas ins Rechte-Formular eingegeben wird, nur den Speicherbutton aktivieren, sonst den anderen
|
||||
$("#formRechte :input").on( "input", function() {
|
||||
var filled = false;
|
||||
|
||||
$("#formNeuesRecht :input").each(function() {
|
||||
if ($(this).val().trim() !== '') {
|
||||
filled = true;
|
||||
return false; // Brechen Sie die each-Schleife ab, wenn ein gefülltes Feld gefunden wurde
|
||||
}
|
||||
});
|
||||
|
||||
// Aktualisieren Sie den Status des Buttons basierend auf den Änderungen in den Feldern
|
||||
$("#ButtonNeu").prop("disabled", !filled);
|
||||
$("#ButtonSpeichern").prop("disabled", filled);
|
||||
|
||||
// Aktualisieren Sie die Variable, um den Status zu speichern
|
||||
isButtonDisabled = !filled;
|
||||
});
|
||||
|
||||
$('input[type="text"]').on('keydown', function(e){
|
||||
if(e.ctrlKey && e.altKey && e.keyCode == 84){ // Wenn Strg + Alt + T gedrückt wird
|
||||
e.preventDefault();
|
||||
insertDatumAtCursor(this);
|
||||
}
|
||||
});
|
||||
|
||||
function insertDatumAtCursor(input){
|
||||
var startPos = input.selectionStart;
|
||||
var endPos = input.selectionEnd;
|
||||
var currentDate = getCurrentDateAndUser();
|
||||
var text = $(input).val();
|
||||
var newText = text.substring(0, startPos) + currentDate + text.substring(endPos, text.length);
|
||||
$(input).val(newText);
|
||||
$(input).prop('selectionStart', startPos + currentDate.length);
|
||||
$(input).prop('selectionEnd', startPos + currentDate.length);
|
||||
}
|
||||
|
||||
function getCurrentDateAndUser()
|
||||
{
|
||||
var today = new Date();
|
||||
var dd = String(today.getDate()).padStart(2, '0');
|
||||
var mm = String(today.getMonth() + 1).padStart(2, '0'); // Januar ist 0!
|
||||
var yyyy = today.getFullYear();
|
||||
return dd + '.' + mm + '.' + yyyy+ ' <?php echo $userKuerzel; ?>: ';
|
||||
}
|
||||
|
||||
//if (typeof $("#filterTableDataset").checkboxes === 'function')
|
||||
// $("#filterTableDataset").checkboxes("range", true);
|
||||
@@ -1539,6 +1818,22 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
return true;
|
||||
}
|
||||
|
||||
function validateAnmerkungMulti()
|
||||
{
|
||||
if($('input.auswahlcheckbox:checked').length == 0)
|
||||
{
|
||||
alert('Bitte mindestens eine Berechtigung auswählen');
|
||||
return false;
|
||||
}
|
||||
else if($('#input_anmerkung_multi').val() == '')
|
||||
{
|
||||
alert('Bitte Text eingeben, der als Anmerkung hinzugefügt werden soll');
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
function validateBeenden()
|
||||
{
|
||||
if($('input.auswahlcheckbox:checked').length == 0)
|
||||
@@ -1584,18 +1879,17 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
}
|
||||
else if ($('#art_neu').val() != '')
|
||||
{
|
||||
var eingabe, c, erlaubt = 'suid', laenge;
|
||||
eingabe = $('#art_neu').val();
|
||||
eingabe = eingabe.toLowerCase();
|
||||
laenge = eingabe.length;
|
||||
for (c = 0; c < laenge; c++)
|
||||
var eingabe = $('#art_neu').val().toLowerCase();
|
||||
var erlaubt = ['s', 'su', 'sui', 'suid'];
|
||||
|
||||
if (erlaubt.includes(eingabe))
|
||||
{
|
||||
d = eingabe.charAt(c);
|
||||
if (erlaubt.indexOf(d) == -1)
|
||||
{
|
||||
alert ('Erlaubte Werte für Art sind s,u,i,d');
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
alert('Erlaubte Werte für Art sind s, su, sui, suid');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1697,7 +1991,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
function validateArt(id)
|
||||
{
|
||||
var eingabe, c, erlaubt = 'suid', laenge;
|
||||
eingabe = document.getElementById(id).value;;
|
||||
eingabe = document.getElementById(id).value;
|
||||
eingabe = eingabe.toLowerCase();
|
||||
laenge = eingabe.length;
|
||||
if (eingabe == '')
|
||||
@@ -1718,6 +2012,22 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
document.getElementById(id).style.border = "";
|
||||
}
|
||||
}
|
||||
function show_hidden()
|
||||
{
|
||||
$("tr.ausgeblendet:hidden").each(function()
|
||||
{
|
||||
$(this).fadeIn(1000);
|
||||
});
|
||||
}
|
||||
|
||||
function submitNeuesRecht()
|
||||
{
|
||||
if (validateNewData())
|
||||
{
|
||||
var form = document.getElementById("formNeuesRecht");
|
||||
form.submit();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body style="background-color:#eeeeee;">
|
||||
|
||||
@@ -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 '<html>
|
||||
<head>
|
||||
<title>Berechtigungen Uebersicht</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">';
|
||||
<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">';
|
||||
|
||||
include('../../include/meta/jquery.php');
|
||||
include('../../include/meta/jquery-tablesorter.php');
|
||||
|
||||
echo '
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
function checkLength()
|
||||
{
|
||||
@@ -53,77 +56,138 @@ function checkLength()
|
||||
return true;
|
||||
}
|
||||
$(document).ready(function()
|
||||
{
|
||||
if ($("#berechtigung_kurzbz").val() == "" && $("#rolle_kurzbz").val() == "")
|
||||
$("#erweitertesuche").hide();
|
||||
{
|
||||
if ($("#berechtigung_kurzbz").val() == "" && $("#rolle_kurzbz").val() == "" && $("#person_oe_kurzbz").val() == "")
|
||||
$("#erweitertesuche").hide();
|
||||
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0],[2,0]],
|
||||
widgets: ["zebra"],
|
||||
headers: {4:{sorter:false}}
|
||||
});
|
||||
$("#t2").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0],[2,0],[3,0]],
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
headers: {8:{sorter:false}},
|
||||
emptyTo: "emptyMax",
|
||||
widgetOptions : { filter_functions:
|
||||
{
|
||||
// Add select menu to this column
|
||||
6 : {
|
||||
"Ja" : function(e, n, f, i, $r, c, data) { return e == "Ja" || e == "" },
|
||||
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
|
||||
},
|
||||
7 : {
|
||||
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
|
||||
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
$("#t3").tablesorter(
|
||||
{
|
||||
sortList: [[1,0],[2,0],[3,0]],
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
headers: {8:{sorter:false}},
|
||||
emptyTo: "emptyMax",
|
||||
widgetOptions : { filter_functions:
|
||||
{
|
||||
// Add select menu to this column
|
||||
6 : {
|
||||
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
|
||||
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
|
||||
},
|
||||
7 : {
|
||||
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
|
||||
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
$("#t4").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0],[2,0]],
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
headers: {9:{sorter:false}},
|
||||
emptyTo: "emptyMax",
|
||||
widgetOptions : { filter_functions:
|
||||
{
|
||||
// Add select menu to this column
|
||||
7 : {
|
||||
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
|
||||
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
|
||||
},
|
||||
8 : {
|
||||
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
|
||||
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[4,0],[0,0],[1,0],[2,0]],
|
||||
widgets: ["zebra", "filter", "stickyHeaders"]
|
||||
//headers: {4:{sorter:false}}
|
||||
});
|
||||
$("#t2").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0],[2,0],[3,0]],
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
headers: {8:{sorter:false}},
|
||||
emptyTo: "emptyMax",
|
||||
widgetOptions : { filter_functions:
|
||||
{
|
||||
// Add select menu to this column
|
||||
7 : {
|
||||
"Ja" : function(e, n, f, i, $r, c, data) { return e === "Ja" || /^\s*$/.test(e); },
|
||||
"Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); }
|
||||
},
|
||||
8 : {
|
||||
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
|
||||
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
$("#t3").tablesorter(
|
||||
{
|
||||
sortList: [[1,0],[2,0],[3,0]],
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
headers: {8:{sorter:false}},
|
||||
emptyTo: "emptyMax",
|
||||
widgetOptions : { filter_functions:
|
||||
{
|
||||
// Add select menu to this column
|
||||
6 : {
|
||||
"Ja" : function(e, n, f, i, $r, c, data) { return e === "Ja" || /^\s*$/.test(e); },
|
||||
"Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); }
|
||||
},
|
||||
7 : {
|
||||
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
|
||||
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
$("#t4").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0],[2,0]],
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
headers: {9:{sorter:false}},
|
||||
emptyTo: "emptyMax",
|
||||
widgetOptions : { filter_functions:
|
||||
{
|
||||
// Add select menu to this column
|
||||
7 : {
|
||||
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
|
||||
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
|
||||
},
|
||||
8 : {
|
||||
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
|
||||
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
$("#t5").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0],[3,1]],
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
headers: {4:{sorter:false}},
|
||||
emptyTo: "emptyMax",
|
||||
widgetOptions : { filter_functions:
|
||||
{
|
||||
// Add select menu to this column
|
||||
4 : {
|
||||
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
|
||||
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
// Breite des Autocompletes korrigieren um das Springen zu verhindern
|
||||
$.extend($.ui.autocomplete.prototype.options, {
|
||||
open: function(event, ui) {
|
||||
$(this).autocomplete("widget").css({
|
||||
"width": ($(".ui-menu-item").width()+ 20 + "px"),
|
||||
"padding-left": "5px"
|
||||
});
|
||||
}
|
||||
});
|
||||
$(".oe_kurzbz_autocomplete").autocomplete({
|
||||
source: "benutzerberechtigung_autocomplete.php?autocomplete=oe_kurzbz",
|
||||
minLength:2,
|
||||
response: function(event, ui)
|
||||
{
|
||||
if (!ui.content.length)
|
||||
{
|
||||
var noResult = { value:"",label:"Keine Ergebnisse" };
|
||||
ui.content.push(noResult);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Value und Label fuer die Anzeige setzen
|
||||
for (i in ui.content) {
|
||||
ui.content[i].value = ui.content[i].organisationseinheittyp_kurzbz + " " + ui.content[i].bezeichnung;
|
||||
ui.content[i].label = ui.content[i].organisationseinheittyp_kurzbz + " " + ui.content[i].bezeichnung;
|
||||
}
|
||||
}
|
||||
},
|
||||
select: function(event, ui)
|
||||
{
|
||||
$(this).siblings("input:hidden").val(ui.item.oe_kurzbz);
|
||||
}
|
||||
});
|
||||
$(".oe_kurzbz_autocomplete").on( "input", function() {
|
||||
if ($(this).val() == "")
|
||||
{
|
||||
$(this).siblings("input:hidden").val("");
|
||||
}
|
||||
});
|
||||
$("#person_oe_kurzbz").on( "click", function() {
|
||||
$(this).select();
|
||||
});
|
||||
$("#searchbox").on( "click", function() {
|
||||
$(this).select();
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<style>
|
||||
@@ -199,10 +263,11 @@ if(!$rechte->isBerechtigt('basis/berechtigung'))
|
||||
$htmlstr = "";
|
||||
|
||||
$searchstr = (isset($_GET['searchstr'])?$_GET['searchstr']:'');
|
||||
$benutzerart = (isset($_GET['benutzerart'])?$_GET['benutzerart']:'');
|
||||
$benutzerart = (isset($_GET['benutzerart'])?$_GET['benutzerart']:'mitarbeiter');
|
||||
$benutzeraktiv = (isset($_GET['aktiv'])?$_GET['aktiv']:'aktiv');
|
||||
$berechtigung_kurzbz = (isset($_GET['berechtigung_kurzbz'])?$_GET['berechtigung_kurzbz']:'');
|
||||
$rolle_kurzbz = (isset($_GET['rolle_kurzbz'])?$_GET['rolle_kurzbz']:'');
|
||||
$person_oe_kurzbz = (isset($_GET['person_oe_kurzbz'])?$_GET['person_oe_kurzbz']:'');
|
||||
$userOnly = (isset($_GET['userOnly']) ? true : false);
|
||||
|
||||
$htmlstr='
|
||||
@@ -228,6 +293,13 @@ $htmlstr='
|
||||
</form>
|
||||
<div id="erweitertesuche">
|
||||
<hr>
|
||||
<form accept-charset="UTF-8" name="searchPersonenOe" method="GET">
|
||||
Personen in Organisationseinheit:
|
||||
<input type="hidden" name="person_oe_kurzbz" value="'.$person_oe_kurzbz.'">
|
||||
<input type="text" id="person_oe_kurzbz" value="'.$person_oe_kurzbz.'" class="oe_kurzbz_autocomplete">
|
||||
<input type="submit" value="Suchen">
|
||||
</form>
|
||||
<hr>
|
||||
<form accept-charset="UTF-8" name="searchrechte" method="GET">
|
||||
Rechte:
|
||||
<select id="berechtigung_kurzbz" name="berechtigung_kurzbz">
|
||||
@@ -366,6 +438,7 @@ if($berechtigung_kurzbz != '')
|
||||
<th>Nachname</th>
|
||||
<th>Vorname</th>
|
||||
<th>UID</th>
|
||||
<th>Organisationseinheit</th>
|
||||
<th>Art</th>
|
||||
<th data-value='Ja'>Benutzer Aktiv</th>
|
||||
<th data-value='Aktiv'>Status</th>
|
||||
@@ -376,6 +449,8 @@ if($berechtigung_kurzbz != '')
|
||||
{
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($row->uid);
|
||||
|
||||
$organisationseinheit = new organisationseinheit($row->oe_kurzbz);
|
||||
|
||||
$heute = strtotime(date('Y-m-d'));
|
||||
|
||||
@@ -398,6 +473,7 @@ if($berechtigung_kurzbz != '')
|
||||
$htmlstr .= ' <td>'.($benutzer->nachname != ''?$benutzer->nachname:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($benutzer->vorname != ''?$benutzer->vorname:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($row->uid != ''?$row->uid:'').'</td>';
|
||||
$htmlstr .= ' <td style="text-overflow: ellipsis; white-space: nowrap; overflow:hidden;">'.($row->oe_kurzbz != '' ? $organisationseinheit->organisationseinheittyp_kurzbz.' '.$organisationseinheit->bezeichnung:'').'</td>';
|
||||
$htmlstr .= ' <td>'.$row->art.'</td>';
|
||||
$htmlstr .= ' <td>'.(isset($row->uid)?$benutzer->bnaktiv?'Ja':'Nein':'').'</td>';
|
||||
$htmlstr .= ' <td align="center">'.$status.'</td>';
|
||||
@@ -552,7 +628,7 @@ if($rolle_kurzbz != '')
|
||||
// Anzahl uniquer UIDs ermitteln
|
||||
$berechtigungen_array_uids = sizeof(array_column($rollen->result, null, 'uid'));
|
||||
|
||||
$htmlstr .= "<h3>".$berechtigung_kurzbz."</h3>\n";
|
||||
$htmlstr .= "<h3>".$rolle_kurzbz."</h3>\n";
|
||||
$htmlstr .= "<div style='font-size: 9pt'>".count($rollen->result)." Einträge</div>";
|
||||
$htmlstr .= "<div style='font-size: 9pt'>".$berechtigungen_array_uids." UIDs</div>";
|
||||
$htmlstr .= "<table id='t3' class='tablesorter'><thead><tr>\n";
|
||||
@@ -607,6 +683,76 @@ if($rolle_kurzbz != '')
|
||||
}
|
||||
}
|
||||
|
||||
//Personen in OEs suchen und Tabelle anzeigen
|
||||
if($person_oe_kurzbz != '')
|
||||
{
|
||||
$childOes = new organisationseinheit();
|
||||
$oeChilds = $childOes->getChilds($person_oe_kurzbz);
|
||||
$uids = array();
|
||||
$countUID = array();
|
||||
|
||||
$benutzerfunktion = new benutzerfunktion();
|
||||
foreach ($oeChilds AS $key => $oe)
|
||||
{
|
||||
$benutzerfunktion->getOeFunktionen($oe,'kstzuordnung,fachzuordnung','now()','now()');
|
||||
foreach($benutzerfunktion->result as $bf)
|
||||
{
|
||||
$oeFunktion = new organisationseinheit($bf->oe_kurzbz);
|
||||
$funktion = new funktion($bf->funktion_kurzbz);
|
||||
$uids[$bf->uid.$bf->oe_kurzbz] = ["uid" => $bf->uid, "funktion" => $funktion->beschreibung." ".$oeFunktion->bezeichnung];
|
||||
$countUID[] = $bf->uid;
|
||||
}
|
||||
$benutzerfunktion->getOeFunktionen($oe,'Leitung,stvLtg,oezuordnung','now()','now()');
|
||||
foreach($benutzerfunktion->result as $bf)
|
||||
{
|
||||
$oeFunktion = new organisationseinheit($bf->oe_kurzbz);
|
||||
$funktion = new funktion($bf->funktion_kurzbz);
|
||||
$uids[$bf->uid.$bf->oe_kurzbz] = ["uid" => $bf->uid, "funktion" => $funktion->beschreibung." ".$oeFunktion->bezeichnung];
|
||||
$countUID[] = $bf->uid;
|
||||
}
|
||||
}
|
||||
|
||||
if(count($uids) != 0)
|
||||
{
|
||||
// Anzahl uniquer UIDs ermitteln
|
||||
$berechtigungen_array_uids = count($uids);
|
||||
$countUID = array_unique($countUID);
|
||||
$oeName = new organisationseinheit($person_oe_kurzbz);
|
||||
|
||||
$htmlstr .= "<h3>".$oeName->organisationseinheittyp_kurzbz." ".$oeName->bezeichnung."</h3>\n";
|
||||
$htmlstr .= "<div style='font-size: 9pt'>".$berechtigungen_array_uids." Einträge</div>";
|
||||
$htmlstr .= "<div style='font-size: 9pt'>".count($countUID)." UIDs</div>";
|
||||
$htmlstr .= "<table id='t5' class='tablesorter'><thead><tr>\n";
|
||||
$htmlstr .= " <th>Nachname</th>
|
||||
<th>Vorname</th>
|
||||
<th>UID</th>
|
||||
<th>Funktion</th>
|
||||
<th data-value='Ja'>Benutzer Aktiv</th>
|
||||
<th>Aktion</th>";
|
||||
$htmlstr .= "</tr></thead><tbody>\n";
|
||||
|
||||
foreach($uids as $key => $uid)
|
||||
{
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($uid["uid"]);
|
||||
|
||||
$htmlstr .= ' <tr>';
|
||||
$htmlstr .= ' <td>'.($benutzer->nachname != ''?$benutzer->nachname:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($benutzer->vorname != ''?$benutzer->vorname:'').'</td>';
|
||||
$htmlstr .= ' <td>'.$uid["uid"].'</td>';
|
||||
$htmlstr .= ' <td>'.$uid["funktion"].'</td>';
|
||||
$htmlstr .= ' <td>'.(isset($uid)?$benutzer->bnaktiv?'Ja':'Nein':'').'</td>';
|
||||
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?uid='.$uid["uid"].'" target="vilesci_detail">Rechte bearbeiten</a></td>';
|
||||
$htmlstr .= ' </tr>';
|
||||
}
|
||||
$htmlstr .= '</tbody></table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden";
|
||||
}
|
||||
}
|
||||
|
||||
echo $htmlstr;
|
||||
?>
|
||||
|
||||
|
||||
@@ -31,11 +31,12 @@ $rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/berechtigung'))
|
||||
die('Sie habe keine Rechte um diese Seite anzuzeigen');
|
||||
|
||||
die($rechte->errormsg);
|
||||
//echo '<pre>', var_dump($_POST), '</pre>';exit();
|
||||
$rolle_kurzbz = filter_input(INPUT_GET, 'rolle_kurzbz');
|
||||
$delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
$copy = filter_input(INPUT_POST, 'copy');
|
||||
$saveRecht = isset($_POST['action']) && $_POST['action'] == 'saveRechtAjax' ? true : false;
|
||||
$vergleich = filter_input(INPUT_GET, 'vergleich');
|
||||
?>
|
||||
<html>
|
||||
@@ -157,13 +158,135 @@ $vergleich = filter_input(INPUT_GET, 'vergleich');
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
function saveRecht(rolle_kurzbz, recht, art)
|
||||
{
|
||||
data = {
|
||||
action: 'saveRechtAjax',
|
||||
rolle_ajax: rolle_kurzbz,
|
||||
recht_ajax: recht,
|
||||
art_ajax: art
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: 'berechtigungrolle.php',
|
||||
data: data,
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
success: function(data)
|
||||
{
|
||||
if(data.status!='ok')
|
||||
{
|
||||
//error
|
||||
console.log('error');
|
||||
}
|
||||
else
|
||||
{
|
||||
//location.reload(true);
|
||||
window.location.reload(true)
|
||||
// html = '<td style=""></td><td style="">'+recht+'</td><td style="text-align: right;">'+art+'</td>';
|
||||
// console.log('#'+rolle_kurzbz+'_'+recht);
|
||||
// $('#'+rolle_kurzbz+'_'+recht).html(html);
|
||||
}
|
||||
},
|
||||
error: function(data)
|
||||
{
|
||||
//error
|
||||
console.log('AJAX-Fehler in Error-Methode: ' + data.status + ' - ' + data.error);
|
||||
|
||||
location.reload(true);
|
||||
},
|
||||
stop: function (data)
|
||||
{
|
||||
location.reload(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
button
|
||||
{
|
||||
line-height: 9pt;
|
||||
}
|
||||
table.tablesorter tr:hover td
|
||||
{
|
||||
/*pointer-events: none !important;*/
|
||||
}
|
||||
table.tablesorter tr.odd:hover td
|
||||
{
|
||||
background-color: #d3d3d3 !important;
|
||||
}
|
||||
table.tablesorter tr.even:hover td
|
||||
{
|
||||
background-color: #efefef !important;
|
||||
}
|
||||
table.tablesorter tr.odd:hover td.difference
|
||||
{
|
||||
background-color: #b2b2b2 !important;
|
||||
/*border-top: 1px solid #aaa;*/
|
||||
/*border-bottom: 1px solid #aaa;*/
|
||||
}
|
||||
table.tablesorter tr.even:hover td.difference
|
||||
{
|
||||
background-color: #b2b2b2 !important;
|
||||
/*border-top: 1px solid #aaa;*/
|
||||
/*border-bottom: 1px solid #aaa;*/
|
||||
}
|
||||
.difference
|
||||
{
|
||||
background-color: #b2b2b2 !important;
|
||||
border-top: 1px solid #aaa;
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
/*.difference:hover*/
|
||||
/*{*/
|
||||
/* background-color: #b2b2b2 !important;*/
|
||||
/* border-top: 1px solid #aaa;*/
|
||||
/* border-bottom: 1px solid #aaa;*/
|
||||
/*}*/
|
||||
.tablesorter
|
||||
{
|
||||
border-collapse: collapse !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="background_main">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
if($saveRecht)
|
||||
{
|
||||
$rolle_kurzbz = filter_input(INPUT_POST, 'rolle_ajax');
|
||||
$recht = filter_input(INPUT_POST, 'recht_ajax');
|
||||
$art = filter_input(INPUT_POST, 'art_ajax');
|
||||
|
||||
$berechtigung = new berechtigung();
|
||||
$berechtigung->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 '<h2>Berechtigungen der Rolle "'.$rolle_kurzbz.'"</h2>';
|
||||
@@ -335,35 +458,46 @@ $vergleich = filter_input(INPUT_GET, 'vergleich');
|
||||
<tr>
|
||||
<th>Kurzbz</th>
|
||||
<th>Art</th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
|
||||
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 ' <tr>
|
||||
<td style="border: 1px solid transparent">'.$recht.'</td>
|
||||
<td style="border: 1px solid black">'.$rollen1Arr[$recht].'</td>
|
||||
echo ' <tr id="'.$rolle1.'_'.$recht.'">
|
||||
<td style="">'.$recht.'</td>
|
||||
<td class="difference">'.$rollen1Arr[$recht].'</td>
|
||||
<td style="text-align: right;"><button type="button" onclick="saveRecht(\''.$rolle2.'\', \''.$recht.'\', \''.$rollen1Arr[$recht].'\')"> -> </button></td>
|
||||
</tr>';
|
||||
}
|
||||
elseif (!array_key_exists($recht, $rollen2Arr))
|
||||
{
|
||||
echo ' <tr id="'.$rolle1.'_'.$recht.'">
|
||||
<td style="">'.$recht.'</td>
|
||||
<td style="">'.$art.'</td>
|
||||
<td style="text-align: right;"><button type="button" onclick="saveRecht(\''.$rolle2.'\', \''.$recht.'\', \''.$rollen1Arr[$recht].'\')"> -> </button></td>
|
||||
</tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' <tr>
|
||||
<td style="border: 1px solid transparent">'.$recht.'</td>
|
||||
<td style="border: 1px solid transparent">'.$art.'</td>
|
||||
echo ' <tr id="'.$rolle1.'_'.$recht.'">
|
||||
<td style="">'.$recht.'</td>
|
||||
<td style="">'.$art.'</td>
|
||||
<td style="text-align: right;"></td>
|
||||
</tr>';
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' <tr>
|
||||
<td style="border: 1px solid black; border-right: 0"> </td>
|
||||
<td style="border: 1px solid black; border-left: 0"> </td>
|
||||
echo ' <tr id="'.$rolle1.'_'.$recht.'">
|
||||
<td class="difference" style=""> </td>
|
||||
<td class="difference"style=""> </td>
|
||||
<td class="difference"style=" text-align: right;"></td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
@@ -395,6 +529,7 @@ $vergleich = filter_input(INPUT_GET, 'vergleich');
|
||||
echo ' <table id="t4" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th>Kurzbz</th>
|
||||
<th>Art</th>
|
||||
</tr>
|
||||
@@ -402,28 +537,39 @@ $vergleich = filter_input(INPUT_GET, 'vergleich');
|
||||
<tbody>';
|
||||
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 ' <tr>
|
||||
<td style="border: 1px solid transparent">'.$recht.'</td>
|
||||
<td style="border: 1px solid black">'.$rollen2Arr[$recht].'</td>
|
||||
echo ' <tr id="'.$rolle2.'_'.$recht.'">
|
||||
<td style="text-align: left;"><button type="button" onclick="saveRecht(\''.$rolle1.'\', \''.$recht.'\', \''.$rollen2Arr[$recht].'\')"> <- </button></td>
|
||||
<td style="">'.$recht.'</td>
|
||||
<td class="difference" style="">'.$rollen2Arr[$recht].'</td>
|
||||
</tr>';
|
||||
}
|
||||
elseif (!array_key_exists($recht, $rollen1Arr))
|
||||
{
|
||||
echo ' <tr id="'.$rolle2.'_'.$recht.'">
|
||||
<td style="text-align: left;"><button type="button" onclick="saveRecht(\''.$rolle1.'\', \''.$recht.'\', \''.$rollen2Arr[$recht].'\')"> <- </button></td>
|
||||
<td style="">'.$recht.'</td>
|
||||
<td style="">'.$art.'</td>
|
||||
</tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' <tr>
|
||||
<td style="border: 1px solid transparent">'.$recht.'</td>
|
||||
<td style="border: 1px solid transparent">'.$art.'</td>
|
||||
echo ' <tr id="'.$rolle2.'_'.$recht.'">
|
||||
<td style=""> </td>
|
||||
<td style="">'.$recht.'</td>
|
||||
<td style="">'.$art.'</td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' <tr>
|
||||
<td style="border: 1px solid black; border-right: 0"> </td>
|
||||
<td style="border: 1px solid black; border-left: 0"> </td>
|
||||
echo ' <tr id="'.$rolle2.'_'.$recht.'">
|
||||
<td class="difference" style=""></td>
|
||||
<td class="difference" style=""> </td>
|
||||
<td class="difference" style=""> </td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user