diff --git a/include/berechtigung.class.php b/include/berechtigung.class.php
index 684ad4e81..ab224be4d 100644
--- a/include/berechtigung.class.php
+++ b/include/berechtigung.class.php
@@ -312,5 +312,42 @@ class berechtigung extends basis_db
return false;
}
}
+
+ /**
+ * Sucht nach Berechtigungen
+ * @param string $searchItem Suchbegriff
+ * @return boolean
+ */
+ public function searchBerechtigungen($searchItem)
+ {
+ $this->result=array();
+ $qry = 'SELECT * FROM system.tbl_berechtigung WHERE
+ (
+ LOWER(berechtigung_kurzbz) LIKE LOWER(\'%'.$this->db_escape(($searchItem)).'%\')
+ OR
+ LOWER(beschreibung) LIKE LOWER(\'%'.$this->db_escape(($searchItem)).'%\')
+ )';
+
+ $qry .= ' ORDER BY berechtigung_kurzbz';
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new berechtigung();
+
+ $obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
+ $obj->beschreibung = $row->beschreibung;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Berechtigungen';
+ return false;
+ }
+ }
}
?>
\ No newline at end of file
diff --git a/vilesci/stammdaten/benutzerberechtigung_autocomplete.php b/vilesci/stammdaten/benutzerberechtigung_autocomplete.php
new file mode 100644
index 000000000..a888a5b67
--- /dev/null
+++ b/vilesci/stammdaten/benutzerberechtigung_autocomplete.php
@@ -0,0 +1,139 @@
+
+ */
+require_once ('../../config/vilesci.config.inc.php');
+require_once ('../../include/functions.inc.php');
+require_once ('../../include/basis_db.class.php');
+require_once ('../../include/ort.class.php');
+require_once ('../../include/benutzer.class.php');
+require_once ('../../include/studiengang.class.php');
+require_once ('../../include/berechtigung.class.php');
+require_once ('../../include/organisationseinheit.class.php');
+require_once ('../../include/sprache.class.php');
+require_once ('../../include/wawi_kostenstelle.class.php');
+
+if (! $db = new basis_db())
+ die('Es konnte keine Verbindung zum Server aufgebaut werden.');
+
+$uid = get_uid();
+$sprache = getSprache();
+
+if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'benutzer')
+{
+ $search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : ''));
+ if (is_null($search) || $search == '')
+ exit();
+
+ $benutzer = new benutzer();
+
+ if ($benutzer->search(array(
+ $search
+ )))
+ {
+ $result_obj = array();
+ foreach ($benutzer->result as $row)
+ {
+ $item['vorname'] = html_entity_decode($row->vorname);
+ $item['nachname'] = html_entity_decode($row->nachname);
+ $item['uid'] = html_entity_decode($row->uid);
+ $result_obj[] = $item;
+ }
+ echo json_encode($result_obj);
+ }
+ exit();
+}
+
+if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'berechtigung')
+{
+ $search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : ''));
+ if (is_null($search) || $search == '')
+ exit();
+
+ $berechtigung = new berechtigung();
+
+ if ($berechtigung->searchBerechtigungen($search))
+ {
+ $result_obj = array();
+ foreach ($berechtigung->result as $row)
+ {
+ $item['berechtigung_kurzbz'] = html_entity_decode($row->berechtigung_kurzbz);
+ $item['beschreibung'] = html_entity_decode($row->beschreibung);
+ $result_obj[] = $item;
+ }
+ echo json_encode($result_obj);
+ }
+ exit();
+}
+
+if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'oe_kurzbz')
+{
+ $search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : ''));
+ if (is_null($search) || $search == '')
+ exit();
+
+ $search = array($search);
+ $oe = new organisationseinheit();
+ $oe->search($search);
+
+ $stg = new studiengang();
+ $stg->search($search);
+ foreach($stg->result as $row)
+ {
+ if($row->aktiv===true)
+ $oe->result[] = new organisationseinheit($row->oe_kurzbz);
+ }
+
+ if(is_array($oe->result) && count($oe->result) > 0)
+ {
+ $result_obj = array();
+ foreach($oe->result as $row)
+ {
+ if($row->aktiv==true)
+ {
+ $item['oe_kurzbz'] = html_entity_decode($row->oe_kurzbz);
+ $item['organisationseinheittyp_kurzbz'] = html_entity_decode($row->organisationseinheittyp_kurzbz);
+ $item['bezeichnung'] = html_entity_decode($row->bezeichnung);
+ $result_obj[] = $item;
+ }
+ }
+ echo json_encode($result_obj);
+ }
+ exit();
+}
+
+if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'kostenstelle')
+{
+ $search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : ''));
+ if (is_null($search) || $search == '')
+ exit();
+
+ $kst = new wawi_kostenstelle();
+
+ if ($kst->getAll($search))
+ {
+ $result_obj = array();
+ foreach ($kst->result as $row)
+ {
+ $item['kostenstelle_id'] = html_entity_decode($row->kostenstelle_id);
+ $item['bezeichnung'] = html_entity_decode($row->bezeichnung);
+ $result_obj[] = $item;
+ }
+ echo json_encode($result_obj);
+ }
+ exit();
+}
+
+?>
diff --git a/vilesci/stammdaten/benutzerberechtigung_detailliste.php b/vilesci/stammdaten/benutzerberechtigung_detailliste.php
new file mode 100644
index 000000000..a5e352075
--- /dev/null
+++ b/vilesci/stammdaten/benutzerberechtigung_detailliste.php
@@ -0,0 +1,166 @@
+
+ * 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');
+
+?>
+
+
+ Detaillierte Berechtigungsliste
+
+
+
+
+
+
+
+
+
+
+ Detaillierte Berechtigungsliste von vorname.' '.$benutzer->nachname ?>
+
+ 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 '
+
+ | Funktion |
+ Rolle |
+ Recht |
+ Art |
+ Organisationseinheit |
+ Kostenstelle |
+ Gültig ab |
+ Gültig bis |
+ Status |
+
';
+ 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 '';
+ echo '| '.($key->funktion_kurzbz != '' ? $funktionsArray[$key->funktion_kurzbz] : '').' | ';
+ echo ''.($key->rolle_kurzbz != '' ? $key->rolle_kurzbz : '').' | ';
+ echo ''.($key->berechtigung_kurzbz != '' ? $key->berechtigung_kurzbz : '').' | ';
+ echo ''.($key->art != '' ? $key->art : '').' | ';
+ echo ''.($key->oe_kurzbz != '' ? $oeArray[$key->oe_kurzbz] : '').' | ';
+ echo ''.($key->kostenstelle_id != '' ? $kostenstelleArray[$key->kostenstelle_id] : '').' | ';
+ echo ''.($key->start != '' ? $key->start : '').' | ';
+ echo ''.($key->ende != '' ? $key->ende : '').' | ';
+ echo ''.$titel.' | ';
+ echo '
';
+ }
+ echo '
';
+
+ ?>
+
+
+
diff --git a/vilesci/stammdaten/benutzerberechtigung_details.php b/vilesci/stammdaten/benutzerberechtigung_details.php
index 5db140a81..4cee06950 100644
--- a/vilesci/stammdaten/benutzerberechtigung_details.php
+++ b/vilesci/stammdaten/benutzerberechtigung_details.php
@@ -37,21 +37,43 @@ require_once('../../include/person.class.php');
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');
+/*
+ * TODOs
+ *
+
+Checkbox-Range
+Mehrfach-Löschen
+
+
+Wawi und kostenstelle ausblenden
+Checkbox markieren bei (doppel)klick auf Zeile
+
+----------------------
+
+Nach übertragen gleich zu Person springen
+Bug in Kopieren - Verdoppelt alle Einträge
+Sortierreihenfolge. OE wird anscheinend nicht sortiert
+ART prüfen auf schreibweise
+BEschreibungstexte bestehender Rechte
+
+ */
$user = get_uid();
$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');
//$reloadstr = ''; // neuladen der liste im oberen frame
$htmlstr = '';
-$errorstr = ''; //fehler beim insert
+$errorstr = '';
+$successstr = '';
$sel = '';
$chk = '';
$oe_arr = array();
@@ -73,64 +95,161 @@ $neu = false;
$negativ = false;
$filter=(isset($_GET['filter'])?$_GET['filter']:'alle');
-if(isset($_POST['del']))
+if(isset($_POST['delete']) && $_POST['delete'] != '')
{
if(!$rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
- die('Sie haben keine Berechtigung fuer diese Aktion');
+ die($rechte->errormsg);
- $benutzerberechtigung_id = $_POST['benutzerberechtigung_id'];
+ $benutzerberechtigung_id = $_POST['delete'];
$ber = new benutzerberechtigung();
if(!$ber->delete($benutzerberechtigung_id))
$errorstr .= 'Datensatz konnte nicht gelöscht werden!';
- //$reloadstr .= "\n";
+ //$reloadstr .= "";
}
-if(isset($_POST['kopieren']))
+if(isset($_POST['delete_multi']) && $_POST['delete_multi'] != '')
{
+ if(!$rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
+ die($rechte->errormsg);
+
+ if (isset($_POST['dataset']))
+ {
+ $i = 0;
+ foreach ($_POST['dataset'] AS $benutzerberechtigung_id => $value)
+ {
+ // Nur markierte Rechte kopieren
+ if (!isset($value['check']))
+ {
+ continue;
+ }
+
+ $ber = new benutzerberechtigung();
+ if(!$ber->delete($benutzerberechtigung_id))
+ {
+ $errorstr .= 'Datensatz konnte nicht gelöscht werden!';
+ }
+ 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 = 'Berechtigung gelöscht';
+
+ if(!$log->save())
+ {
+ $errorstr .= "Fehler beim schreiben des Log-Eintrags
";
+ }
+ }
+ }
+ if ($errorstr == '')
+ {
+ $successstr .= "".$i." Rechte erfolgreich gelöscht
";
+ }
+ }
+
+
+
+ //$reloadstr .= "";
+
+}
+
+if(isset($_POST['uebertragen']) && $_POST['uebertragen_nach'] != '')
+{
+ //echo '', var_dump($_POST), '
';exit();
if($rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
{
- $uid = $_POST['uid'];
- $uid_von = $_POST['uid_von'];
+ $uidVon = $_POST['uid'];
+ $copyTo = $_POST['uebertragen_nach'];
- $rechtevon = new benutzerberechtigung();
- if(!$rechtevon->loadBenutzerRollen($uid_von))
- die('Fehler beim Laden der Berechtigung von '.$uid_von);
-
- foreach($rechtevon->berechtigungen AS $row)
+ if (isset($_POST['dataset']))
{
- //Nur aktive Berechtigungen kopieren
- if(($row->start=='' || $row->start<=date('Y-m-d')) && ($row->ende=='' || $row->ende>=date('Y-m-d')))
+ $i = 0;
+ foreach ($_POST['dataset'] AS $key => $value)
{
+ // Nur markierte Rechte kopieren
+ if (!isset($value['check']))
+ {
+ continue;
+ }
+
+ $rolle_kurzbz = (isset($value['rolle_kurzbz']) ? $value['rolle_kurzbz'] : '');
+ $berechtigung_kurzbz = (isset($value['berechtigung_kurzbz']) ? $value['berechtigung_kurzbz'] : '');
+ $art = (isset($value['art']) ? $value['art'] : '');
+ $oe_kurzbz = (isset($value['oe_kurzbz']) ? $value['oe_kurzbz'] : '');
+ $kostenstelle_id = (isset($value['kostenstelle_id']) ? $value['kostenstelle_id'] : '');
+ $start = (isset($value['start']) ? $value['start'] : '');
+ $ende = (isset($value['ende']) ? $value['ende'] : '');
+ $anmerkung = (isset($value['anmerkung']) ? $value['anmerkung'] : '');
+
+ $funktion_kurzbz = (isset($value['funktion_kurzbz']) ? $value['funktion_kurzbz'] : '');
+ $studiensemester_kurzbz = null;
+
$ber = new benutzerberechtigung();
- $ber->new = true;
- //$ber->benutzerberechtigung_id = $benutzerberechtigung_id;
- $ber->art = $row->art;
- $ber->oe_kurzbz = $row->oe_kurzbz;
- $ber->berechtigung_kurzbz = $row->berechtigung_kurzbz;
- $ber->rolle_kurzbz = $row->rolle_kurzbz;
- $ber->uid = $uid;
- $ber->funktion_kurzbz = $row->funktion_kurzbz;
- $ber->studiensemester_kurzbz = $row->studiensemester_kurzbz;
- $ber->start = $row->start;
- $ber->ende = $row->ende;
- $ber->negativ = $row->negativ;
- $ber->insertamum=date('Y-m-d H:i:s');
+ $ber->insertamum = date('Y-m-d H:i:s');
$ber->insertvon = $user;
+ $ber->new = true;
+
+ if (isset($value['negativ']))
+ $ber->negativ = true;
+ else
+ $ber->negativ = false;
+
+ $ber->art = $art;
+ $ber->oe_kurzbz = $oe_kurzbz;
+ $ber->berechtigung_kurzbz = $berechtigung_kurzbz;
+ $ber->rolle_kurzbz = $rolle_kurzbz;
+ $ber->uid = $copyTo;
+ $ber->funktion_kurzbz = $funktion_kurzbz;
+ $ber->studiensemester_kurzbz = $studiensemester_kurzbz;
+ $ber->start = $start;
+ $ber->ende = $ende;
$ber->updateamum = date('Y-m-d H:i:s');
$ber->updatevon = $user;
- $ber->kostenstelle_id = $row->kostenstelle_id;
- $ber->anmerkung = 'Kopiert von UID '.$uid_von.($row->anmerkung!=''?'. Anmerkung von UID '.$uid_von.': '.$row->anmerkung:'');
+ $ber->kostenstelle_id = $kostenstelle_id;
+ $ber->anmerkung = 'Kopiert von UID '.$uidVon.($anmerkung!=''?'. Anmerkung von UID '.$uidVon.': '.$anmerkung:'');
if(!$ber->save())
{
- if (!$ber->new)
- $errorstr .= "Datensatz konnte nicht gespeichert werden!".$ber->errormsg;
+ $errorstr .= "Datensatz 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 = 'Berechtigung übertragen von '.$uidVon.' nach '.$copyTo;
+
+ if(!$log->save())
+ {
+ $errorstr .= "Fehler beim schreiben des Log-Eintrags
";
+ }
+ }
+ }
+ if ($errorstr == '')
+ {
+ $successstr .= "".$i." Rechte erfolgreich kopiert
";
+ echo "";
}
}
}
@@ -140,71 +259,220 @@ if(isset($_POST['kopieren']))
}
}
-if(isset($_POST['schick']) || isset($_POST['copy']))
+if(isset($_POST['setDate_multi']) && $_POST['setDate_multi'] != '')
+{
+ if(!$rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
+ die($rechte->errormsg);
+
+ 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');
+ }
+
+ $ber->ende = date('Y-m-d',strtotime("-1 days"));
+ $ber->updateamum = date('Y-m-d H:i:s');
+ $ber->updatevon = $user;
+
+ if(!$ber->save())
+ {
+ $errorstr .= "Das Ende-Datum 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 = 'Berechtigung für '.$uid.' beendet';
+
+ if(!$log->save())
+ {
+ $errorstr .= "Fehler beim schreiben des Log-Eintrags
";
+ }
+ }
+ }
+ if ($errorstr == '')
+ {
+ $successstr .= "Ende-Datum bei ".$i." Rechten erfolgreich beendet
";
+ }
+ }
+
+
+
+ //$reloadstr .= "";
+
+}
+
+if(isset($_POST['schick']))
{
if($rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
{
- $benutzerberechtigung_id = $_POST['benutzerberechtigung_id'];
- $art = $_POST['art'];
- $oe_kurzbz = (isset($_POST['oe_kurzbz'])?$_POST['oe_kurzbz']:'');
- $berechtigung_kurzbz = (isset($_POST['berechtigung_kurzbz'])?$_POST['berechtigung_kurzbz']:'');
- $rolle_kurzbz = (isset($_POST['rolle_kurzbz'])?$_POST['rolle_kurzbz']:'');
- $uid = $_POST['uid'];
- $funktion_kurzbz = $_POST['funktion_kurzbz'];
- $studiensemester_kurzbz = null;//$_POST['studiensemester_kurzbz'];
- $start = $_POST['start'];
- $ende = $_POST['ende'];
- $kostenstelle_id = (isset($_POST['kostenstelle_id'])?$_POST['kostenstelle_id']:'');
- $anmerkung = (isset($_POST['anmerkung'])?$_POST['anmerkung']:'');
+ if (isset($_POST['dataset']))
+ {
+ foreach ($_POST['dataset'] AS $benutzerberechtigung_id => $value)
+ {
+ $rolle_kurzbz = (isset($value['rolle_kurzbz']) ? $value['rolle_kurzbz'] : '');
+ $berechtigung_kurzbz = (isset($value['berechtigung_kurzbz']) ? $value['berechtigung_kurzbz'] : '');
+ $art = (isset($value['art']) ? $value['art'] : '');
+ $oe_kurzbz = (isset($value['oe_kurzbz']) ? $value['oe_kurzbz'] : '');
+ //echo '', var_dump($oe_kurzbz), '
';
+ $kostenstelle_id = (isset($value['kostenstelle_id']) ? $value['kostenstelle_id'] : '');
+ $start = (isset($value['start']) ? $value['start'] : '');
+ $ende = (isset($value['ende']) ? $value['ende'] : '');
+ $uid = $_POST['uid'];
+ $anmerkung = (isset($value['anmerkung']) ? $value['anmerkung'] : '');
+ $funktion_kurzbz = (isset($_POST['funktion_kurzbz']) ? $_POST['funktion_kurzbz'] : '');
+ $studiensemester_kurzbz = null;
+
+ $ber = new benutzerberechtigung();
+ if (isset($_POST['neu']))
+ {
+ $ber->insertamum = date('Y-m-d H:i:s');
+ $ber->insertvon = $user;
+ $ber->new = true;
+ }
+ else
+ {
+ if(!$ber->load($benutzerberechtigung_id))
+ {
+ die('Fehler beim Laden der Berechtigung');
+ }
+ //Nur bei geänderten Datensätzen das Updatedatum setzen
+ if ($ber->berechtigung_kurzbz != $berechtigung_kurzbz
+ || $ber->art != $art
+ || $ber->oe_kurzbz != $oe_kurzbz
+ || $ber->rolle_kurzbz != $rolle_kurzbz
+ || $ber->uid != $uid
+ || $ber->funktion_kurzbz != $funktion_kurzbz
+ || $ber->studiensemester_kurzbz != $studiensemester_kurzbz
+ || $ber->start != $start
+ || $ber->ende != $ende
+ || $ber->kostenstelle_id != $kostenstelle_id
+ || $ber->anmerkung != $anmerkung
+ || $ber->negativ != isset($value['negativ'])
+ )
+ {
+ $ber->updateamum = date('Y-m-d H:i:s');
+ $ber->updatevon = $user;
+ }
+ }
+ if (isset($value['negativ']))
+ $ber->negativ = true;
+ else
+ $ber->negativ = false;
+
+ $ber->benutzerberechtigung_id = $benutzerberechtigung_id;
+ $ber->art = $art;
+ $ber->oe_kurzbz = $oe_kurzbz;
+ $ber->berechtigung_kurzbz = $berechtigung_kurzbz;
+ $ber->rolle_kurzbz = $rolle_kurzbz;
+ $ber->uid = $uid;
+ $ber->funktion_kurzbz = $funktion_kurzbz;
+ $ber->studiensemester_kurzbz = $studiensemester_kurzbz;
+ $ber->start = $start;
+ $ber->ende = $ende;
+ $ber->kostenstelle_id = $kostenstelle_id;
+ $ber->anmerkung = $anmerkung;
+
+ if(!$ber->save())
+ {
+ if (!$ber->new)
+ $errorstr .= "Datensatz konnte nicht upgedatet werden!".$ber->errormsg;
+ else
+ $errorstr .= "Datensatz konnte nicht gespeichert werden!".$ber->errormsg;
+ }
+ 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;
+ if (isset($_POST['neu']))
+ $log->beschreibung = 'Neue Berechtigung für '.$uid.' angelegt';
+ else
+ $log->beschreibung = 'Berechtigung für '.$uid.' aktualisiert';
+
+ if(!$log->save())
+ {
+ $errorstr .= "Fehler beim schreiben des Log-Eintrags
";
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ $errorstr.='Fehler beim Speichern: '.$rechte->errormsg;
+ }
+}
+
+if(isset($_POST['copy']) && $_POST['copy'] != '')
+{
+ if($rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
+ {
$ber = new benutzerberechtigung();
- if (isset($_POST['neu']) || isset($_POST['copy']))
- {
- $ber->insertamum=date('Y-m-d H:i:s');
- $ber->insertvon = $user;
- $ber->new = true;
- }
- else
- {
- if(!$ber->load($benutzerberechtigung_id))
- die('Fehler beim Laden der Berechtigung');
- }
- if (isset($_POST['negativ']))
- $ber->negativ = true;
- else
- $ber->negativ = false;
+ if(!$ber->load($_POST['copy']))
+ die('Fehler beim Laden der Berechtigung');
- $ber->benutzerberechtigung_id = $benutzerberechtigung_id;
- $ber->art = $art;
- $ber->oe_kurzbz = $oe_kurzbz;
- $ber->berechtigung_kurzbz = $berechtigung_kurzbz;
- $ber->rolle_kurzbz = $rolle_kurzbz;
- $ber->uid = $uid;
- $ber->funktion_kurzbz = $funktion_kurzbz;
- $ber->studiensemester_kurzbz = $studiensemester_kurzbz;
- $ber->start = $start;
- $ber->ende = $ende;
- $ber->updateamum = date('Y-m-d H:i:s');
- $ber->updatevon = $user;
- $ber->kostenstelle_id = $kostenstelle_id;
- $ber->anmerkung = $anmerkung;
+ $ber->new = true;
+ $ber->insertamum = date('Y-m-d H:i:s');
+ $ber->insertvon = $user;
- if(!$ber->save()){
+ if(!$ber->save())
+ {
if (!$ber->new)
$errorstr .= "Datensatz konnte nicht upgedatet werden!".$ber->errormsg;
else
$errorstr .= "Datensatz konnte nicht gespeichert werden!".$ber->errormsg;
}
- /*if ($ber->new)
+ else
{
- $reloadstr .= "\n";
- }*/
+ //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 für '.$uid.' kopiert';
+
+ if(!$log->save())
+ {
+ $errorstr .= "Fehler beim schreiben des Log-Eintrags
";
+ }
+ }
}
else
{
- $errorstr.='Fehler beim Speichern: Sie haben keine Berechtigung zum Speichern';
+ $errorstr.='Fehler beim Speichern: '.$rechte->errormsg;
}
}
@@ -214,16 +482,17 @@ if (!$b = new berechtigung())
$b->getRollen();
foreach($b->result as $berechtigung)
{
- $rolle_arr[] = $berechtigung->rolle_kurzbz;
+ $rolle_arr[$berechtigung->rolle_kurzbz] = $berechtigung->beschreibung;
}
-sort($rolle_arr);
+ksort($rolle_arr, SORT_STRING | SORT_FLAG_CASE);
+
$b->getBerechtigungen();
foreach($b->result as $berechtigung)
{
- $berechtigung_arr[] = $berechtigung->berechtigung_kurzbz;
+ $berechtigung_arr[$berechtigung->berechtigung_kurzbz] = $berechtigung->beschreibung;
$berechtigung_beschreibung_arr[] = $berechtigung->beschreibung;
}
-//var_dump($berechtigung_arr);
+
$st = new studiensemester();
$st->getAll();
foreach($st->studiensemester as $studiensemester)
@@ -233,9 +502,17 @@ foreach($st->studiensemester as $studiensemester)
$oe = new organisationseinheit();
$oe->getAll();
+foreach ($oe->result AS $row)
+{
+ $oe_arr[$row->oe_kurzbz] = $row->organisationseinheittyp_kurzbz.' '.$row->bezeichnung;
+}
$kostenstelle = new wawi_kostenstelle();
$kostenstelle->getAll();
+foreach ($kostenstelle->result AS $row)
+{
+ $kst_arr[$row->kostenstelle_id] = $row->bezeichnung;
+}
if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
{
@@ -259,13 +536,25 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
$rights->loadBenutzerRollen($uid);
$name = new benutzer();
$name->load($uid);
- $htmlstr .= "Berechtigungen von ".$name->nachname." ".$name->vorname." (".$uid.")\n";
- //Formular zum Kopieren von Berechtigungen
- $htmlstr .= "\n";
+
+ $htmlstr .= "Berechtigungen von ".$name->nachname." ".$name->vorname." (".$uid.")";
+ $message = '';
+ $class = '';
+ if ($errorstr != '' || $successstr != '')
+ {
+ if ($successstr != '')
+ {
+ $class = 'class="alert alert-success"';
+ $message = $successstr;
+ }
+ elseif ($errorstr != '')
+ {
+ $class = 'class="alert alert-danger"';
+ $message = $errorstr;
+ }
+ }
+ $htmlstr .= ' '.$message.'
';
+
$i = 0;
// Zusätzlich jede Funktion mit einer gültigen Berechtigung anzeigen
@@ -284,6 +573,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
$rechte_funktion = new benutzerberechtigung();
$rechte_funktion->loadBenutzerRollen(null, $recht);
$funktionsrecht = $rechte_funktion->berechtigungen; // Hat die Funktion ein Recht?
+ $anzahlFunktionsrechte = count($funktionsrecht);
$funktion_bezeichnung = new funktion();
$funktion_bezeichnung->load($recht);
if(!empty($funktionsrecht))
@@ -291,11 +581,26 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
$i++;
if ($i==1)
{
- $htmlstr .= "Geerbte Berechtigungen aus Funktion\n";
+ $htmlstr .= "Geerbte Berechtigungen aus Funktion(en): ";
}
- $htmlstr .= ($i>1?", ":"").$funktion_bezeichnung->beschreibung."";
+ if ($i > 1)
+ {
+ $htmlstr .= ", ";
+ }
+
+ $htmlstr .= "";
+ $htmlstr .= $funktion_bezeichnung->beschreibung;
+ $htmlstr .= " (".$anzahlFunktionsrechte.")";
}
}
+ if(isset($funktionsrecht))
+ {
+ $htmlstr .= '
';
+ }
+ }
+ if (count($bn) > 0)
+ {
+ $htmlstr .= "Rechte Details
";
}
}
elseif(isset($_REQUEST['funktion_kurzbz']) && $_REQUEST['funktion_kurzbz']!='')
@@ -307,10 +612,10 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
die('Funktion existiert nicht');
$rights->loadBenutzerRollen(null, $funktion_kurzbz);
- $htmlstr .= "Berechtigungen der Funktion ".$funktion->beschreibung."\n";
+ $htmlstr .= "Berechtigungen der Funktion ".$funktion->beschreibung."";
}
- //$htmlstr .= "Berechtigungen von ".$name->nachname." ".$name->vorname." (".$uid.")".$funktion_kurzbz."\n";
+ //$htmlstr .= "Berechtigungen von ".$name->nachname." ".$name->vorname." (".$uid.")".$funktion_kurzbz."";
/*$htmlstr .= ' Filter:
Alle
| nur WaWi
@@ -318,80 +623,76 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
';*/
- $htmlstr .= "\n"; //Alternatives styling fuer Tablesorter um Platz zu sparen.
- $htmlstr .= "
\n";
+ ////////////////
+ // Neue Berechtigung einfügen
+ ////////////////
+
+ $htmlstr .= "";
+ $htmlstr .= "
";
$htmlstr .= "
|
Rolle |
Berechtigung |
Art |
- Organisationseinheit |
- Kostenstelle |
-
+ Organisationseinheit |
+ Kostenstelle |
Neg |
Gültig ab |
Gültig bis |
Anmerkung |
- Info |
|
- |
-
-
\n";
+ ";
- $htmlstr .= "\n";
- $htmlstr .= "";
+ $htmlstr .= "
";
+
+ $htmlstr .= "
";
+
+ ////////////////
+ // Tabelle für bestehende Berechtigungen
+ ////////////////
+
+ $htmlstr .= "";
+ $htmlstr .= "
";
+ $htmlstr .= '';
+ $htmlstr .= "";
+ $htmlstr .= "
";
}
-$htmlstr .= "".$errorstr."
\n";
+
?>
@@ -633,60 +992,218 @@ $htmlstr .= "".$errorstr."
\n";
+
-
-
+
+
+
+
+
-
+
-
+
+
- Berechtigung - Rolle - Übersicht
+ Berechtigung - Rolle -
deleteRolleBerechtigung($rolle_kurzbz, $berechtigung_kurzbz)): ?>
Fehler beim Löschen: errormsg ?>
- Berechtigung gelöscht!
+ Berechtigung gelöscht!
-
- Zurück
+ Zurück zur Rollenübersicht
- RolleBerechtigung "":
-
+
getBerechtigungen();
?>
@@ -154,6 +216,8 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
getRolleBerechtigung($rolle_kurzbz);
foreach($berechtigungen->result as $rolle): ?>
@@ -161,7 +225,7 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
| art ?> |
beschreibung ?> |
-
+
entfernen
|
@@ -270,24 +334,24 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
-
+