From 69a8943b798d4ea3f7221cb4c91dc64e090b0711 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 19 Jul 2018 15:12:57 +0200 Subject: [PATCH 01/20] =?UTF-8?q?Studiensemester=20zu=20Abgeschickt=20Filt?= =?UTF-8?q?er=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/filtersupdate.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/system/filtersupdate.php b/system/filtersupdate.php index 9166e9154..415dabc49 100644 --- a/system/filtersupdate.php +++ b/system/filtersupdate.php @@ -34,6 +34,7 @@ $filters = array( {"name": "Nachname"}, {"name": "Nation"}, {"name": "StgAbgeschickt"}, + {"name": "Studiensemester"}, {"name": "LastAction"}, {"name": "User/Operator"}, {"name": "LockUser"} @@ -65,6 +66,7 @@ $filters = array( {"name": "Nachname"}, {"name": "Nation"}, {"name": "StgAbgeschickt"}, + {"name": "Studiensemester"}, {"name": "LastAction"}, {"name": "User/Operator"}, {"name": "LockUser"} @@ -177,6 +179,7 @@ $filters = array( {"name": "Nachname"}, {"name": "Nation"}, {"name": "StgAbgeschickt"}, + {"name": "Studiensemester"}, {"name": "LastAction"}, {"name": "User/Operator"}, {"name": "LockUser"} From ace1e08e0b40d00f7da6217545d138895afc19fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 20 Jul 2018 10:26:20 +0200 Subject: [PATCH 02/20] Switched to FHC-Controller to avoid notice on Job Execution --- application/controllers/jobs/Prestudentstatus.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/controllers/jobs/Prestudentstatus.php b/application/controllers/jobs/Prestudentstatus.php index dc5c08512..7d2b01b38 100644 --- a/application/controllers/jobs/Prestudentstatus.php +++ b/application/controllers/jobs/Prestudentstatus.php @@ -8,7 +8,7 @@ if (! defined('BASEPATH')) * */ -class Prestudentstatus extends Auth_Controller +class Prestudentstatus extends FHC_Controller { /** * Initialize Prestudentstatus Class From 590530acec9fcf52d208d744b0e4e4e3c873bbc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 20 Jul 2018 10:28:29 +0200 Subject: [PATCH 03/20] Switched position of missplaced translation-text --- application/views/system/messageSent.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/views/system/messageSent.php b/application/views/system/messageSent.php index 257bace0b..bf02b2367 100644 --- a/application/views/system/messageSent.php +++ b/application/views/system/messageSent.php @@ -67,10 +67,10 @@ $this->load->view(
- Ihr InfoCenter@FHTW Team + Your InfoCenter@FHTW Team
- Your InfoCenter@FHTW Team + Ihr InfoCenter@FHTW Team

From 4c0aa1939f9fff3aa268f90d9e594576c0b57066 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 20 Jul 2018 13:22:36 +0200 Subject: [PATCH 04/20] =?UTF-8?q?Fehler=20beim=20Melden=20der=20Matrikelnu?= =?UTF-8?q?mmer=20=C3=BCber=20den=20Testclient=20behoben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soap/datenverbund_client.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soap/datenverbund_client.php b/soap/datenverbund_client.php index 6c85c394b..1fbf172f5 100644 --- a/soap/datenverbund_client.php +++ b/soap/datenverbund_client.php @@ -222,7 +222,7 @@ if (isset($_REQUEST['submit'])) case 'setMatrikelnummer': $person = new stdClass(); - $person->matrikelnummer = $matrikelnummer; + $person->matrikelnummer = $matrikelnr; $person->vorname = $vorname; $person->nachname = $nachname; $person->geburtsdatum = $geburtsdatum; From cee26693b530365440cf785bacd1f9c40bd66783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 23 Jul 2018 14:14:14 +0200 Subject: [PATCH 05/20] Removed legacy Code from globals include --- include/globals.inc.php | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/include/globals.inc.php b/include/globals.inc.php index 650e0601c..bbe9cf738 100644 --- a/include/globals.inc.php +++ b/include/globals.inc.php @@ -1,10 +1,4 @@ From 2ae76d717292719748045d25b370c828ee9e3e26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 23 Jul 2018 14:14:45 +0200 Subject: [PATCH 06/20] =?UTF-8?q?Raumauslastung=20angepasst:=20-=20Auswahl?= =?UTF-8?q?=20der=20Stundenplantabelle=20hinzugef=C3=BCgt=20-=20Farbverlau?= =?UTF-8?q?f=20korrigiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/lehre/raumauslastung.php | 38 +++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/vilesci/lehre/raumauslastung.php b/vilesci/lehre/raumauslastung.php index 6075e2e16..94eedbe16 100644 --- a/vilesci/lehre/raumauslastung.php +++ b/vilesci/lehre/raumauslastung.php @@ -60,6 +60,18 @@ if (isset($_POST['stunde_ende'])) else $stunde_ende=16; +if (isset($_POST['stundenplantable'])) +{ + if($_POST['stundenplantable'] == 'stundenplan') + $stundenplantable='tbl_stundenplan'; + elseif($_POST['stundenplantable'] == 'stundenplandev') + $stundenplantable='tbl_stundenplandev'; + else + die('Invalid table'); +} +else + $stundenplantable='tbl_stundenplan'; + $ts_beginn=mktime(0,0,0,substr($datum_beginn,5,2),substr($datum_beginn,8,2),substr($datum_beginn,0,4)); $ts_ende=mktime(0,0,0,substr($datum_ende,5,2),substr($datum_ende,8,2),substr($datum_ende,0,4)); @@ -67,7 +79,7 @@ $wochen=round(($ts_ende-$ts_beginn)/(60*60*24*7)); //Stundenplandaten holen $sql_query="SELECT DISTINCT datum,stunde,ort_kurzbz, EXTRACT(DOW FROM datum) AS tag, max_person - FROM lehre.tbl_stundenplan JOIN public.tbl_ort USING (ort_kurzbz) + FROM lehre.".$stundenplantable." JOIN public.tbl_ort USING (ort_kurzbz) WHERE datum>=".$db->db_add_param($datum_beginn)." AND datum<=".$db->db_add_param($datum_ende)." @@ -108,6 +120,10 @@ while ($row=$db->db_fetch_object($result))      Unterrichtseinheit von: bis: + Tabelle:

Raumauslastung vom Wochen)

@@ -135,7 +151,22 @@ while ($row=$db->db_fetch_object($result)) ?> '.$ort->ort.' ('.$ort->personen.')'; @@ -147,7 +178,8 @@ while ($row=$db->db_fetch_object($result)) $ort->last[$t][$s] = new stdClass(); $ort->last[$t][$s]->anzahl=0; } - $bgcolor=$cfgStdBgcolor[$anz_colors-round(($ort->last[$t][$s]->anzahl)/($wochen/$anz_colors))]; + + $bgcolor=$cfgColorRedToGreen[$anz_colors-round(($ort->last[$t][$s]->anzahl)/($wochen/$anz_colors))]; echo ''; echo $ort->last[$t][$s]->anzahl; echo ''; From 5f7d5902aa4dfd91e3fa10f1ee8a2210d241cd78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 23 Jul 2018 17:26:30 +0200 Subject: [PATCH 07/20] Infocenter Page now shows the number of filtered persons --- public/js/infocenter/infocenterPersonDataset.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/public/js/infocenter/infocenterPersonDataset.js b/public/js/infocenter/infocenterPersonDataset.js index 1b87d3333..2eb1eeb76 100644 --- a/public/js/infocenter/infocenterPersonDataset.js +++ b/public/js/infocenter/infocenterPersonDataset.js @@ -59,11 +59,19 @@ var InfocenterPersonDataset = { var persontext = personcount === 1 ? "Person" : "Personen"; var countHtml = personcount + " " + persontext; + // Count Records after Filtering + $("#filterTableDataset").bind("filterEnd", function() { + var cnt = $("#filterTableDataset tr:visible").length - 2; + $("#filterTableDatasetCntFiltered").html(cnt + ' / '); + }); + $("#datasetActionsTop, #datasetActionsBottom").append( "
"+ "
" + selectAllHtml + "  " + actionHtml + "
"+ "
" + legendHtml + "
"+ - "
" + countHtml + "
"+ + "
" + + "" + + countHtml + "
"+ "
"+ "
" ); From 277aa8a9be0947fcbab108750d2e69ee1c3d8fdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 24 Jul 2018 13:27:44 +0200 Subject: [PATCH 08/20] Changelog erweitert --- CHANGELOG.md | 11 +++++++++-- README.md | 2 -- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 08402fd64..9ed10d62a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ - **[CORE]** UserDefinedFields hinzugefügt zur Verwalung von eigenen Eingabefeldern - **[CORE]** Support für Extensions hinzugefügt - eine Weiterentwicklung der Addons für die Verwendung mit Codeigniter - **[CORE]** Infocenter Seite hinzugefügt zur zentralen Verwaltung und ZGV Prüfung von Interessenten +- **[CORE]** Unterstützung für Matrikelnummern und BPK - Anbindung an den Datenverbund +- **[CORE]** Digitale Signatur für Dokumente ### CHANGED - **[CORE]** Berechtigungsprüfung wurde angepasst damit deaktivierte Benutzer keine Berechtigungen mehr haben @@ -23,6 +25,9 @@ - **[CORE]** Has many as possible javascripts and css present in the repository were removed. Their lack is overcome by the packages in the composer. In the meanwhile also the versions were updated - **[CIS]** Die Fotoliste wird jetzt mit unoconv erstellt. Die bestehende Vorlage für den Dokumentenexport muss hier angepasst werden - **[CORE]** Resturlaubstage und Mehrarbeitsstunden wurden aus dem Core entfernt und können nicht mehr mit FH-Complete verwaltet werden. +- **[CORE]** Personenzusammenlegen agiert intelligenter und kann direkt aus dem FAS erfolgen. +- **[CIS]** Ampeln können jetzt verpflichtend sein und per Mail benachrichtigen + ### Updateinfo - **[CORE]** Infoscreen wurde umbenannt (informationsbildschirm.php) @@ -31,8 +36,8 @@ - **[CORE]** Neue Style Anweisungen (div.header_logo, td.headerbar, div.cis_logo) müssen in Custom Stylesheet hinzugefügt werden ### Removed - **[CORE]** Removed Support for XSLFO2PDF Documents - use unoconv instead - **[CORE]** Removed Support for FOP Documents - use unoconv instead +- **[CORE]** Removed Support for XSLFO2PDF Documents - use unoconv instead +- **[CORE]** Removed Support for FOP Documents - use unoconv instead ### Deprecated - **[CORE]** Die folgenden Datenbank Tabellen und Spalten wurden als DEPRECATED markiert und werden mit der nächsten Version entfernt: @@ -45,6 +50,8 @@ public.tbl_prestudent.ausstellungsstaat, public.tbl_prestudent.aufnahmeschluessel, lehre.tbl_lehrveranstaltung.old_lehrfach_id - **[CORE]** LV-Infos werden mit der kommenden Version aus dem Core entfernt - Dies ist jetzt ein Addon - **[CORE]** WaWi wird mit der kommenden Version aus dem Core entfernt- Dies ist jetzt ein Addon +- **[CIS]** Benotungstool/Kreuzerltool wird mit der kommenden Version aus dem Core entfernt +- **[CIS]** Feedback wird mit der kommenden Version aus dem Core entfernt ## [3.2] diff --git a/README.md b/README.md index 8874b5778..c4b24c64d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # FH-Complete -[![Build Status](http://phpci.fhcomplete.org/build-status/image/1)](http://phpci.fhcomplete.org/project/view/1) - * [FH-Complete Homepage](http://www.fhcomplete.org) * [Wiki](http://fhcomplete.technikum-wien.at/dokuwiki/) * [Changelog](CHANGELOG.md) From 7d1bf115861b97ff64f05c4cf24b48b93821c078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 24 Jul 2018 13:28:09 +0200 Subject: [PATCH 09/20] =?UTF-8?q?Nicht=20mehr=20ben=C3=B6tigten=20Cronjob?= =?UTF-8?q?=20entfernt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/cronjobs/ampel_erinnerungsmail.php | 315 --------------------- 1 file changed, 315 deletions(-) delete mode 100644 vilesci/cronjobs/ampel_erinnerungsmail.php diff --git a/vilesci/cronjobs/ampel_erinnerungsmail.php b/vilesci/cronjobs/ampel_erinnerungsmail.php deleted file mode 100644 index eaef4ad17..000000000 --- a/vilesci/cronjobs/ampel_erinnerungsmail.php +++ /dev/null @@ -1,315 +0,0 @@ - */ -require_once('../../config/vilesci.config.inc.php'); -require_once('../../include/basis_db.class.php'); -require_once('../../include/datum.class.php'); -require_once('../../include/mail.class.php'); -require_once('../../include/ampel.class.php'); -require_once('../../include/person.class.php'); -require_once('../../include/phrasen.class.php'); - -$db = new basis_db(); -$datum = new datum(); -$now = $datum->mktime_fromdate(date('Y-m-d')); - -$sprache = getSprache(); -$p = new phrasen($sprache); - -//get all notifications -$ampel_obj = new ampel(); -$ampel_obj->getAll(); -$ampel_arr = $ampel_obj->result; - -//filter only notifications that are not expired, not before vorlaufzeit AND email is true -$ampel_arr = filterAmpeln($ampel_arr); - -//get user of notifications, ampel_id, description and deadline -$new_ampel_user_arr = array(); //user with new notifications that are not confirmed -$overdue_ampel_user_arr = array(); //user with overdue notifications that are not confirmed -foreach($ampel_arr as $ampel) -{ - $deadline = $datum->mktime_fromdate($ampel->deadline); - $insert_date = $datum->formatDatum($ampel->insertamum, 'Y-m-d'); - $qry_all_ampel_user = $ampel->benutzer_select; - $kurzbz = $ampel->kurzbz; - - $new = false; - $overdue = false; - $new_user_arr = array(); - $overdue_user_arr = array(); - - if($result = $db->db_query($qry_all_ampel_user)) - { - while($row = $db->db_fetch_object($result)) - { - $user = $row->uid; - - //break if almost confirmed - if ($ampel_obj->isBestaetigt($user, $ampel->ampel_id)) - break; - - //check if notification is new (within last week, as cronjob will run every week) - if($datum->DateDiff(date('Y-m-d'), $insert_date) >= -7) - { - $new = true; - $new_user_arr[] = $user; - } - - //check if notification is overdue - if ($now > $deadline) - { - $overdue = true; - $overdue_user_arr[] = $user; - } - }; - }; - - if ($new) - { - $new_ampel_user_arr[] = - array( - 'ampel_id' => $ampel->ampel_id, - 'ampel_bezeichnung' => $kurzbz, - 'user' => $new_user_arr, - 'deadline' => date('d.m.Y', $deadline) - ); - } - - if ($overdue) - { - $overdue_ampel_user_arr[] = - array( - 'ampel_id' => $ampel->ampel_id, - 'ampel_bezeichnung' => $kurzbz, - 'user' => $overdue_user_arr, - 'deadline' => date('d.m.Y', $deadline) - ); - } -}; - -//rearrange arrays as needed to send in eMails -$new_ampel_user_arr = organizeAmpelnForMail($new_ampel_user_arr); -$overdue_ampel_user_arr = organizeAmpelnForMail($overdue_ampel_user_arr); - -//send eMail for new notifications -foreach ($new_ampel_user_arr as $receiver) -{ - //get data about sender - $person = new person(); - $person->getPersonFromBenutzer($receiver['user']); - $firstName = $person->vorname; - - //link to notifications system site - $link = APP_ROOT. "cis/index.php?sprache=German&content_id=&menu=". - APP_ROOT. "cis/menu.php?content_id=&content=". - APP_ROOT. "cis/private/tools/ampelverwaltung.php"; - - //eMail data - $to = $receiver['user']. '@'. DOMAIN; - $from = 'noreply@'. DOMAIN; - $subject = 'Sie haben eine neue Ampel!'; - $headerImg = "sancho_header_neue_nachrichten_in_ampelsystem.jpg"; - $content = "

Hallo ". $firstName. ",


"; - $content .= "

es gibt neue Ampeln für Sie:


"; - - for ($i = 0; $i < count($receiver) - 1; $i++) - { - $receiver[$i]['ampel_id']; - $content .= "

". strtoupper($receiver[$i]['ampel_bezeichnung']). "


"; - } - - $content .= "

Sie können sie jetzt gleich in Ihrem Ampelsystem bestätigen:

"; - $content .= "Zu meinem Ampelsystem
"; - $content .= "


Schönen Tag noch,
"; - $content .= "Sancho


"; - - //send eMail - sendMail($to, $from, $subject, $content, $headerImg); -} - -//send eMail for overdue notifications -foreach ($overdue_ampel_user_arr as $receiver) -{ - //get data about sender - $person = new person(); - $person->getPersonFromBenutzer($receiver['user']); - $firstName = $person->vorname; - - //link to notifications system site - $link = APP_ROOT. "cis/index.php?sprache=German&content_id=&menu=". - APP_ROOT. "cis/menu.php?content_id=&content=". - APP_ROOT. "cis/private/tools/ampelverwaltung.php"; - - //eMail data - $to = $receiver['user'] . '@' . DOMAIN; - $from = 'noreply@'.DOMAIN; - $subject = 'Bestätigen Sie bitte Ihre Ampel!'; - $headerImg = "sancho_header_deadline_ampel_overdue.jpg"; - $content = "

Hallo " . $firstName . ",


"; - $content .= "

diese Ampeln müssen von Ihnen noch bestätigt werden:


"; - - for ($i = 0; $i < count($receiver) - 1; $i++) - { - $receiver[$i]['ampel_id']; - $content .= "

" . strtoupper($receiver[$i]['ampel_bezeichnung']) . "
"; - $content .= "Die Deadline für die Bestätigung war am " . $receiver[$i]['deadline'] . "


"; - } - - $content .= "

Sie können sie jetzt gleich in Ihrem Ampelsystem bestätigen:

"; - $content .= "Zu meinem Ampelsystem
"; - $content .= "


Schönen Tag noch!
"; - $content .= "Sancho


"; - - //send eMail - sendMail($to, $from, $subject, $content, $headerImg); -} - - -//************************************************************* FUNCTIONS -function filterAmpeln($ampel_arr) -{ - $datum = new datum(); - $now = $datum->mktime_fromdate(date('Y-m-d')); - $arr = array(); - - foreach ($ampel_arr as $ampel) - { - $deadline = $datum->mktime_fromdate($ampel->deadline); - $vorlaufzeit = $ampel->vorlaufzeit; - $verfallszeit = $ampel->verfallszeit; - - $datum_liegt_vor_vorlaufzeit = false; - $datum_liegt_nach_verfallszeit = false; - - if (!is_null($vorlaufzeit)) - $datum_liegt_vor_vorlaufzeit = $now < strtotime('-' . $vorlaufzeit . ' day', $deadline); - - if (!is_null($verfallszeit)) - $datum_liegt_nach_verfallszeit = $now > strtotime('+' . $verfallszeit . ' day', $deadline); - - if (!$datum_liegt_vor_vorlaufzeit && !$datum_liegt_nach_verfallszeit && $ampel->email) - { - $arr[] = $ampel; - } - } - return $arr; -} -function organizeAmpelnForMail ($ampel_user_arr) -{ - $helper_arr = array(); - $unique_user_arr = array(); - foreach ($ampel_user_arr as $ampel_user) - { - foreach ($ampel_user['user'] as $user) - { - if(!in_array($user, $helper_arr)) - { - $helper_arr[] = $user; - $unique_user_arr[] = array( - 'user' => $user, - array( - 'ampel_id' => $ampel_user['ampel_id'], - 'ampel_bezeichnung' => $ampel_user['ampel_bezeichnung'], - 'deadline' => $ampel_user['deadline'])); - } - else - { - $index = array_search($user, array_column($unique_user_arr, 'user')); - $unique_user_arr[$index][] = - array( - 'ampel_id' => $ampel_user['ampel_id'], - 'ampel_bezeichnung' => $ampel_user['ampel_bezeichnung'], - 'deadline' => $ampel_user['deadline']); - } - } - } - return $unique_user_arr; -} -function sendMail($to, $from, $subject, $html_content, $headerImg = 'sancho_header_sie_haben_neue_nachrichten.jpg') -{ - $sanchoHeader_img = APP_ROOT . "skin/images/sancho/" . $headerImg; - $sanchoFooter_img = APP_ROOT . "skin/images/sancho/sancho_footer.jpg"; - - //mail content as plain text (fallback if html not activated) - $plain_text = "Hallo,\n\n"; - if (!empty ($title)) - $plain_text .= strip_tags($title) . "\n\n"; - $plain_text .= "Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Inhalt vollständig darzustellen."; - - //mail content as html text - /* - * no css styles in html-head (email clients picky about that) - * tables inside tables for correct styles in different email clients - * border-collapse and mso-table: this corrects strange behavior of outlook 2013 adding unwished extra space - */ - $html_text = ' - - - Sancho Ampelmail - -
- - - - - - - - - - -
- - - - -
- sancho_header -
-
- - - - -
-
' . $html_content . '
-
-
- - - - -
- sancho_footer -
-
-
- '; - - $mail = new mail($to, $from, $subject, $plain_text); - $mail->setHtmlContent($html_text); - $mail->addEmbeddedImage($sanchoFooter_img, "image/jpg", "", "SanchoFooter"); - $mail->addEmbeddedImage($sanchoHeader_img, "image/jpg", "", "SanchoHeader"); - - if(!$mail->send()) - echo $p->t('global/emailNichtVersendet') . ' an ' . $to . "
"; -} - \ No newline at end of file From 8022307972941c9f451fc99544ab0963d763bf05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 25 Jul 2018 13:46:30 +0200 Subject: [PATCH 10/20] Darstellungsprobleme des zweisprachigen Ausbildungsvertrages mit Libreoffice 6.0 behoben --- system/xsl/AusbVerEng_0.xsl | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/system/xsl/AusbVerEng_0.xsl b/system/xsl/AusbVerEng_0.xsl index 3cda18677..c8594240c 100644 --- a/system/xsl/AusbVerEng_0.xsl +++ b/system/xsl/AusbVerEng_0.xsl @@ -641,6 +641,10 @@ + + + + @@ -880,11 +884,6 @@ - - - - - Der Erhalter verpflichtet sich zur ordnungsgemäßen Planung und Durchführung des Studienganges in der Regelstudiendauer. Der Erhalter ist verpflichtet, allfällige Änderungen des akkreditierten Studienganges zeitgerecht bekannt zu geben. @@ -1059,7 +1058,7 @@ Diese Dokumente sind öffentlich zugänglich unter www.technikum-wien.at. 6.2.2 Studienbeitrag - Die Studentin bzw. der Student ist verpflichtet, zwei Wochen vor Beginn jedes Semesters (StudienanfängerInnen: bis 20. August vor Studienbeginn) einen Studienbeitrag gemäß Fachhochschul-Studiengesetz idgF in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Dies gilt auch in Semestern mit DiplomandInnenenstatus o.ä. Im Falle einer Erhöhung des gesetzlichen Studienbeitrags-satzes erhöht sich der angeführte Betrag entsprechend. Die vollständige Bezahlung des Studienbeitrags ist Voraussetzung für die Aufnahme bzw. die Fortsetzung des Studiums. Bei Nichtantritt des Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag. + Die Studentin bzw. der Student ist verpflichtet, zwei Wochen vor Beginn jedes Semesters (StudienanfängerInnen: bis 20. August vor Studienbeginn) einen Studienbeitrag gemäß Fachhochschul-Studiengesetz idgF in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Dies gilt auch in Semestern mit DiplomandInnenenstatus o.ä. Im Falle einer Erhöhung des gesetzlichen Studienbeitrags-satzes erhöht sich der angeführte Betrag entsprechend. Die vollständige Bezahlung des Studienbeitrags ist Voraussetzung für die Aufnahme bzw. die Fortsetzung des Studiums. Bei Nichtantritt des Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag. 6.2 Duties @@ -1087,14 +1086,14 @@ These documents are publically available at www.technikum-wien.at. 6.2.2 Tuition Fees - Two weeks before the beginning of each semester (new students: up to August 20 before taking up studies) the student undertakes to pay tuition fees according to the University of Applied Sciences Studies Act as amended currently to the sum of € 363.36 net payable per semester. This also applies in semesters with graduand status etc. In the event of an increase in the legal tuition fees rate, the amount quoted will increase accordingly. Full payment of the tuition fees is a prerequisite both for enrolling on the course and continuing with the degree program. For non-commencement or termination of the study at the beginning or during the semester, the tuition fee is forfeited. + Two weeks before the beginning of each semester (new students: up to August 20 before taking up studies) the student undertakes to pay tuition fees according to the University of Applied Sciences Studies Act as amended currently to the sum of € 363.36 net payable per semester. This also applies in semesters with graduand status etc. In the event of an increase in the legal tuition fees rate, the amount quoted will increase accordingly. Full payment of the tuition fees is a prerequisite both for enrolling on the course and continuing with the degree program. For non-commencement or termination of the study at the beginning or during the semester, the tuition fee is forfeited. 6.2.3 ÖH-Beitrag Gemäß § 4 Abs. 10 FHStG sind Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung. 6.2.4 Kaution Im Zuge der Einschreibung ist der Nachweis über die einbezahlte Kaution zu erbringen. - Die Kaution beträgt € 150,–. + Die Kaution beträgt € 150,–. Bei Nichtantritt des Studiums oder Abbruch während des ersten oder zweiten Semesters verfällt die Kaution. Bei aufrechtem Inskriptionsverhältnis zu Beginn des zweiten Semesters wird die Kaution auf den Unkostenbeitrag (siehe nächster Punkt) des ersten und zweiten Semesters angerechnet. @@ -1105,7 +1104,7 @@ Pro Semester ist ein Unkostenbeitrag zu entrichten, wobei es sich nicht um einen Pauschalbetrag handelt. Der Unkostenbeitrag stellt eine Abgeltung für über das Normalmaß hinausgehende Serviceleistungen der FH dar, z.B. Freifächer, Beratung/Info Auslands-studium, Sponsionsfeiern, Vorträge / Job-börse, Mensa etc. - Die Höhe des Unkostenbeitrages beträgt derzeit € 75,– pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht. + Die Höhe des Unkostenbeitrages beträgt derzeit € 75,– pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht. Der Unkostenbeitrag ist @@ -1121,14 +1120,14 @@ 6.2.4 Deposit During the process of registration, proof of deposit paid must be provided. - The deposit is € 150,–. + The deposit is € 150,–. For non-commencement of studies or termination during the first or second semester, the deposit shall be forfeited. If, by the beginning of the second semester, registration has been completed correctly the deposit will be credited to the contribution towards expenses (see next point) for the first and second semester. 6.2.5 Contribution towards Expenses A contribution towards expenses, which is not a lump sum, is payable per semester. The contribution towards expenses represents compensation for the services provided by the UAS that go beyond the normal level, such as electives, counseling/ information about studying abroad, graduation ceremonies, lectures/job market, cafeteria, etc. - The amount of the contribution is currently € 75,– per semester. Any possible adjustment is posted on the noticeboard. + The amount of the contribution is currently € 75,– per semester. Any possible adjustment is posted on the noticeboard. @@ -1239,7 +1238,6 @@ The student undertakes to return promptly all equipment, books, keys and other materials that have been made available, when the course is finished or broken off. - 7. Termination of the contract @@ -1252,6 +1250,7 @@ By mutual consent, the annulment of the training contract is possible at any time, without notice and for any reason. The amicable annulment must be put down in writing. + 7.2 Termination by the Student @@ -1261,8 +1260,7 @@ The student may terminate the training contract in writing at the end of each semester. - - + 7.3 Automatische Beendigung des Vertrages Nach erfolgreicher Beendigung des Studiums endet der Vertrag automatisch mit der Verleihung des akademischen Grades. @@ -1298,7 +1296,6 @@ strafgerichtlicher Verurteilung (wobei die Art des Deliktes und der Grad der Schuld berücksichtigt werden); - 7.3 Automatic Ending of the Contract From 308b9896860eae7c17159fa425de0c66144313d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 25 Jul 2018 14:09:50 +0200 Subject: [PATCH 11/20] Avoid Division by Zero Errors --- vilesci/lehre/raumauslastung.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vilesci/lehre/raumauslastung.php b/vilesci/lehre/raumauslastung.php index 94eedbe16..cf8c1b75e 100644 --- a/vilesci/lehre/raumauslastung.php +++ b/vilesci/lehre/raumauslastung.php @@ -76,7 +76,8 @@ $ts_beginn=mktime(0,0,0,substr($datum_beginn,5,2),substr($datum_beginn,8,2),subs $ts_ende=mktime(0,0,0,substr($datum_ende,5,2),substr($datum_ende,8,2),substr($datum_ende,0,4)); $wochen=round(($ts_ende-$ts_beginn)/(60*60*24*7)); - +if ($wochen == 0) + $wochen = 1; //Stundenplandaten holen $sql_query="SELECT DISTINCT datum,stunde,ort_kurzbz, EXTRACT(DOW FROM datum) AS tag, max_person FROM lehre.".$stundenplantable." JOIN public.tbl_ort USING (ort_kurzbz) From 75fcc170b88b249ec7350697f4528aef7a69d6f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 25 Jul 2018 14:16:22 +0200 Subject: [PATCH 12/20] Removed Undefined Property Notice on LVPlan Sync --- system/sync/sync_stpldev_stpl.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/system/sync/sync_stpldev_stpl.php b/system/sync/sync_stpldev_stpl.php index 066526fdb..fedc9794c 100644 --- a/system/sync/sync_stpldev_stpl.php +++ b/system/sync/sync_stpldev_stpl.php @@ -675,6 +675,8 @@ else $message[$row->old_uid]->isset=true; $message[$row->old_uid]->mailadress=$row->old_uid.'@'.DOMAIN; $message[$row->old_uid]->message_begin=$message_begin.'
'; + if(!isset($message[$row->old_uid]->message)) + $message[$row->old_uid]->message = ''; $message[$row->old_uid]->message.=''.$p_de->t('lvplan/geaenderteStunden').' / '.$p_en->t('lvplan/geaenderteStunden').'
From d47b844773e7bdc579ea5a44246ded79327913e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 25 Jul 2018 14:46:00 +0200 Subject: [PATCH 13/20] Added Missing Library for Screen-rebooting to Composer --- composer.json | 3 +- composer.lock | 110 ++++++++++++++++--- vilesci/stammdaten/infoscreen_uebersicht.php | 35 +++--- 3 files changed, 111 insertions(+), 37 deletions(-) diff --git a/composer.json b/composer.json index 32e0a063c..0b1b06750 100644 --- a/composer.json +++ b/composer.json @@ -284,7 +284,8 @@ "zetacomponents/workflow": "1.*", "zetacomponents/document": "1.*", "zetacomponents/workflow-database-tiein": "1.*", - "zetacomponents/workflow-event-log-tiein": "1.*" + "zetacomponents/workflow-event-log-tiein": "1.*", + "phpseclib/phpseclib": "^2.0" }, "require-dev": { "squizlabs/php_codesniffer": "2.*" diff --git a/composer.lock b/composer.lock index 8fc88a639..ddc4d46b4 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "db46edf729b6e4d5f0508eba65d3d201", - "content-hash": "201f046d574ccb1447f8d9b820b6b9e2", + "hash": "0a7b99cf08f40f15cad6397a2097d834", + "content-hash": "4065f6ebe38d16462908ebbdac8adf7d", "packages": [ { "name": "BlackrockDigital/startbootstrap-sb-admin-2", @@ -952,12 +952,6 @@ { "name": "ludo/jquery-treetable", "version": "3.2.0", - "dist": { - "type": "zip", - "url": "https://github.com/ludo/jquery-treetable/archive/3.2.0.zip", - "reference": null, - "shasum": null - }, "type": "library" }, { @@ -1215,13 +1209,99 @@ { "name": "nicolaskruchten/pivottable", "version": "2.15.0", + "type": "library" + }, + { + "name": "phpseclib/phpseclib", + "version": "2.0.11", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "7053f06f91b3de78e143d430e55a8f7889efc08b" + }, "dist": { "type": "zip", - "url": "https://github.com/nicolaskruchten/pivottable/archive/v2.15.0.zip", - "reference": null, - "shasum": null + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/7053f06f91b3de78e143d430e55a8f7889efc08b", + "reference": "7053f06f91b3de78e143d430e55a8f7889efc08b", + "shasum": "" }, - "type": "library" + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phing/phing": "~2.7", + "phpunit/phpunit": "^4.8.35|^5.7|^6.0", + "sami/sami": "~2.0", + "squizlabs/php_codesniffer": "~2.0" + }, + "suggest": { + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "time": "2018-04-15 16:55:05" }, { "name": "psr/log", @@ -1334,12 +1414,6 @@ { "name": "rmariuzzo/jquery-checkboxes", "version": "1.0.7", - "dist": { - "type": "zip", - "url": "https://github.com/rmariuzzo/checkboxes.js/archive/v1.0.7.zip", - "reference": null, - "shasum": null - }, "type": "library" }, { diff --git a/vilesci/stammdaten/infoscreen_uebersicht.php b/vilesci/stammdaten/infoscreen_uebersicht.php index f1038c85a..17019850f 100644 --- a/vilesci/stammdaten/infoscreen_uebersicht.php +++ b/vilesci/stammdaten/infoscreen_uebersicht.php @@ -26,7 +26,7 @@ $user = get_uid(); $basis = new basis(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); - + if(!$rechte->isBerechtigt('basis/infoscreen')) die($rechte->errormsg); @@ -40,7 +40,7 @@ echo ' Infoscreen - + @@ -49,17 +49,17 @@ echo ' - + @@ -85,15 +85,15 @@ if($action=='save') } else $infoscreen->new = true; - + $infoscreen->bezeichnung = $bezeichnung; $infoscreen->beschreibung = $beschreibung; $infoscreen->ipadresse = $ipadresse; - + if(!$infoscreen->save()) echo '',$basis->convert_html_chars($infoscreen->errormsg),''; else - echo 'Daten erfolgreich gespeichert'; + echo 'Daten erfolgreich gespeichert'; } if($action=='new' || $action=='update') @@ -107,7 +107,7 @@ if($action=='new' || $action=='update') { echo '

Bearbeiten von ID ',$basis->convert_html_chars($infoscreen_id),'

'; if(!$infoscreen->load($infoscreen_id)) - die('Fehler: '.$infoscreen->errormsg); + die('Fehler: '.$infoscreen->errormsg); } echo '
@@ -136,13 +136,12 @@ if($action=='reboot') { if(!$rechte->isBerechtigt('admin')) die($rechte->errormsg); - - set_include_path ("../../vendor/FHC-vendor/phpseclib"); - require_once("Net/SSH2.php"); - + + require_once("../../vendor/autoload.php"); + if(isset($_GET["ip"]) && $_GET["ip"]) { - $ssh = new Net_SSH2($_GET["ip"]); + $ssh = new \phpseclib\Net\SSH2($_GET["ip"]); if (!$ssh->login(INFOSCREEN_USER, INFOSCREEN_PASSWORD)) { exit('Login Failed'); @@ -186,4 +185,4 @@ echo '
'; -?> \ No newline at end of file +?> From 2e210b3ebb3d5519549336ebbaf8ab8808e94b72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 25 Jul 2018 15:54:13 +0200 Subject: [PATCH 14/20] Added Permissions for Web User to Write Messages --- system/dbupdate_3.3.php | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 2ab5fbdd1..9c90a68c9 100755 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -1536,7 +1536,7 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants } } -// INSERT Berechtigungen fuer web User erteilen fuer tbl_msg_status +// UPDATE Berechtigungen fuer web User erteilen fuer tbl_msg_status if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_msg_status' AND table_schema='public' AND grantee='web' AND privilege_type='UPDATE'")) { if($db->db_num_rows($result)==0) @@ -2263,6 +2263,40 @@ if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE } } +// INSERT und Update Berechtigungen fuer web User erteilen fuer tbl_msg_message +if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_msg_message' AND table_schema='public' AND grantee='web' AND privilege_type='INSERT'")) +{ + if($db->db_num_rows($result)==0) + { + $qry = "GRANT SELECT, INSERT, UPDATE ON public.tbl_msg_message TO web; + GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_message_message_id_seq TO web;"; + + if(!$db->db_query($qry)) + { + echo 'public.tbl_msg_message Berechtigungen: '.$db->db_last_error().'
'; + } + else + { + echo '
INSERT und UPDATE Rechte fuer public.tbl_msg_message + und tbl_msg_message_message_id_seq fuer web user gesetzt '; + } + } +} + +// INSERT und Update Berechtigungen fuer web User erteilen fuer tbl_msg_recipient +if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_msg_recipient' AND table_schema='public' AND grantee='web' AND privilege_type='INSERT'")) +{ + if($db->db_num_rows($result)==0) + { + $qry = "GRANT SELECT, INSERT, UPDATE ON public.tbl_msg_recipient TO web;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_msg_message Berechtigungen: '.$db->db_last_error().'
'; + else + echo '
INSERT und UPDATE Rechte fuer public.tbl_msg_message fuer web user gesetzt '; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; From 2aad3257b61dbf727a748f76a59022eda4063464 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 26 Jul 2018 08:28:43 +0200 Subject: [PATCH 15/20] Corrected Upload Permissions for DMS Documents --- cms/tinymce_dms.php | 151 ++++++----- content/akteupload.php | 455 ++++++++++++++++---------------- content/notizdokupload.php | 110 ++++---- include/dms.class.php | 470 ++++++++++++++++++---------------- webdav/DMSdirectory.class.php | 254 ------------------ webdav/DMSfile.class.php | 229 ----------------- webdav/dms.php | 64 ----- 7 files changed, 599 insertions(+), 1134 deletions(-) delete mode 100644 webdav/DMSdirectory.class.php delete mode 100644 webdav/DMSfile.class.php delete mode 100644 webdav/dms.php diff --git a/cms/tinymce_dms.php b/cms/tinymce_dms.php index 3d2ca5f9a..eb10e5a4d 100644 --- a/cms/tinymce_dms.php +++ b/cms/tinymce_dms.php @@ -53,7 +53,7 @@ if (! $rechte->isberechtigt('basis/dms', null, 's', null))