mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-24 02:12:17 +00:00
Benutzerberechtigung Option "Nur User"
Zeigt heruntergebrochen auf User, welche User welche Berechtiung haben
This commit is contained in:
@@ -1065,6 +1065,7 @@ class benutzerberechtigung extends basis_db
|
||||
*
|
||||
* @param string $berechtigung_kurzbz Kurzbezeichnung der Berechtigung, deren Rollen geladen werden sollen
|
||||
* @param boolean $inklusiveRollen Default TRUE. Wenn true, wird ein UNION SELECT mit der tbl_rolleberechtigung ausgefuehrt
|
||||
* @param string $oe_kurzbz Organisationseinheit
|
||||
* @return boolean true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getBenutzerFromBerechtigung($berechtigung_kurzbz, $inklusiveRollen = true, $oe_kurzbz = null)
|
||||
@@ -1073,6 +1074,7 @@ class benutzerberechtigung extends basis_db
|
||||
benutzerberechtigung_id,
|
||||
rolle_kurzbz,
|
||||
funktion_kurzbz,
|
||||
oe_kurzbz,
|
||||
uid,
|
||||
art,
|
||||
berechtigung_kurzbz,
|
||||
@@ -1095,6 +1097,7 @@ class benutzerberechtigung extends basis_db
|
||||
rolle_kurzbz,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
art,
|
||||
berechtigung_kurzbz,
|
||||
NULL,
|
||||
@@ -1118,6 +1121,7 @@ class benutzerberechtigung extends basis_db
|
||||
$obj->uid = $row->uid;
|
||||
$obj->funktion_kurzbz = $row->funktion_kurzbz;
|
||||
$obj->art = $row->art;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->start = $row->start;
|
||||
$obj->ende = $row->ende;
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@ require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/benutzer.class.php');
|
||||
require_once('../../include/berechtigung.class.php');
|
||||
require_once ('../../include/organisationseinheit.class.php');
|
||||
require_once ('../../include/benutzerfunktion.class.php');
|
||||
|
||||
echo '<html>
|
||||
<head>
|
||||
@@ -52,20 +54,34 @@ function checkLength()
|
||||
}
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#erweitertesuche").hide();
|
||||
if ($("#berechtigung_kurzbz").val() == "" && $("#rolle_kurzbz").val() == "")
|
||||
$("#erweitertesuche").hide();
|
||||
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0],[2,0]],
|
||||
widgets: ["zebra"],
|
||||
headers: {4:{sorter:false}}
|
||||
sortList: [[0,0],[1,0],[2,0]],
|
||||
widgets: ["zebra"],
|
||||
headers: {4:{sorter:false}}
|
||||
});
|
||||
$("#t2").tablesorter(
|
||||
{
|
||||
sortList: [[1,0],[2,0],[3,0],[4,0]],
|
||||
widgets: ["zebra"],
|
||||
headers: {8:{sorter:false}},
|
||||
emptyTo: "emptyMax"
|
||||
sortList: [[0,0],[1,0],[2,0],[3,0]],
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
headers: {4:{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" ); }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
$("#t3").tablesorter(
|
||||
{
|
||||
@@ -77,6 +93,58 @@ $(document).ready(function()
|
||||
});
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.buttonGreen
|
||||
{
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background: #d1fab9;
|
||||
background-image: -webkit-linear-gradient(top, #d1fab9, #00de00);
|
||||
background-image: -moz-linear-gradient(top, #d1fab9, #00de00);
|
||||
background-image: -ms-linear-gradient(top, #d1fab9, #00de00);
|
||||
background-image: -o-linear-gradient(top, #d1fab9, #00de00);
|
||||
background-image: linear-gradient(to bottom, #d1fab9, #00de00);
|
||||
-webkit-border-radius: 10;
|
||||
-moz-border-radius: 10;
|
||||
border-radius: 10px;
|
||||
|
||||
border: solid #999 1px;
|
||||
text-decoration: none;
|
||||
}
|
||||
.buttonYellow
|
||||
{
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background: #faf7b9;
|
||||
background-image: -webkit-linear-gradient(top, #faf7b9, #cfde00);
|
||||
background-image: -moz-linear-gradient(top, #faf7b9, #cfde00);
|
||||
background-image: -ms-linear-gradient(top, #faf7b9, #cfde00);
|
||||
background-image: -o-linear-gradient(top, #faf7b9, #cfde00);
|
||||
background-image: linear-gradient(to bottom, #faf7b9, #cfde00);
|
||||
-webkit-border-radius: 10;
|
||||
-moz-border-radius: 10;
|
||||
border-radius: 10px;
|
||||
|
||||
border: solid #999 1px;
|
||||
text-decoration: none;
|
||||
}
|
||||
.buttonRed
|
||||
{
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background: #f79c9c;
|
||||
background-image: -webkit-linear-gradient(top, #f79c9c, #cc0202);
|
||||
background-image: -moz-linear-gradient(top, #f79c9c, #cc0202);
|
||||
background-image: -ms-linear-gradient(top, #f79c9c, #cc0202);
|
||||
background-image: -o-linear-gradient(top, #f79c9c, #cc0202);
|
||||
background-image: linear-gradient(to bottom, #f79c9c, #cc0202);
|
||||
-webkit-border-radius: 10;
|
||||
-moz-border-radius: 10;
|
||||
border-radius: 10px;
|
||||
border: solid #999 1px;
|
||||
text-decoration: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
@@ -102,6 +170,7 @@ $benutzerart = (isset($_GET['benutzerart'])?$_GET['benutzerart']:'');
|
||||
$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']:'');
|
||||
$userOnly = (isset($_GET['userOnly']) ? true : false);
|
||||
|
||||
$htmlstr='
|
||||
<table width="100%">
|
||||
@@ -141,6 +210,7 @@ $htmlstr='
|
||||
$htmlstr .= '<option value="'.$berechtigung->berechtigung_kurzbz.'" title="'.$berechtigung->beschreibung.'" '.$selected.'>'.$berechtigung->berechtigung_kurzbz.'</option>';
|
||||
}
|
||||
$htmlstr .= '</select>
|
||||
<input type="checkbox" name="userOnly" ' . ($userOnly == true ? 'checked' : '') . '> Nur User
|
||||
<input type="submit" value="Suchen">
|
||||
</form><hr>
|
||||
<form accept-charset="UTF-8" name="searchrollen" method="GET">
|
||||
@@ -247,77 +317,180 @@ if(isset($_GET['searchstr']))
|
||||
if($berechtigung_kurzbz != '')
|
||||
{
|
||||
$berechtigungen = new benutzerberechtigung();
|
||||
$berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz);
|
||||
|
||||
if(isset($berechtigungen->result) && count($berechtigungen->result) != 0)
|
||||
{
|
||||
$htmlstr .= "<table id='t2' class='tablesorter'><thead><tr>\n";
|
||||
$htmlstr .= "<th>Berechtigung</th><th>Rolle</th><th>Funktion</th><th>Nachname</th><th>Vorname</th><th>UID</th><th>Art</th><th>Benutzer Aktiv</th><th>Status</th><th>Aktion</th>";
|
||||
$htmlstr .= "</tr></thead><tbody>\n";
|
||||
|
||||
foreach($berechtigungen->result as $row)
|
||||
|
||||
// Wenn $userOnly false ist, werden die Rollen und Funktionen ausgegeben, die das Recht beinhalten,
|
||||
// ansonsten werden die Rollen und Funktionen auf User aufgelöst und nur User ausgegeben
|
||||
if ($userOnly == false)
|
||||
{
|
||||
$berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz);
|
||||
|
||||
if(isset($berechtigungen->result) && count($berechtigungen->result) != 0)
|
||||
{
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($row->uid);
|
||||
|
||||
$heute = strtotime(date('Y-m-d'));
|
||||
|
||||
if ($row->ende!='' && strtotime($row->ende) < $heute)
|
||||
$htmlstr .= "<h3>".$berechtigung_kurzbz."</h3>\n";
|
||||
$htmlstr .= "<table id='t2' class='tablesorter'><thead><tr>\n";
|
||||
$htmlstr .= "<th>Rolle</th><th>Funktion</th><th>Nachname</th><th>Vorname</th><th>UID</th><th>Art</th><th>Benutzer Aktiv</th><th>Status</th><th>Aktion</th>";
|
||||
$htmlstr .= "</tr></thead><tbody>\n";
|
||||
|
||||
foreach($berechtigungen->result as $row)
|
||||
{
|
||||
$color1 = '#f79c9c';
|
||||
$color2 = '#cc0202';
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($row->uid);
|
||||
|
||||
$heute = strtotime(date('Y-m-d'));
|
||||
|
||||
if ($row->ende!='' && strtotime($row->ende) < $heute)
|
||||
{
|
||||
$status = '<div class="buttonRed"></div>';
|
||||
}
|
||||
elseif ($row->start!='' && strtotime($row->start) > $heute)
|
||||
{
|
||||
$status = '<div class="buttonYellow"></div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$status = '<div class="buttonGreen"></div>';
|
||||
}
|
||||
|
||||
$htmlstr .= ' <tr>';
|
||||
$htmlstr .= ' <td>'.($row->rolle_kurzbz != ''?$row->rolle_kurzbz:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($row->funktion_kurzbz != ''?$row->funktion_kurzbz:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($benutzer->nachname != ''?$benutzer->nachname:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($benutzer->vorname != ''?$benutzer->vorname:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($row->uid != ''?$row->uid:'').'</td>';
|
||||
$htmlstr .= ' <td>'.$row->art.'</td>';
|
||||
$htmlstr .= ' <td>'.(isset($row->uid)?$benutzer->bnaktiv?'Ja':'Nein':'').'</td>';
|
||||
$htmlstr .= ' <td align="center">'.$status.'</td>';
|
||||
if ($row->uid != '')
|
||||
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?uid='.$row->uid.'" target="vilesci_detail">Benutzerrechte bearbeiten</a></td>';
|
||||
elseif ($row->funktion_kurzbz != '')
|
||||
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?funktion_kurzbz='.$row->funktion_kurzbz.'" target="vilesci_detail">Funktionsrechte bearbeiten</a></td>';
|
||||
elseif ($row->rolle_kurzbz != '')
|
||||
$htmlstr .= ' <td><a href="berechtigungrolle.php?rolle_kurzbz='.$row->rolle_kurzbz.'" target="vilesci_detail">Rollenrechte bearbeiten</a></td>';
|
||||
|
||||
$htmlstr .= ' </tr>';
|
||||
}
|
||||
elseif ($row->start!='' && strtotime($row->start) > $heute)
|
||||
{
|
||||
$color1 = '#faf7b9';
|
||||
$color2 = '#cfde00';
|
||||
}
|
||||
else
|
||||
{
|
||||
$color1 = '#d1fab9';
|
||||
$color2 = '#00de00';
|
||||
}
|
||||
$status='<div style="
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background: '.$color1.';
|
||||
background-image: -webkit-linear-gradient(top, '.$color1.', '.$color2.');
|
||||
background-image: -moz-linear-gradient(top, '.$color1.', '.$color2.');
|
||||
background-image: -ms-linear-gradient(top, '.$color1.', '.$color2.');
|
||||
background-image: -o-linear-gradient(top, '.$color1.', '.$color2.');
|
||||
background-image: linear-gradient(to bottom, '.$color1.', '.$color2.');
|
||||
-webkit-border-radius: 10;
|
||||
-moz-border-radius: 10;
|
||||
border-radius: 10px;
|
||||
|
||||
border: solid #999 1px;
|
||||
text-decoration: none;
|
||||
"></div>';
|
||||
|
||||
$htmlstr .= ' <tr>';
|
||||
$htmlstr .= ' <td>'.$row->berechtigung_kurzbz.'</td>';
|
||||
$htmlstr .= ' <td>'.($row->rolle_kurzbz != ''?$row->rolle_kurzbz:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($row->funktion_kurzbz != ''?$row->funktion_kurzbz:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($benutzer->nachname != ''?$benutzer->nachname:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($benutzer->vorname != ''?$benutzer->vorname:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($row->uid != ''?$row->uid:'').'</td>';
|
||||
$htmlstr .= ' <td>'.$row->art.'</td>';
|
||||
$htmlstr .= ' <td>'.(isset($row->uid)?$benutzer->bnaktiv?'Ja':'Nein':'').'</td>';
|
||||
$htmlstr .= ' <td align="center">'.$status.'</td>';
|
||||
if ($row->uid != '')
|
||||
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?uid='.$row->uid.'" target="vilesci_detail">Benutzerrechte bearbeiten</a></td>';
|
||||
elseif ($row->funktion_kurzbz != '')
|
||||
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?funktion_kurzbz='.$row->funktion_kurzbz.'" target="vilesci_detail">Funktionsrechte bearbeiten</a></td>';
|
||||
elseif ($row->rolle_kurzbz != '')
|
||||
$htmlstr .= ' <td><a href="berechtigungrolle.php?rolle_kurzbz='.$row->rolle_kurzbz.'" target="vilesci_detail">Rollenrechte bearbeiten</a></td>';
|
||||
|
||||
$htmlstr .= ' </tr>';
|
||||
$htmlstr .= '</tbody></table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden";
|
||||
}
|
||||
$htmlstr .= '</tbody></table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden";
|
||||
else
|
||||
{
|
||||
$berechtigungen_array = array();
|
||||
$berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz);
|
||||
|
||||
if (isset($berechtigungen->result) && count($berechtigungen->result) != 0)
|
||||
{
|
||||
foreach ($berechtigungen->result as $row)
|
||||
{
|
||||
if ($row->uid != '')
|
||||
{
|
||||
$berechtigungen_array[] = array('uid' => $row->uid,
|
||||
'art' => $row->art,
|
||||
'start' => $row->start,
|
||||
'ende' => $row->ende,
|
||||
'oe_kurzbz' => $row->oe_kurzbz,
|
||||
'rolle_kurzbz' => '',
|
||||
'funktion_kurzbz' => '');
|
||||
}
|
||||
if ($row->rolle_kurzbz != '')
|
||||
{
|
||||
$user_rolleberechtigung = new benutzerberechtigung();
|
||||
$user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz);
|
||||
foreach ($user_rolleberechtigung->result as $row_rolle)
|
||||
{
|
||||
$berechtigungen_array[] = array('uid' => $row_rolle->uid,
|
||||
'art' => $row_rolle->art,
|
||||
'start' => $row_rolle->start,
|
||||
'ende' => $row_rolle->ende,
|
||||
'oe_kurzbz' => $row_rolle->oe_kurzbz,
|
||||
'rolle_kurzbz' => $row_rolle->rolle_kurzbz,
|
||||
'funktion_kurzbz' => $row->funktion_kurzbz);
|
||||
}
|
||||
}
|
||||
if ($row->funktion_kurzbz != '')
|
||||
{
|
||||
$user_funktion = new benutzerfunktion();
|
||||
$user_funktion->getBenutzerFunktionen($row->funktion_kurzbz);
|
||||
foreach ($user_funktion->result as $row_funktion)
|
||||
{
|
||||
$berechtigungen_array[] = array('uid' => $row_funktion->uid,
|
||||
'art' => $row->art,
|
||||
'start' => $row->start,
|
||||
'ende' => $row->ende,
|
||||
'oe_kurzbz' => $row_funktion->oe_kurzbz,
|
||||
'rolle_kurzbz' => '',
|
||||
'funktion_kurzbz' => $row->funktion_kurzbz);
|
||||
}
|
||||
}
|
||||
}
|
||||
// var_dump($berechtigungen_array);exit;
|
||||
// Benutzer der Rolle auflösen
|
||||
foreach ($berechtigungen->result as $row)
|
||||
{
|
||||
$user_rolleberechtigung = new benutzerberechtigung();
|
||||
$user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz);
|
||||
}
|
||||
|
||||
$htmlstr .= "<h3>".$berechtigung_kurzbz."</h3>\n";
|
||||
$htmlstr .= "<div style='font-size: 9pt'>".count($berechtigungen_array)." Einträge</div>";
|
||||
$htmlstr .= "<div style='font-size: 9pt'>".count(array_unique(array_column($berechtigungen_array, 'uid')))." UIDs</div>";
|
||||
$htmlstr .= "<table id='t2' class='tablesorter'><thead><tr>\n";
|
||||
$htmlstr .= " <th>Nachname</th>
|
||||
<th>Vorname</th>
|
||||
<th>UID</th>
|
||||
<th>Art</th>
|
||||
<th>OE_Kurzbz</th>
|
||||
<th>Rolle</th>
|
||||
<th>Funktion</th>
|
||||
<th>Benutzer Aktiv</th>
|
||||
<th>Status</th>
|
||||
<th>Aktion</th>";
|
||||
$htmlstr .= "</tr></thead><tbody>\n";
|
||||
|
||||
foreach ($berechtigungen_array as $key => $row)
|
||||
{
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($row['uid']);
|
||||
|
||||
$organisationseinheit = new organisationseinheit($row['oe_kurzbz']);
|
||||
|
||||
$heute = strtotime(date('Y-m-d'));
|
||||
|
||||
if ($row['ende'] != '' && strtotime($row['ende']) < $heute)
|
||||
{
|
||||
$status = '<div class="buttonRed"></div>';
|
||||
}
|
||||
elseif ($row['start'] != '' && strtotime($row['start']) > $heute)
|
||||
{
|
||||
$status = '<div class="buttonYellow"></div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$status = '<div class="buttonGreen"></div>';
|
||||
}
|
||||
|
||||
$htmlstr .= ' <tr>';
|
||||
$htmlstr .= ' <td>' . ($benutzer->nachname != '' ? $benutzer->nachname : '') . '</td>';
|
||||
$htmlstr .= ' <td>' . ($benutzer->vorname != '' ? $benutzer->vorname : '') . '</td>';
|
||||
$htmlstr .= ' <td>' . ($row['uid'] != '' ? $row['uid'] : '') . '</td>';
|
||||
$htmlstr .= ' <td>' . $row['art'] . '</td>';
|
||||
$htmlstr .= ' <td>' . $organisationseinheit->organisationseinheittyp_kurzbz . ' ' .$organisationseinheit->bezeichnung . '</td>';
|
||||
$htmlstr .= ' <td>' . $row['rolle_kurzbz'] . '</td>';
|
||||
$htmlstr .= ' <td>' . $row['funktion_kurzbz'] . '</td>';
|
||||
$htmlstr .= ' <td>' . (isset($row['uid']) ? $benutzer->bnaktiv ? 'Ja' : 'Nein' : '') . '</td>';
|
||||
$htmlstr .= ' <td align="center">' . $status . '</td>';
|
||||
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?uid=' . $row['uid'] . '" target="vilesci_detail">Benutzerrechte bearbeiten</a></td>';
|
||||
$htmlstr .= ' </tr>';
|
||||
}
|
||||
$htmlstr .= '</tbody></table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user