From c4fbaaaa9d20635a0f348c7f4462b4e4d5136447 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 12 Sep 2022 17:53:51 +0200 Subject: [PATCH] Logging for Students implemented --- .../controllers/person/Gruppenmanagement.php | 37 ++++++++++++++----- .../gruppenmanagement/benutzergruppe.php | 1 - .../gruppenmanagementData.php | 2 +- config/global.config-default.inc.php | 3 ++ 4 files changed, 31 insertions(+), 12 deletions(-) diff --git a/application/controllers/person/Gruppenmanagement.php b/application/controllers/person/Gruppenmanagement.php index 4bc80c760..8e8e22d41 100644 --- a/application/controllers/person/Gruppenmanagement.php +++ b/application/controllers/person/Gruppenmanagement.php @@ -27,6 +27,7 @@ class Gruppenmanagement extends Auth_Controller // Loads models $this->load->model('person/benutzer_model', 'BenutzerModel'); + $this->load->model('ressource/mitarbeiter_model', 'MitarbeiterModel'); $this->load->model('person/benutzergruppe_model', 'BenutzergruppeModel'); $this->load->model('system/Log_model', 'LogModel'); @@ -149,11 +150,8 @@ class Gruppenmanagement extends Auth_Controller if (isSuccess($result)) { - $this->LogModel->insert(array( - 'mitarbeiter_uid' => $this->_uid, - 'beschreibung' => 'Gruppenmanagement: Nutzer zu Gruppe hinzugefügt', - 'sql' => $lastQry - )); + $beschreibung = 'Gruppenmanagement: Nutzer zu Gruppe hinzugefügt'; + $this->_writeLog($this->_uid, $beschreibung, $lastQry); } } @@ -185,11 +183,8 @@ class Gruppenmanagement extends Auth_Controller if (isSuccess($result)) { - $this->LogModel->insert(array( - 'mitarbeiter_uid' => $this->_uid, - 'beschreibung' => 'Gruppenmanagement: Nutzer aus Gruppe entfernt', - 'sql' => $lastQry - )); + $beschreibung = 'Gruppenmanagement: Nutzer aus Gruppe entfernt'; + $this->_writeLog($this->_uid, $beschreibung, $lastQry); } $this->outputJson($result); @@ -234,4 +229,26 @@ class Gruppenmanagement extends Auth_Controller if (!$this->_uid) show_error('User authentification failed'); } + + /** + * Writes an entry in the log table + */ + private function _writeLog($uid, $beschreibung, $lastQry) + { + $mitarbeiterResult = $this->MitarbeiterModel->load(array('mitarbeiter_uid'=>$this->_uid)); + + if(!isSuccess($mitarbeiterResult) || !hasData($mitarbeiterResult)) + { + $uid = DUMMY_LEKTOR_UID; + $beschreibung .= ': '.$this->_uid; + $beschreibung = mb_substr($beschreibung, 0, 64); + } + + $this->LogModel->insert(array( + 'mitarbeiter_uid' => $uid, + 'beschreibung' => $beschreibung, + 'sql' => $lastQry + )); + } + } diff --git a/application/views/person/gruppenmanagement/benutzergruppe.php b/application/views/person/gruppenmanagement/benutzergruppe.php index 1bb698591..0096f8d52 100644 --- a/application/views/person/gruppenmanagement/benutzergruppe.php +++ b/application/views/person/gruppenmanagement/benutzergruppe.php @@ -11,7 +11,6 @@ 'tablesorter' => true, 'ajaxlib' => true, 'dialoglib' => true, - 'filterwidget' => true, 'navigationwidget' => true, 'phrases' => array( 'gruppenmanagement', diff --git a/application/views/person/gruppenmanagement/gruppenmanagementData.php b/application/views/person/gruppenmanagement/gruppenmanagementData.php index 4eef0acec..2a07f85f7 100644 --- a/application/views/person/gruppenmanagement/gruppenmanagementData.php +++ b/application/views/person/gruppenmanagement/gruppenmanagementData.php @@ -8,7 +8,7 @@ JOIN public.tbl_gruppe_manager grpmgr USING (gruppe_kurzbz) WHERE grp.aktiv = TRUE AND grpmgr.uid = \''.$uid.'\'', - 'requiredPermissions' => 'admin', + 'requiredPermissions' => 'lehre/gruppenmanager', 'datasetRepresentation' => 'tablesorter', 'additionalColumns' => array('Teilnehmer'), 'columnsAliases' => array( diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index ed17a096d..0380ea8d5 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -258,6 +258,9 @@ define('STIP_USER_PASSWORD','password'); // Array mit Usern die nicht Kollidieren define('KOLLISIONSFREIE_USER',serialize(array('_DummyLektor'))); +// UID des Dummy Lektors +define('DUMMY_LEKTOR_UID','_DummyLektor'); + // Soll der Lageplan am Infoterminal angezeigt werden (true|false) //define('CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN', true);