diff --git a/include/benutzerberechtigung.class.php b/include/benutzerberechtigung.class.php index 2868853e9..ed0b60977 100644 --- a/include/benutzerberechtigung.class.php +++ b/include/benutzerberechtigung.class.php @@ -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; diff --git a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php index 2f053cdb5..0b19793e9 100644 --- a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php +++ b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php @@ -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 ' @@ -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() }); + @@ -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=' @@ -141,6 +210,7 @@ $htmlstr=' $htmlstr .= ''; } $htmlstr .= ' + Nur User
@@ -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 .= "
\n"; - $htmlstr .= ""; - $htmlstr .= "\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 .= "

".$berechtigung_kurzbz."

\n"; + $htmlstr .= "
BerechtigungRolleFunktionNachnameVornameUIDArtBenutzer AktivStatusAktion
\n"; + $htmlstr .= ""; + $htmlstr .= "\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 = '
'; + } + elseif ($row->start!='' && strtotime($row->start) > $heute) + { + $status = '
'; + } + else + { + $status = '
'; + } + + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + if ($row->uid != '') + $htmlstr .= ' '; + elseif ($row->funktion_kurzbz != '') + $htmlstr .= ' '; + elseif ($row->rolle_kurzbz != '') + $htmlstr .= ' '; + + $htmlstr .= ' '; } - elseif ($row->start!='' && strtotime($row->start) > $heute) - { - $color1 = '#faf7b9'; - $color2 = '#cfde00'; - } - else - { - $color1 = '#d1fab9'; - $color2 = '#00de00'; - } - $status='
'; - - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - if ($row->uid != '') - $htmlstr .= ' '; - elseif ($row->funktion_kurzbz != '') - $htmlstr .= ' '; - elseif ($row->rolle_kurzbz != '') - $htmlstr .= ' '; - - $htmlstr .= ' '; + $htmlstr .= '
RolleFunktionNachnameVornameUIDArtBenutzer AktivStatusAktion
'.($row->rolle_kurzbz != ''?$row->rolle_kurzbz:'').''.($row->funktion_kurzbz != ''?$row->funktion_kurzbz:'').''.($benutzer->nachname != ''?$benutzer->nachname:'').''.($benutzer->vorname != ''?$benutzer->vorname:'').''.($row->uid != ''?$row->uid:'').''.$row->art.''.(isset($row->uid)?$benutzer->bnaktiv?'Ja':'Nein':'').''.$status.'Benutzerrechte bearbeitenFunktionsrechte bearbeitenRollenrechte bearbeiten
'.$row->berechtigung_kurzbz.''.($row->rolle_kurzbz != ''?$row->rolle_kurzbz:'').''.($row->funktion_kurzbz != ''?$row->funktion_kurzbz:'').''.($benutzer->nachname != ''?$benutzer->nachname:'').''.($benutzer->vorname != ''?$benutzer->vorname:'').''.($row->uid != ''?$row->uid:'').''.$row->art.''.(isset($row->uid)?$benutzer->bnaktiv?'Ja':'Nein':'').''.$status.'Benutzerrechte bearbeitenFunktionsrechte bearbeitenRollenrechte bearbeiten
'; + } + else + { + $htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden"; } - $htmlstr .= ''; } - 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 .= "

".$berechtigung_kurzbz."

\n"; + $htmlstr .= "
".count($berechtigungen_array)." Einträge
"; + $htmlstr .= "
".count(array_unique(array_column($berechtigungen_array, 'uid')))." UIDs
"; + $htmlstr .= "\n"; + $htmlstr .= " + + + + + + + + + "; + $htmlstr .= "\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 = '
'; + } + elseif ($row['start'] != '' && strtotime($row['start']) > $heute) + { + $status = '
'; + } + else + { + $status = '
'; + } + + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + } + $htmlstr .= '
NachnameVornameUIDArtOE_KurzbzRolleFunktionBenutzer AktivStatusAktion
' . ($benutzer->nachname != '' ? $benutzer->nachname : '') . '' . ($benutzer->vorname != '' ? $benutzer->vorname : '') . '' . ($row['uid'] != '' ? $row['uid'] : '') . '' . $row['art'] . '' . $organisationseinheit->organisationseinheittyp_kurzbz . ' ' .$organisationseinheit->bezeichnung . '' . $row['rolle_kurzbz'] . '' . $row['funktion_kurzbz'] . '' . (isset($row['uid']) ? $benutzer->bnaktiv ? 'Ja' : 'Nein' : '') . '' . $status . 'Benutzerrechte bearbeiten
'; + } + else + { + $htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden"; + } } }