- insertvon im log geandert, wenn es ein cronjob ist

- infocenter ansichten angepasst
This commit is contained in:
ma0048
2022-12-05 15:41:27 +01:00
parent 37ec8d84e5
commit e25bb3ca4a
4 changed files with 128 additions and 58 deletions
+8 -1
View File
@@ -22,6 +22,7 @@ class Messages_model extends CI_Model
const NO_AUTH_UID = 'online'; // hard coded uid if no authentication is performed
const CRON_PREFIX = 'cron_';
// Recipients types
const TYPE_PERSONS = 'persons';
const TYPE_PRESTUDENTS = 'prestudents';
@@ -744,7 +745,13 @@ class Messages_model extends CI_Model
{
// In case the message is accessed via ViewMessage controller -> no authentication
// If no authentication is performed then use a hard coded uid
$loggedUserUID = isLogged() ? getAuthUID() : self::NO_AUTH_UID;
// In case if a cron is performed then use the prefix and the classname
if (is_cli())
{
$loggedUserUID = substr(self::CRON_PREFIX . $this->router->class, 0, 32);
}
else
$loggedUserUID = isLogged() ? getAuthUID() : self::NO_AUTH_UID;
$message = 'Message sent from person '.$sender_id.' to '.$receiver_id.', message id: '.$message_id;
if (!isEmptyString($receiverOU)) $message .= ', receiverOU: '.$receiverOU;
@@ -16,6 +16,8 @@
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
$ORG_NAME = '\'InfoCenter\'';
$ONLINE = '\'online\'';
$SYSTEM = '\'system\'';
$CRON_PREFIX = '\'cron_%\'';
$query = '
SELECT
@@ -56,9 +58,22 @@
a.dokument_kurzbz in ('.$AKTE_TYP.')
) AS "AnzahlAkte",
(
SELECT CASE WHEN student.student_uid IS NULL THEN
(CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END)
ELSE '. $ONLINE .' END
SELECT
CASE WHEN l.insertvon LIKE '. $CRON_PREFIX .' THEN
'. $SYSTEM .'
ELSE (
CASE WHEN student.student_uid IS NULL THEN (
CASE WHEN sp.nachname IS NULL THEN
l.insertvon
ELSE
sp.nachname
END
)
ELSE
'. $ONLINE .'
END
)
END
FROM system.tbl_log l
LEFT JOIN public.tbl_benutzer on l.insertvon = tbl_benutzer.uid
LEFT JOIN public.tbl_person sp on tbl_benutzer.person_id = sp.person_id
@@ -275,22 +290,30 @@
LIMIT 1
) AS "ZGVMNationGruppe",
(
SELECT tbl_organisationseinheit.bezeichnung
FROM public.tbl_benutzerfunktion
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
WHERE (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von <= now())
AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis >= now())
AND tbl_organisationseinheit.bezeichnung = '.$ORG_NAME.'
AND tbl_benutzerfunktion.uid = (
SELECT l.insertvon
FROM system.tbl_log l
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.log_id DESC
LIMIT 1
)
LIMIT 1
SELECT
CASE WHEN (l.insertvon LIKE '. $CRON_PREFIX .') THEN
true
ELSE (
CASE WHEN (tbl_organisationseinheit.bezeichnung = '. $ORG_NAME .') THEN
true
ELSE
false
END
)
END
FROM system.tbl_log l
LEFT JOIN public.tbl_benutzerfunktion ON l.insertvon = tbl_benutzerfunktion.uid
LEFT JOIN public.tbl_organisationseinheit ON tbl_benutzerfunktion.oe_kurzbz = tbl_organisationseinheit.oe_kurzbz
WHERE l.taetigkeit_kurzbz IN ('. $TAETIGKEIT_KURZBZ . ')
AND l.logdata->>\'name\' NOT IN ('. $LOGDATA_NAME .')
AND l.person_id = p.person_id
AND (
(tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von <= now())
AND
(tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis >= now())
)
ORDER BY l.log_id DESC
LIMIT 1
) AS "InfoCenterMitarbeiter"
FROM public.tbl_person p
LEFT JOIN (
@@ -484,7 +507,7 @@
$datasetRaw->{'ZGVMNationGruppe'} = '-';
}
if ($datasetRaw->{'InfoCenterMitarbeiter'} === null)
if ($datasetRaw->{'InfoCenterMitarbeiter'} === 'false')
{
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
}
@@ -13,6 +13,8 @@
$ORG_NAME = '\'InfoCenter\'';
$IDENTITY = '\'identity\'';
$ONLINE = '\'online\'';
$SYSTEM = '\'system\'';
$CRON_PREFIX = '\'cron_%\'';
$query = '
SELECT
@@ -43,9 +45,23 @@ $query = '
LIMIT 1
) AS "LastActionType",
(
SELECT CASE WHEN student.student_uid IS NULL THEN
(CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END)
ELSE '. $ONLINE .' END
SELECT
CASE WHEN l.insertvon LIKE '. $CRON_PREFIX .' THEN
'. $SYSTEM .'
ELSE (
CASE WHEN student.student_uid IS NULL THEN
(
CASE WHEN sp.nachname IS NULL THEN
l.insertvon
ELSE
sp.nachname
END
)
ELSE
' . $ONLINE . '
END
)
END
FROM system.tbl_log l
LEFT JOIN public.tbl_benutzer on l.insertvon = tbl_benutzer.uid
LEFT JOIN public.tbl_person sp on tbl_benutzer.person_id = sp.person_id
@@ -240,21 +256,29 @@ $query = '
LIMIT 1
) AS "ZGVMNation",
(
SELECT tbl_organisationseinheit.bezeichnung
FROM public.tbl_benutzerfunktion
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
WHERE (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von <= now())
AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis >= now())
AND tbl_organisationseinheit.bezeichnung = '.$ORG_NAME.'
AND tbl_benutzerfunktion.uid = (
SELECT l.insertvon
FROM system.tbl_log l
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.log_id DESC
LIMIT 1
)
SELECT
CASE WHEN (l.insertvon LIKE '. $CRON_PREFIX .') THEN
true
ELSE (
CASE WHEN (tbl_organisationseinheit.bezeichnung = '. $ORG_NAME .') THEN
true
ELSE
false
END
)
END
FROM system.tbl_log l
LEFT JOIN public.tbl_benutzerfunktion ON l.insertvon = tbl_benutzerfunktion.uid
LEFT JOIN public.tbl_organisationseinheit ON tbl_benutzerfunktion.oe_kurzbz = tbl_organisationseinheit.oe_kurzbz
WHERE l.taetigkeit_kurzbz IN ('. $TAETIGKEIT_KURZBZ . ')
AND l.logdata->>\'name\' NOT IN ('. $LOGDATA_NAME .')
AND l.person_id = p.person_id
AND (
(tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von <= now())
AND
(tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis >= now())
)
ORDER BY l.log_id DESC
LIMIT 1
) AS "InfoCenterMitarbeiter",
(
@@ -432,7 +456,7 @@ $query = '
$datasetRaw->{'ZGVMNation'} = '-';
}
if ($datasetRaw->{'InfoCenterMitarbeiter'} === null)
if ($datasetRaw->{'InfoCenterMitarbeiter'} === 'false')
{
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
}
@@ -9,6 +9,8 @@
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
$ORG_NAME = '\'InfoCenter\'';
$SYSTEM = '\'system\'';
$CRON_PREFIX = '\'cron_%\'';
$query = '
SELECT
@@ -30,7 +32,12 @@ $query = '
LIMIT 1
) AS "LastAction",
(
SELECT l.insertvon
SELECT
CASE WHEN l.insertvon LIKE '. $CRON_PREFIX .' THEN
'. $SYSTEM .'
ELSE
l.insertvon
END
FROM system.tbl_log l
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
@@ -179,22 +186,30 @@ $query = '
LIMIT 1
) AS "ZGVMNation",
(
SELECT tbl_organisationseinheit.bezeichnung
FROM public.tbl_benutzerfunktion
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
WHERE (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von <= now())
AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis >= now())
AND tbl_organisationseinheit.bezeichnung = '.$ORG_NAME.'
AND tbl_benutzerfunktion.uid = (
SELECT l.insertvon
FROM system.tbl_log l
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.log_id DESC
LIMIT 1
)
LIMIT 1
SELECT
CASE WHEN (l.insertvon LIKE '. $CRON_PREFIX .') THEN
true
ELSE (
CASE WHEN (tbl_organisationseinheit.bezeichnung = '. $ORG_NAME .') THEN
true
ELSE
false
END
)
END
FROM system.tbl_log l
LEFT JOIN public.tbl_benutzerfunktion ON l.insertvon = tbl_benutzerfunktion.uid
LEFT JOIN public.tbl_organisationseinheit ON tbl_benutzerfunktion.oe_kurzbz = tbl_organisationseinheit.oe_kurzbz
WHERE l.taetigkeit_kurzbz IN ('. $TAETIGKEIT_KURZBZ . ')
AND l.logdata->>\'name\' NOT IN ('. $LOGDATA_NAME .')
AND l.person_id = p.person_id
AND (
(tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von <= now())
AND
(tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis >= now())
)
ORDER BY l.log_id DESC
LIMIT 1
) AS "InfoCenterMitarbeiter"
FROM public.tbl_person p
LEFT JOIN (
@@ -226,6 +241,7 @@ $query = '
)
ORDER BY "LastAction" DESC';
$filterWidgetArray = array(
'query' => $query,
'app' => InfoCenter::APP,
@@ -350,7 +366,7 @@ $query = '
$datasetRaw->{'ZGVMNation'} = '-';
}
if ($datasetRaw->{'InfoCenterMitarbeiter'} === null)
if ($datasetRaw->{'InfoCenterMitarbeiter'} === 'false')
{
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
}