KursUmstufung - Releases

← App details

Nextcloud 34

KursUmstufung 1.0.4
Release Details
UpdatedJune 12, 2026, 9:49 a.m.
Changelog

Added

  • Genehmigungs-Workflow: Die Schulleitung kann eingereichte Anträge genehmigen oder mit Begründung ablehnen (Status approved/rejected).
  • Nextcloud-Benachrichtigungen: Die einreichende Lehrkraft wird über die Entscheidung informiert; die Schulleitung über neu eingereichte Anträge.
  • Konfigurierbare Fächer und Klassen über die Admin-Einstellungen (nicht mehr im Frontend einbetoniert).
  • Schuljahres-Filter und Archivierung; Anträge werden automatisch dem Schuljahr (Aug–Jul) zugeordnet.
  • Tests & CI: PHPUnit-Tests für Service-/Autorisierungslogik, GitHub-Actions-Pipeline (PHP-Lint, Unit-Tests, Frontend-Build, Secret-Scan).

Changed

  • Sicherheit: CSRF-Schutz auf dem Settings-Endpunkt aktiviert, serverseitige Eingabe-Validierung an allen API-Grenzen, generische Fehlermeldungen statt Leak interner Details (strukturiertes Logging).
  • Architektur: Controller auf Dependency Injection umgestellt (kein \OC::$server), Geschäftslogik in dedizierte Services ausgelagert, Frontend-Monolith in Komponenten zerlegt.
  • Robustheit: Lade-Fehler werden sichtbar gemeldet, CSV-Export gegen Formel-Injection abgesichert, N+1-Abfrage entschärft, UI nutzt Nextcloud-Theme-Variablen (Light/Dark).

Removed

  • Ungenutzte Abhängigkeit @nextcloud/vue und Debug-Endpunkte/Logs entfernt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECDCCAvACAhNoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjEyMDY1ODU1WhcNMzYwOTE3MDY1ODU1WjAYMRYwFAYD
VQQDDA1rdXJzdW1zdHVmdW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEAlmt93gom8oSpIcsFgqOoW4tTNgiGruC+D5Dz5wXozSskMcQeIJM9/zyhRWN0
SBKuViCDe0cg1vYOaHS/zCJFP5Lw//1+TDIMYs0CKs1IjSPZLJparK7MYGAdH53r
p1vQj348uhH5/35uAJGYgD9UiOUWZqlSMHrKRm6QkZscB3M8tIuO79dDIt2D4WLp
E6lOub54YEJDVr4amVeoKs11UmGzeDH8fCqZslMSkOXzh3+0ugVYw+rZCSSC+vRY
uHWalrKTtLg4rBTSEyBUptZuONt5ciy6b8miTTod6x81/obHK/Y0KRkzVq0FuwCI
j4LWHnR/PujAACtdiJGAJGimGwASsxrtfXugVdgI6L6Gj0pNuLNQ59+vMsALzJfz
ckWGtphQSHKCAcMSWTovyOfiQm35HifuIhu6B2j/aMkRZ4655XC+y1bXI0C5jJX3
jUAPK0dtu+iByw37jCxTZPv0mpUl0qnt6ixlDUp32tD5Z2CdLG8OoROtIRtl9h0e
ysCzPsHdYpW2A0MU3oOYuEbasBLHyYFKno3RKv3qIqU7GrTseiwdTEaJDIXqUkX6
+IMlVSi1E2BPBs1MoPHqoLm+XuRrjhmxUWQ/5W4eQreH30j6bHZ/iXCCX32qv1mt
283JT/+EOaN/nbsJ8LanQ7gPihmj8t6Ixd+wOWI1jjcaBQUCAwEAATANBgkqhkiG
9w0BAQsFAAOCAQEAhLrV8f5wXdf1xt2l5d5UEiDA/wYIFLQAoxMiZacUTChBz4kx
6+Mk21YXDnsLXcv1RUyCepExNfOdL2Vklz5uVS+hHWOQIUrbS4tqiI/wo0EUZLMq
ejnnyqABET3NIRKgdSpHr2Pf3yyCS5mwA4gnrXXXIcvKAihGr3SNqbhefCEJF9lA
fsalvVmiOxTAiF4Tq7WveJvRsbXJGzEB/jhG8PA5Fx9n7yXlU7IURL5W+z61+XeD
t7L5ds0N+9POcvwpvOY/P2RgpSNL3nUWp76FS2mlO42LAY1fOJc65Af4JY+l6m3n
ngm40OA367LwvT9/fCGwSwByBLyeeE/Y0ANRjw==
-----END CERTIFICATE-----
SignatureZu/upGXdTxUeRq8Fn3inFMbHLA9kmtNhWdyEwKAaHE6fhuAv4kRB9w3uut+KVvdafQzcHaJn///pmU0O2khzH1aLIrRbFbZA1RwCwNhI2Ph46HNzuO9KE7wJy5PgGyEXfn60+JXxOULGXGJ73FYdNN2JzdZcwOAlN0MRwMvq80nyWDW/ksFtRmDo7X5STgZkRgJZ6QkSoT3gO67WlIUK9XK8VTcCehGa+SuO1vVuwMe1XocK8b7Bju/hL+M4hbIMnXudLHn2Jf1tVQYJf3yF++hmr54NqOxkw7D/hvF/DsL7Jrjn63q+IqZgvq8lf8rZJBn4PrcRlGFKB/TasxHfh2ItSwXMGrsRNORhH2n73lnnG9TUvnoc8fBxXOt4xzUDdLADyV9X8iojsZlspqS2C5LeK2Q2s4IJnhzqD3JNZR2pe9UrbxxI29mdx+0hHXUqcBx2DMxHzQvbBAqCz6Ewt+vE51yuwMgxLJQu96UDwd5lV8suXMGl+BfC8zpZBTIuunN/i5qxtRYLok48BY7h2cCV+m6GzbUT+epg0AWiisBCynC3G/2yvw0pf5ktHHlQ+MBDDlB2pG8WfcwJEVWm4SE9LrW0pGGCYABK1TOLI+Iupn+Wd1xsr2EJCHJjMG2/jQpg75xwX1y2/2ycm9I0aTKXGv2v9QApwnG2OsCejj8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 33

KursUmstufung 1.0.4
Release Details
UpdatedJune 12, 2026, 9:49 a.m.
Changelog

Added

  • Genehmigungs-Workflow: Die Schulleitung kann eingereichte Anträge genehmigen oder mit Begründung ablehnen (Status approved/rejected).
  • Nextcloud-Benachrichtigungen: Die einreichende Lehrkraft wird über die Entscheidung informiert; die Schulleitung über neu eingereichte Anträge.
  • Konfigurierbare Fächer und Klassen über die Admin-Einstellungen (nicht mehr im Frontend einbetoniert).
  • Schuljahres-Filter und Archivierung; Anträge werden automatisch dem Schuljahr (Aug–Jul) zugeordnet.
  • Tests & CI: PHPUnit-Tests für Service-/Autorisierungslogik, GitHub-Actions-Pipeline (PHP-Lint, Unit-Tests, Frontend-Build, Secret-Scan).

Changed

  • Sicherheit: CSRF-Schutz auf dem Settings-Endpunkt aktiviert, serverseitige Eingabe-Validierung an allen API-Grenzen, generische Fehlermeldungen statt Leak interner Details (strukturiertes Logging).
  • Architektur: Controller auf Dependency Injection umgestellt (kein \OC::$server), Geschäftslogik in dedizierte Services ausgelagert, Frontend-Monolith in Komponenten zerlegt.
  • Robustheit: Lade-Fehler werden sichtbar gemeldet, CSV-Export gegen Formel-Injection abgesichert, N+1-Abfrage entschärft, UI nutzt Nextcloud-Theme-Variablen (Light/Dark).

Removed

  • Ungenutzte Abhängigkeit @nextcloud/vue und Debug-Endpunkte/Logs entfernt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECDCCAvACAhNoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjEyMDY1ODU1WhcNMzYwOTE3MDY1ODU1WjAYMRYwFAYD
VQQDDA1rdXJzdW1zdHVmdW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEAlmt93gom8oSpIcsFgqOoW4tTNgiGruC+D5Dz5wXozSskMcQeIJM9/zyhRWN0
SBKuViCDe0cg1vYOaHS/zCJFP5Lw//1+TDIMYs0CKs1IjSPZLJparK7MYGAdH53r
p1vQj348uhH5/35uAJGYgD9UiOUWZqlSMHrKRm6QkZscB3M8tIuO79dDIt2D4WLp
E6lOub54YEJDVr4amVeoKs11UmGzeDH8fCqZslMSkOXzh3+0ugVYw+rZCSSC+vRY
uHWalrKTtLg4rBTSEyBUptZuONt5ciy6b8miTTod6x81/obHK/Y0KRkzVq0FuwCI
j4LWHnR/PujAACtdiJGAJGimGwASsxrtfXugVdgI6L6Gj0pNuLNQ59+vMsALzJfz
ckWGtphQSHKCAcMSWTovyOfiQm35HifuIhu6B2j/aMkRZ4655XC+y1bXI0C5jJX3
jUAPK0dtu+iByw37jCxTZPv0mpUl0qnt6ixlDUp32tD5Z2CdLG8OoROtIRtl9h0e
ysCzPsHdYpW2A0MU3oOYuEbasBLHyYFKno3RKv3qIqU7GrTseiwdTEaJDIXqUkX6
+IMlVSi1E2BPBs1MoPHqoLm+XuRrjhmxUWQ/5W4eQreH30j6bHZ/iXCCX32qv1mt
283JT/+EOaN/nbsJ8LanQ7gPihmj8t6Ixd+wOWI1jjcaBQUCAwEAATANBgkqhkiG
9w0BAQsFAAOCAQEAhLrV8f5wXdf1xt2l5d5UEiDA/wYIFLQAoxMiZacUTChBz4kx
6+Mk21YXDnsLXcv1RUyCepExNfOdL2Vklz5uVS+hHWOQIUrbS4tqiI/wo0EUZLMq
ejnnyqABET3NIRKgdSpHr2Pf3yyCS5mwA4gnrXXXIcvKAihGr3SNqbhefCEJF9lA
fsalvVmiOxTAiF4Tq7WveJvRsbXJGzEB/jhG8PA5Fx9n7yXlU7IURL5W+z61+XeD
t7L5ds0N+9POcvwpvOY/P2RgpSNL3nUWp76FS2mlO42LAY1fOJc65Af4JY+l6m3n
ngm40OA367LwvT9/fCGwSwByBLyeeE/Y0ANRjw==
-----END CERTIFICATE-----
SignatureZu/upGXdTxUeRq8Fn3inFMbHLA9kmtNhWdyEwKAaHE6fhuAv4kRB9w3uut+KVvdafQzcHaJn///pmU0O2khzH1aLIrRbFbZA1RwCwNhI2Ph46HNzuO9KE7wJy5PgGyEXfn60+JXxOULGXGJ73FYdNN2JzdZcwOAlN0MRwMvq80nyWDW/ksFtRmDo7X5STgZkRgJZ6QkSoT3gO67WlIUK9XK8VTcCehGa+SuO1vVuwMe1XocK8b7Bju/hL+M4hbIMnXudLHn2Jf1tVQYJf3yF++hmr54NqOxkw7D/hvF/DsL7Jrjn63q+IqZgvq8lf8rZJBn4PrcRlGFKB/TasxHfh2ItSwXMGrsRNORhH2n73lnnG9TUvnoc8fBxXOt4xzUDdLADyV9X8iojsZlspqS2C5LeK2Q2s4IJnhzqD3JNZR2pe9UrbxxI29mdx+0hHXUqcBx2DMxHzQvbBAqCz6Ewt+vE51yuwMgxLJQu96UDwd5lV8suXMGl+BfC8zpZBTIuunN/i5qxtRYLok48BY7h2cCV+m6GzbUT+epg0AWiisBCynC3G/2yvw0pf5ktHHlQ+MBDDlB2pG8WfcwJEVWm4SE9LrW0pGGCYABK1TOLI+Iupn+Wd1xsr2EJCHJjMG2/jQpg75xwX1y2/2ycm9I0aTKXGv2v9QApwnG2OsCejj8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 32

KursUmstufung 1.0.4
Release Details
UpdatedJune 12, 2026, 9:49 a.m.
Changelog

Added

  • Genehmigungs-Workflow: Die Schulleitung kann eingereichte Anträge genehmigen oder mit Begründung ablehnen (Status approved/rejected).
  • Nextcloud-Benachrichtigungen: Die einreichende Lehrkraft wird über die Entscheidung informiert; die Schulleitung über neu eingereichte Anträge.
  • Konfigurierbare Fächer und Klassen über die Admin-Einstellungen (nicht mehr im Frontend einbetoniert).
  • Schuljahres-Filter und Archivierung; Anträge werden automatisch dem Schuljahr (Aug–Jul) zugeordnet.
  • Tests & CI: PHPUnit-Tests für Service-/Autorisierungslogik, GitHub-Actions-Pipeline (PHP-Lint, Unit-Tests, Frontend-Build, Secret-Scan).

Changed

  • Sicherheit: CSRF-Schutz auf dem Settings-Endpunkt aktiviert, serverseitige Eingabe-Validierung an allen API-Grenzen, generische Fehlermeldungen statt Leak interner Details (strukturiertes Logging).
  • Architektur: Controller auf Dependency Injection umgestellt (kein \OC::$server), Geschäftslogik in dedizierte Services ausgelagert, Frontend-Monolith in Komponenten zerlegt.
  • Robustheit: Lade-Fehler werden sichtbar gemeldet, CSV-Export gegen Formel-Injection abgesichert, N+1-Abfrage entschärft, UI nutzt Nextcloud-Theme-Variablen (Light/Dark).

Removed

  • Ungenutzte Abhängigkeit @nextcloud/vue und Debug-Endpunkte/Logs entfernt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECDCCAvACAhNoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjEyMDY1ODU1WhcNMzYwOTE3MDY1ODU1WjAYMRYwFAYD
VQQDDA1rdXJzdW1zdHVmdW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEAlmt93gom8oSpIcsFgqOoW4tTNgiGruC+D5Dz5wXozSskMcQeIJM9/zyhRWN0
SBKuViCDe0cg1vYOaHS/zCJFP5Lw//1+TDIMYs0CKs1IjSPZLJparK7MYGAdH53r
p1vQj348uhH5/35uAJGYgD9UiOUWZqlSMHrKRm6QkZscB3M8tIuO79dDIt2D4WLp
E6lOub54YEJDVr4amVeoKs11UmGzeDH8fCqZslMSkOXzh3+0ugVYw+rZCSSC+vRY
uHWalrKTtLg4rBTSEyBUptZuONt5ciy6b8miTTod6x81/obHK/Y0KRkzVq0FuwCI
j4LWHnR/PujAACtdiJGAJGimGwASsxrtfXugVdgI6L6Gj0pNuLNQ59+vMsALzJfz
ckWGtphQSHKCAcMSWTovyOfiQm35HifuIhu6B2j/aMkRZ4655XC+y1bXI0C5jJX3
jUAPK0dtu+iByw37jCxTZPv0mpUl0qnt6ixlDUp32tD5Z2CdLG8OoROtIRtl9h0e
ysCzPsHdYpW2A0MU3oOYuEbasBLHyYFKno3RKv3qIqU7GrTseiwdTEaJDIXqUkX6
+IMlVSi1E2BPBs1MoPHqoLm+XuRrjhmxUWQ/5W4eQreH30j6bHZ/iXCCX32qv1mt
283JT/+EOaN/nbsJ8LanQ7gPihmj8t6Ixd+wOWI1jjcaBQUCAwEAATANBgkqhkiG
9w0BAQsFAAOCAQEAhLrV8f5wXdf1xt2l5d5UEiDA/wYIFLQAoxMiZacUTChBz4kx
6+Mk21YXDnsLXcv1RUyCepExNfOdL2Vklz5uVS+hHWOQIUrbS4tqiI/wo0EUZLMq
ejnnyqABET3NIRKgdSpHr2Pf3yyCS5mwA4gnrXXXIcvKAihGr3SNqbhefCEJF9lA
fsalvVmiOxTAiF4Tq7WveJvRsbXJGzEB/jhG8PA5Fx9n7yXlU7IURL5W+z61+XeD
t7L5ds0N+9POcvwpvOY/P2RgpSNL3nUWp76FS2mlO42LAY1fOJc65Af4JY+l6m3n
ngm40OA367LwvT9/fCGwSwByBLyeeE/Y0ANRjw==
-----END CERTIFICATE-----
SignatureZu/upGXdTxUeRq8Fn3inFMbHLA9kmtNhWdyEwKAaHE6fhuAv4kRB9w3uut+KVvdafQzcHaJn///pmU0O2khzH1aLIrRbFbZA1RwCwNhI2Ph46HNzuO9KE7wJy5PgGyEXfn60+JXxOULGXGJ73FYdNN2JzdZcwOAlN0MRwMvq80nyWDW/ksFtRmDo7X5STgZkRgJZ6QkSoT3gO67WlIUK9XK8VTcCehGa+SuO1vVuwMe1XocK8b7Bju/hL+M4hbIMnXudLHn2Jf1tVQYJf3yF++hmr54NqOxkw7D/hvF/DsL7Jrjn63q+IqZgvq8lf8rZJBn4PrcRlGFKB/TasxHfh2ItSwXMGrsRNORhH2n73lnnG9TUvnoc8fBxXOt4xzUDdLADyV9X8iojsZlspqS2C5LeK2Q2s4IJnhzqD3JNZR2pe9UrbxxI29mdx+0hHXUqcBx2DMxHzQvbBAqCz6Ewt+vE51yuwMgxLJQu96UDwd5lV8suXMGl+BfC8zpZBTIuunN/i5qxtRYLok48BY7h2cCV+m6GzbUT+epg0AWiisBCynC3G/2yvw0pf5ktHHlQ+MBDDlB2pG8WfcwJEVWm4SE9LrW0pGGCYABK1TOLI+Iupn+Wd1xsr2EJCHJjMG2/jQpg75xwX1y2/2ycm9I0aTKXGv2v9QApwnG2OsCejj8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 31

KursUmstufung 1.0.4
Release Details
UpdatedJune 12, 2026, 9:49 a.m.
Changelog

Added

  • Genehmigungs-Workflow: Die Schulleitung kann eingereichte Anträge genehmigen oder mit Begründung ablehnen (Status approved/rejected).
  • Nextcloud-Benachrichtigungen: Die einreichende Lehrkraft wird über die Entscheidung informiert; die Schulleitung über neu eingereichte Anträge.
  • Konfigurierbare Fächer und Klassen über die Admin-Einstellungen (nicht mehr im Frontend einbetoniert).
  • Schuljahres-Filter und Archivierung; Anträge werden automatisch dem Schuljahr (Aug–Jul) zugeordnet.
  • Tests & CI: PHPUnit-Tests für Service-/Autorisierungslogik, GitHub-Actions-Pipeline (PHP-Lint, Unit-Tests, Frontend-Build, Secret-Scan).

Changed

  • Sicherheit: CSRF-Schutz auf dem Settings-Endpunkt aktiviert, serverseitige Eingabe-Validierung an allen API-Grenzen, generische Fehlermeldungen statt Leak interner Details (strukturiertes Logging).
  • Architektur: Controller auf Dependency Injection umgestellt (kein \OC::$server), Geschäftslogik in dedizierte Services ausgelagert, Frontend-Monolith in Komponenten zerlegt.
  • Robustheit: Lade-Fehler werden sichtbar gemeldet, CSV-Export gegen Formel-Injection abgesichert, N+1-Abfrage entschärft, UI nutzt Nextcloud-Theme-Variablen (Light/Dark).

Removed

  • Ungenutzte Abhängigkeit @nextcloud/vue und Debug-Endpunkte/Logs entfernt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECDCCAvACAhNoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjEyMDY1ODU1WhcNMzYwOTE3MDY1ODU1WjAYMRYwFAYD
VQQDDA1rdXJzdW1zdHVmdW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEAlmt93gom8oSpIcsFgqOoW4tTNgiGruC+D5Dz5wXozSskMcQeIJM9/zyhRWN0
SBKuViCDe0cg1vYOaHS/zCJFP5Lw//1+TDIMYs0CKs1IjSPZLJparK7MYGAdH53r
p1vQj348uhH5/35uAJGYgD9UiOUWZqlSMHrKRm6QkZscB3M8tIuO79dDIt2D4WLp
E6lOub54YEJDVr4amVeoKs11UmGzeDH8fCqZslMSkOXzh3+0ugVYw+rZCSSC+vRY
uHWalrKTtLg4rBTSEyBUptZuONt5ciy6b8miTTod6x81/obHK/Y0KRkzVq0FuwCI
j4LWHnR/PujAACtdiJGAJGimGwASsxrtfXugVdgI6L6Gj0pNuLNQ59+vMsALzJfz
ckWGtphQSHKCAcMSWTovyOfiQm35HifuIhu6B2j/aMkRZ4655XC+y1bXI0C5jJX3
jUAPK0dtu+iByw37jCxTZPv0mpUl0qnt6ixlDUp32tD5Z2CdLG8OoROtIRtl9h0e
ysCzPsHdYpW2A0MU3oOYuEbasBLHyYFKno3RKv3qIqU7GrTseiwdTEaJDIXqUkX6
+IMlVSi1E2BPBs1MoPHqoLm+XuRrjhmxUWQ/5W4eQreH30j6bHZ/iXCCX32qv1mt
283JT/+EOaN/nbsJ8LanQ7gPihmj8t6Ixd+wOWI1jjcaBQUCAwEAATANBgkqhkiG
9w0BAQsFAAOCAQEAhLrV8f5wXdf1xt2l5d5UEiDA/wYIFLQAoxMiZacUTChBz4kx
6+Mk21YXDnsLXcv1RUyCepExNfOdL2Vklz5uVS+hHWOQIUrbS4tqiI/wo0EUZLMq
ejnnyqABET3NIRKgdSpHr2Pf3yyCS5mwA4gnrXXXIcvKAihGr3SNqbhefCEJF9lA
fsalvVmiOxTAiF4Tq7WveJvRsbXJGzEB/jhG8PA5Fx9n7yXlU7IURL5W+z61+XeD
t7L5ds0N+9POcvwpvOY/P2RgpSNL3nUWp76FS2mlO42LAY1fOJc65Af4JY+l6m3n
ngm40OA367LwvT9/fCGwSwByBLyeeE/Y0ANRjw==
-----END CERTIFICATE-----
SignatureZu/upGXdTxUeRq8Fn3inFMbHLA9kmtNhWdyEwKAaHE6fhuAv4kRB9w3uut+KVvdafQzcHaJn///pmU0O2khzH1aLIrRbFbZA1RwCwNhI2Ph46HNzuO9KE7wJy5PgGyEXfn60+JXxOULGXGJ73FYdNN2JzdZcwOAlN0MRwMvq80nyWDW/ksFtRmDo7X5STgZkRgJZ6QkSoT3gO67WlIUK9XK8VTcCehGa+SuO1vVuwMe1XocK8b7Bju/hL+M4hbIMnXudLHn2Jf1tVQYJf3yF++hmr54NqOxkw7D/hvF/DsL7Jrjn63q+IqZgvq8lf8rZJBn4PrcRlGFKB/TasxHfh2ItSwXMGrsRNORhH2n73lnnG9TUvnoc8fBxXOt4xzUDdLADyV9X8iojsZlspqS2C5LeK2Q2s4IJnhzqD3JNZR2pe9UrbxxI29mdx+0hHXUqcBx2DMxHzQvbBAqCz6Ewt+vE51yuwMgxLJQu96UDwd5lV8suXMGl+BfC8zpZBTIuunN/i5qxtRYLok48BY7h2cCV+m6GzbUT+epg0AWiisBCynC3G/2yvw0pf5ktHHlQ+MBDDlB2pG8WfcwJEVWm4SE9LrW0pGGCYABK1TOLI+Iupn+Wd1xsr2EJCHJjMG2/jQpg75xwX1y2/2ycm9I0aTKXGv2v9QApwnG2OsCejj8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 30

KursUmstufung 1.0.4
Release Details
UpdatedJune 12, 2026, 9:49 a.m.
Changelog

Added

  • Genehmigungs-Workflow: Die Schulleitung kann eingereichte Anträge genehmigen oder mit Begründung ablehnen (Status approved/rejected).
  • Nextcloud-Benachrichtigungen: Die einreichende Lehrkraft wird über die Entscheidung informiert; die Schulleitung über neu eingereichte Anträge.
  • Konfigurierbare Fächer und Klassen über die Admin-Einstellungen (nicht mehr im Frontend einbetoniert).
  • Schuljahres-Filter und Archivierung; Anträge werden automatisch dem Schuljahr (Aug–Jul) zugeordnet.
  • Tests & CI: PHPUnit-Tests für Service-/Autorisierungslogik, GitHub-Actions-Pipeline (PHP-Lint, Unit-Tests, Frontend-Build, Secret-Scan).

Changed

  • Sicherheit: CSRF-Schutz auf dem Settings-Endpunkt aktiviert, serverseitige Eingabe-Validierung an allen API-Grenzen, generische Fehlermeldungen statt Leak interner Details (strukturiertes Logging).
  • Architektur: Controller auf Dependency Injection umgestellt (kein \OC::$server), Geschäftslogik in dedizierte Services ausgelagert, Frontend-Monolith in Komponenten zerlegt.
  • Robustheit: Lade-Fehler werden sichtbar gemeldet, CSV-Export gegen Formel-Injection abgesichert, N+1-Abfrage entschärft, UI nutzt Nextcloud-Theme-Variablen (Light/Dark).

Removed

  • Ungenutzte Abhängigkeit @nextcloud/vue und Debug-Endpunkte/Logs entfernt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECDCCAvACAhNoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjEyMDY1ODU1WhcNMzYwOTE3MDY1ODU1WjAYMRYwFAYD
VQQDDA1rdXJzdW1zdHVmdW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEAlmt93gom8oSpIcsFgqOoW4tTNgiGruC+D5Dz5wXozSskMcQeIJM9/zyhRWN0
SBKuViCDe0cg1vYOaHS/zCJFP5Lw//1+TDIMYs0CKs1IjSPZLJparK7MYGAdH53r
p1vQj348uhH5/35uAJGYgD9UiOUWZqlSMHrKRm6QkZscB3M8tIuO79dDIt2D4WLp
E6lOub54YEJDVr4amVeoKs11UmGzeDH8fCqZslMSkOXzh3+0ugVYw+rZCSSC+vRY
uHWalrKTtLg4rBTSEyBUptZuONt5ciy6b8miTTod6x81/obHK/Y0KRkzVq0FuwCI
j4LWHnR/PujAACtdiJGAJGimGwASsxrtfXugVdgI6L6Gj0pNuLNQ59+vMsALzJfz
ckWGtphQSHKCAcMSWTovyOfiQm35HifuIhu6B2j/aMkRZ4655XC+y1bXI0C5jJX3
jUAPK0dtu+iByw37jCxTZPv0mpUl0qnt6ixlDUp32tD5Z2CdLG8OoROtIRtl9h0e
ysCzPsHdYpW2A0MU3oOYuEbasBLHyYFKno3RKv3qIqU7GrTseiwdTEaJDIXqUkX6
+IMlVSi1E2BPBs1MoPHqoLm+XuRrjhmxUWQ/5W4eQreH30j6bHZ/iXCCX32qv1mt
283JT/+EOaN/nbsJ8LanQ7gPihmj8t6Ixd+wOWI1jjcaBQUCAwEAATANBgkqhkiG
9w0BAQsFAAOCAQEAhLrV8f5wXdf1xt2l5d5UEiDA/wYIFLQAoxMiZacUTChBz4kx
6+Mk21YXDnsLXcv1RUyCepExNfOdL2Vklz5uVS+hHWOQIUrbS4tqiI/wo0EUZLMq
ejnnyqABET3NIRKgdSpHr2Pf3yyCS5mwA4gnrXXXIcvKAihGr3SNqbhefCEJF9lA
fsalvVmiOxTAiF4Tq7WveJvRsbXJGzEB/jhG8PA5Fx9n7yXlU7IURL5W+z61+XeD
t7L5ds0N+9POcvwpvOY/P2RgpSNL3nUWp76FS2mlO42LAY1fOJc65Af4JY+l6m3n
ngm40OA367LwvT9/fCGwSwByBLyeeE/Y0ANRjw==
-----END CERTIFICATE-----
SignatureZu/upGXdTxUeRq8Fn3inFMbHLA9kmtNhWdyEwKAaHE6fhuAv4kRB9w3uut+KVvdafQzcHaJn///pmU0O2khzH1aLIrRbFbZA1RwCwNhI2Ph46HNzuO9KE7wJy5PgGyEXfn60+JXxOULGXGJ73FYdNN2JzdZcwOAlN0MRwMvq80nyWDW/ksFtRmDo7X5STgZkRgJZ6QkSoT3gO67WlIUK9XK8VTcCehGa+SuO1vVuwMe1XocK8b7Bju/hL+M4hbIMnXudLHn2Jf1tVQYJf3yF++hmr54NqOxkw7D/hvF/DsL7Jrjn63q+IqZgvq8lf8rZJBn4PrcRlGFKB/TasxHfh2ItSwXMGrsRNORhH2n73lnnG9TUvnoc8fBxXOt4xzUDdLADyV9X8iojsZlspqS2C5LeK2Q2s4IJnhzqD3JNZR2pe9UrbxxI29mdx+0hHXUqcBx2DMxHzQvbBAqCz6Ewt+vE51yuwMgxLJQu96UDwd5lV8suXMGl+BfC8zpZBTIuunN/i5qxtRYLok48BY7h2cCV+m6GzbUT+epg0AWiisBCynC3G/2yvw0pf5ktHHlQ+MBDDlB2pG8WfcwJEVWm4SE9LrW0pGGCYABK1TOLI+Iupn+Wd1xsr2EJCHJjMG2/jQpg75xwX1y2/2ycm9I0aTKXGv2v9QApwnG2OsCejj8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 29

KursUmstufung 1.0.4
Release Details
UpdatedJune 12, 2026, 9:49 a.m.
Changelog

Added

  • Genehmigungs-Workflow: Die Schulleitung kann eingereichte Anträge genehmigen oder mit Begründung ablehnen (Status approved/rejected).
  • Nextcloud-Benachrichtigungen: Die einreichende Lehrkraft wird über die Entscheidung informiert; die Schulleitung über neu eingereichte Anträge.
  • Konfigurierbare Fächer und Klassen über die Admin-Einstellungen (nicht mehr im Frontend einbetoniert).
  • Schuljahres-Filter und Archivierung; Anträge werden automatisch dem Schuljahr (Aug–Jul) zugeordnet.
  • Tests & CI: PHPUnit-Tests für Service-/Autorisierungslogik, GitHub-Actions-Pipeline (PHP-Lint, Unit-Tests, Frontend-Build, Secret-Scan).

Changed

  • Sicherheit: CSRF-Schutz auf dem Settings-Endpunkt aktiviert, serverseitige Eingabe-Validierung an allen API-Grenzen, generische Fehlermeldungen statt Leak interner Details (strukturiertes Logging).
  • Architektur: Controller auf Dependency Injection umgestellt (kein \OC::$server), Geschäftslogik in dedizierte Services ausgelagert, Frontend-Monolith in Komponenten zerlegt.
  • Robustheit: Lade-Fehler werden sichtbar gemeldet, CSV-Export gegen Formel-Injection abgesichert, N+1-Abfrage entschärft, UI nutzt Nextcloud-Theme-Variablen (Light/Dark).

Removed

  • Ungenutzte Abhängigkeit @nextcloud/vue und Debug-Endpunkte/Logs entfernt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECDCCAvACAhNoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjEyMDY1ODU1WhcNMzYwOTE3MDY1ODU1WjAYMRYwFAYD
VQQDDA1rdXJzdW1zdHVmdW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEAlmt93gom8oSpIcsFgqOoW4tTNgiGruC+D5Dz5wXozSskMcQeIJM9/zyhRWN0
SBKuViCDe0cg1vYOaHS/zCJFP5Lw//1+TDIMYs0CKs1IjSPZLJparK7MYGAdH53r
p1vQj348uhH5/35uAJGYgD9UiOUWZqlSMHrKRm6QkZscB3M8tIuO79dDIt2D4WLp
E6lOub54YEJDVr4amVeoKs11UmGzeDH8fCqZslMSkOXzh3+0ugVYw+rZCSSC+vRY
uHWalrKTtLg4rBTSEyBUptZuONt5ciy6b8miTTod6x81/obHK/Y0KRkzVq0FuwCI
j4LWHnR/PujAACtdiJGAJGimGwASsxrtfXugVdgI6L6Gj0pNuLNQ59+vMsALzJfz
ckWGtphQSHKCAcMSWTovyOfiQm35HifuIhu6B2j/aMkRZ4655XC+y1bXI0C5jJX3
jUAPK0dtu+iByw37jCxTZPv0mpUl0qnt6ixlDUp32tD5Z2CdLG8OoROtIRtl9h0e
ysCzPsHdYpW2A0MU3oOYuEbasBLHyYFKno3RKv3qIqU7GrTseiwdTEaJDIXqUkX6
+IMlVSi1E2BPBs1MoPHqoLm+XuRrjhmxUWQ/5W4eQreH30j6bHZ/iXCCX32qv1mt
283JT/+EOaN/nbsJ8LanQ7gPihmj8t6Ixd+wOWI1jjcaBQUCAwEAATANBgkqhkiG
9w0BAQsFAAOCAQEAhLrV8f5wXdf1xt2l5d5UEiDA/wYIFLQAoxMiZacUTChBz4kx
6+Mk21YXDnsLXcv1RUyCepExNfOdL2Vklz5uVS+hHWOQIUrbS4tqiI/wo0EUZLMq
ejnnyqABET3NIRKgdSpHr2Pf3yyCS5mwA4gnrXXXIcvKAihGr3SNqbhefCEJF9lA
fsalvVmiOxTAiF4Tq7WveJvRsbXJGzEB/jhG8PA5Fx9n7yXlU7IURL5W+z61+XeD
t7L5ds0N+9POcvwpvOY/P2RgpSNL3nUWp76FS2mlO42LAY1fOJc65Af4JY+l6m3n
ngm40OA367LwvT9/fCGwSwByBLyeeE/Y0ANRjw==
-----END CERTIFICATE-----
SignatureZu/upGXdTxUeRq8Fn3inFMbHLA9kmtNhWdyEwKAaHE6fhuAv4kRB9w3uut+KVvdafQzcHaJn///pmU0O2khzH1aLIrRbFbZA1RwCwNhI2Ph46HNzuO9KE7wJy5PgGyEXfn60+JXxOULGXGJ73FYdNN2JzdZcwOAlN0MRwMvq80nyWDW/ksFtRmDo7X5STgZkRgJZ6QkSoT3gO67WlIUK9XK8VTcCehGa+SuO1vVuwMe1XocK8b7Bju/hL+M4hbIMnXudLHn2Jf1tVQYJf3yF++hmr54NqOxkw7D/hvF/DsL7Jrjn63q+IqZgvq8lf8rZJBn4PrcRlGFKB/TasxHfh2ItSwXMGrsRNORhH2n73lnnG9TUvnoc8fBxXOt4xzUDdLADyV9X8iojsZlspqS2C5LeK2Q2s4IJnhzqD3JNZR2pe9UrbxxI29mdx+0hHXUqcBx2DMxHzQvbBAqCz6Ewt+vE51yuwMgxLJQu96UDwd5lV8suXMGl+BfC8zpZBTIuunN/i5qxtRYLok48BY7h2cCV+m6GzbUT+epg0AWiisBCynC3G/2yvw0pf5ktHHlQ+MBDDlB2pG8WfcwJEVWm4SE9LrW0pGGCYABK1TOLI+Iupn+Wd1xsr2EJCHJjMG2/jQpg75xwX1y2/2ycm9I0aTKXGv2v9QApwnG2OsCejj8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 28

KursUmstufung 1.0.4
Release Details
UpdatedJune 12, 2026, 9:49 a.m.
Changelog

Added

  • Genehmigungs-Workflow: Die Schulleitung kann eingereichte Anträge genehmigen oder mit Begründung ablehnen (Status approved/rejected).
  • Nextcloud-Benachrichtigungen: Die einreichende Lehrkraft wird über die Entscheidung informiert; die Schulleitung über neu eingereichte Anträge.
  • Konfigurierbare Fächer und Klassen über die Admin-Einstellungen (nicht mehr im Frontend einbetoniert).
  • Schuljahres-Filter und Archivierung; Anträge werden automatisch dem Schuljahr (Aug–Jul) zugeordnet.
  • Tests & CI: PHPUnit-Tests für Service-/Autorisierungslogik, GitHub-Actions-Pipeline (PHP-Lint, Unit-Tests, Frontend-Build, Secret-Scan).

Changed

  • Sicherheit: CSRF-Schutz auf dem Settings-Endpunkt aktiviert, serverseitige Eingabe-Validierung an allen API-Grenzen, generische Fehlermeldungen statt Leak interner Details (strukturiertes Logging).
  • Architektur: Controller auf Dependency Injection umgestellt (kein \OC::$server), Geschäftslogik in dedizierte Services ausgelagert, Frontend-Monolith in Komponenten zerlegt.
  • Robustheit: Lade-Fehler werden sichtbar gemeldet, CSV-Export gegen Formel-Injection abgesichert, N+1-Abfrage entschärft, UI nutzt Nextcloud-Theme-Variablen (Light/Dark).

Removed

  • Ungenutzte Abhängigkeit @nextcloud/vue und Debug-Endpunkte/Logs entfernt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECDCCAvACAhNoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjEyMDY1ODU1WhcNMzYwOTE3MDY1ODU1WjAYMRYwFAYD
VQQDDA1rdXJzdW1zdHVmdW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEAlmt93gom8oSpIcsFgqOoW4tTNgiGruC+D5Dz5wXozSskMcQeIJM9/zyhRWN0
SBKuViCDe0cg1vYOaHS/zCJFP5Lw//1+TDIMYs0CKs1IjSPZLJparK7MYGAdH53r
p1vQj348uhH5/35uAJGYgD9UiOUWZqlSMHrKRm6QkZscB3M8tIuO79dDIt2D4WLp
E6lOub54YEJDVr4amVeoKs11UmGzeDH8fCqZslMSkOXzh3+0ugVYw+rZCSSC+vRY
uHWalrKTtLg4rBTSEyBUptZuONt5ciy6b8miTTod6x81/obHK/Y0KRkzVq0FuwCI
j4LWHnR/PujAACtdiJGAJGimGwASsxrtfXugVdgI6L6Gj0pNuLNQ59+vMsALzJfz
ckWGtphQSHKCAcMSWTovyOfiQm35HifuIhu6B2j/aMkRZ4655XC+y1bXI0C5jJX3
jUAPK0dtu+iByw37jCxTZPv0mpUl0qnt6ixlDUp32tD5Z2CdLG8OoROtIRtl9h0e
ysCzPsHdYpW2A0MU3oOYuEbasBLHyYFKno3RKv3qIqU7GrTseiwdTEaJDIXqUkX6
+IMlVSi1E2BPBs1MoPHqoLm+XuRrjhmxUWQ/5W4eQreH30j6bHZ/iXCCX32qv1mt
283JT/+EOaN/nbsJ8LanQ7gPihmj8t6Ixd+wOWI1jjcaBQUCAwEAATANBgkqhkiG
9w0BAQsFAAOCAQEAhLrV8f5wXdf1xt2l5d5UEiDA/wYIFLQAoxMiZacUTChBz4kx
6+Mk21YXDnsLXcv1RUyCepExNfOdL2Vklz5uVS+hHWOQIUrbS4tqiI/wo0EUZLMq
ejnnyqABET3NIRKgdSpHr2Pf3yyCS5mwA4gnrXXXIcvKAihGr3SNqbhefCEJF9lA
fsalvVmiOxTAiF4Tq7WveJvRsbXJGzEB/jhG8PA5Fx9n7yXlU7IURL5W+z61+XeD
t7L5ds0N+9POcvwpvOY/P2RgpSNL3nUWp76FS2mlO42LAY1fOJc65Af4JY+l6m3n
ngm40OA367LwvT9/fCGwSwByBLyeeE/Y0ANRjw==
-----END CERTIFICATE-----
SignatureZu/upGXdTxUeRq8Fn3inFMbHLA9kmtNhWdyEwKAaHE6fhuAv4kRB9w3uut+KVvdafQzcHaJn///pmU0O2khzH1aLIrRbFbZA1RwCwNhI2Ph46HNzuO9KE7wJy5PgGyEXfn60+JXxOULGXGJ73FYdNN2JzdZcwOAlN0MRwMvq80nyWDW/ksFtRmDo7X5STgZkRgJZ6QkSoT3gO67WlIUK9XK8VTcCehGa+SuO1vVuwMe1XocK8b7Bju/hL+M4hbIMnXudLHn2Jf1tVQYJf3yF++hmr54NqOxkw7D/hvF/DsL7Jrjn63q+IqZgvq8lf8rZJBn4PrcRlGFKB/TasxHfh2ItSwXMGrsRNORhH2n73lnnG9TUvnoc8fBxXOt4xzUDdLADyV9X8iojsZlspqS2C5LeK2Q2s4IJnhzqD3JNZR2pe9UrbxxI29mdx+0hHXUqcBx2DMxHzQvbBAqCz6Ewt+vE51yuwMgxLJQu96UDwd5lV8suXMGl+BfC8zpZBTIuunN/i5qxtRYLok48BY7h2cCV+m6GzbUT+epg0AWiisBCynC3G/2yvw0pf5ktHHlQ+MBDDlB2pG8WfcwJEVWm4SE9LrW0pGGCYABK1TOLI+Iupn+Wd1xsr2EJCHJjMG2/jQpg75xwX1y2/2ycm9I0aTKXGv2v9QApwnG2OsCejj8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 27

KursUmstufung 1.0.4
Release Details
UpdatedJune 12, 2026, 9:49 a.m.
Changelog

Added

  • Genehmigungs-Workflow: Die Schulleitung kann eingereichte Anträge genehmigen oder mit Begründung ablehnen (Status approved/rejected).
  • Nextcloud-Benachrichtigungen: Die einreichende Lehrkraft wird über die Entscheidung informiert; die Schulleitung über neu eingereichte Anträge.
  • Konfigurierbare Fächer und Klassen über die Admin-Einstellungen (nicht mehr im Frontend einbetoniert).
  • Schuljahres-Filter und Archivierung; Anträge werden automatisch dem Schuljahr (Aug–Jul) zugeordnet.
  • Tests & CI: PHPUnit-Tests für Service-/Autorisierungslogik, GitHub-Actions-Pipeline (PHP-Lint, Unit-Tests, Frontend-Build, Secret-Scan).

Changed

  • Sicherheit: CSRF-Schutz auf dem Settings-Endpunkt aktiviert, serverseitige Eingabe-Validierung an allen API-Grenzen, generische Fehlermeldungen statt Leak interner Details (strukturiertes Logging).
  • Architektur: Controller auf Dependency Injection umgestellt (kein \OC::$server), Geschäftslogik in dedizierte Services ausgelagert, Frontend-Monolith in Komponenten zerlegt.
  • Robustheit: Lade-Fehler werden sichtbar gemeldet, CSV-Export gegen Formel-Injection abgesichert, N+1-Abfrage entschärft, UI nutzt Nextcloud-Theme-Variablen (Light/Dark).

Removed

  • Ungenutzte Abhängigkeit @nextcloud/vue und Debug-Endpunkte/Logs entfernt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECDCCAvACAhNoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjEyMDY1ODU1WhcNMzYwOTE3MDY1ODU1WjAYMRYwFAYD
VQQDDA1rdXJzdW1zdHVmdW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEAlmt93gom8oSpIcsFgqOoW4tTNgiGruC+D5Dz5wXozSskMcQeIJM9/zyhRWN0
SBKuViCDe0cg1vYOaHS/zCJFP5Lw//1+TDIMYs0CKs1IjSPZLJparK7MYGAdH53r
p1vQj348uhH5/35uAJGYgD9UiOUWZqlSMHrKRm6QkZscB3M8tIuO79dDIt2D4WLp
E6lOub54YEJDVr4amVeoKs11UmGzeDH8fCqZslMSkOXzh3+0ugVYw+rZCSSC+vRY
uHWalrKTtLg4rBTSEyBUptZuONt5ciy6b8miTTod6x81/obHK/Y0KRkzVq0FuwCI
j4LWHnR/PujAACtdiJGAJGimGwASsxrtfXugVdgI6L6Gj0pNuLNQ59+vMsALzJfz
ckWGtphQSHKCAcMSWTovyOfiQm35HifuIhu6B2j/aMkRZ4655XC+y1bXI0C5jJX3
jUAPK0dtu+iByw37jCxTZPv0mpUl0qnt6ixlDUp32tD5Z2CdLG8OoROtIRtl9h0e
ysCzPsHdYpW2A0MU3oOYuEbasBLHyYFKno3RKv3qIqU7GrTseiwdTEaJDIXqUkX6
+IMlVSi1E2BPBs1MoPHqoLm+XuRrjhmxUWQ/5W4eQreH30j6bHZ/iXCCX32qv1mt
283JT/+EOaN/nbsJ8LanQ7gPihmj8t6Ixd+wOWI1jjcaBQUCAwEAATANBgkqhkiG
9w0BAQsFAAOCAQEAhLrV8f5wXdf1xt2l5d5UEiDA/wYIFLQAoxMiZacUTChBz4kx
6+Mk21YXDnsLXcv1RUyCepExNfOdL2Vklz5uVS+hHWOQIUrbS4tqiI/wo0EUZLMq
ejnnyqABET3NIRKgdSpHr2Pf3yyCS5mwA4gnrXXXIcvKAihGr3SNqbhefCEJF9lA
fsalvVmiOxTAiF4Tq7WveJvRsbXJGzEB/jhG8PA5Fx9n7yXlU7IURL5W+z61+XeD
t7L5ds0N+9POcvwpvOY/P2RgpSNL3nUWp76FS2mlO42LAY1fOJc65Af4JY+l6m3n
ngm40OA367LwvT9/fCGwSwByBLyeeE/Y0ANRjw==
-----END CERTIFICATE-----
SignatureZu/upGXdTxUeRq8Fn3inFMbHLA9kmtNhWdyEwKAaHE6fhuAv4kRB9w3uut+KVvdafQzcHaJn///pmU0O2khzH1aLIrRbFbZA1RwCwNhI2Ph46HNzuO9KE7wJy5PgGyEXfn60+JXxOULGXGJ73FYdNN2JzdZcwOAlN0MRwMvq80nyWDW/ksFtRmDo7X5STgZkRgJZ6QkSoT3gO67WlIUK9XK8VTcCehGa+SuO1vVuwMe1XocK8b7Bju/hL+M4hbIMnXudLHn2Jf1tVQYJf3yF++hmr54NqOxkw7D/hvF/DsL7Jrjn63q+IqZgvq8lf8rZJBn4PrcRlGFKB/TasxHfh2ItSwXMGrsRNORhH2n73lnnG9TUvnoc8fBxXOt4xzUDdLADyV9X8iojsZlspqS2C5LeK2Q2s4IJnhzqD3JNZR2pe9UrbxxI29mdx+0hHXUqcBx2DMxHzQvbBAqCz6Ewt+vE51yuwMgxLJQu96UDwd5lV8suXMGl+BfC8zpZBTIuunN/i5qxtRYLok48BY7h2cCV+m6GzbUT+epg0AWiisBCynC3G/2yvw0pf5ktHHlQ+MBDDlB2pG8WfcwJEVWm4SE9LrW0pGGCYABK1TOLI+Iupn+Wd1xsr2EJCHJjMG2/jQpg75xwX1y2/2ycm9I0aTKXGv2v9QApwnG2OsCejj8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 26

KursUmstufung 1.0.4
Release Details
UpdatedJune 12, 2026, 9:49 a.m.
Changelog

Added

  • Genehmigungs-Workflow: Die Schulleitung kann eingereichte Anträge genehmigen oder mit Begründung ablehnen (Status approved/rejected).
  • Nextcloud-Benachrichtigungen: Die einreichende Lehrkraft wird über die Entscheidung informiert; die Schulleitung über neu eingereichte Anträge.
  • Konfigurierbare Fächer und Klassen über die Admin-Einstellungen (nicht mehr im Frontend einbetoniert).
  • Schuljahres-Filter und Archivierung; Anträge werden automatisch dem Schuljahr (Aug–Jul) zugeordnet.
  • Tests & CI: PHPUnit-Tests für Service-/Autorisierungslogik, GitHub-Actions-Pipeline (PHP-Lint, Unit-Tests, Frontend-Build, Secret-Scan).

Changed

  • Sicherheit: CSRF-Schutz auf dem Settings-Endpunkt aktiviert, serverseitige Eingabe-Validierung an allen API-Grenzen, generische Fehlermeldungen statt Leak interner Details (strukturiertes Logging).
  • Architektur: Controller auf Dependency Injection umgestellt (kein \OC::$server), Geschäftslogik in dedizierte Services ausgelagert, Frontend-Monolith in Komponenten zerlegt.
  • Robustheit: Lade-Fehler werden sichtbar gemeldet, CSV-Export gegen Formel-Injection abgesichert, N+1-Abfrage entschärft, UI nutzt Nextcloud-Theme-Variablen (Light/Dark).

Removed

  • Ungenutzte Abhängigkeit @nextcloud/vue und Debug-Endpunkte/Logs entfernt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECDCCAvACAhNoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjEyMDY1ODU1WhcNMzYwOTE3MDY1ODU1WjAYMRYwFAYD
VQQDDA1rdXJzdW1zdHVmdW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEAlmt93gom8oSpIcsFgqOoW4tTNgiGruC+D5Dz5wXozSskMcQeIJM9/zyhRWN0
SBKuViCDe0cg1vYOaHS/zCJFP5Lw//1+TDIMYs0CKs1IjSPZLJparK7MYGAdH53r
p1vQj348uhH5/35uAJGYgD9UiOUWZqlSMHrKRm6QkZscB3M8tIuO79dDIt2D4WLp
E6lOub54YEJDVr4amVeoKs11UmGzeDH8fCqZslMSkOXzh3+0ugVYw+rZCSSC+vRY
uHWalrKTtLg4rBTSEyBUptZuONt5ciy6b8miTTod6x81/obHK/Y0KRkzVq0FuwCI
j4LWHnR/PujAACtdiJGAJGimGwASsxrtfXugVdgI6L6Gj0pNuLNQ59+vMsALzJfz
ckWGtphQSHKCAcMSWTovyOfiQm35HifuIhu6B2j/aMkRZ4655XC+y1bXI0C5jJX3
jUAPK0dtu+iByw37jCxTZPv0mpUl0qnt6ixlDUp32tD5Z2CdLG8OoROtIRtl9h0e
ysCzPsHdYpW2A0MU3oOYuEbasBLHyYFKno3RKv3qIqU7GrTseiwdTEaJDIXqUkX6
+IMlVSi1E2BPBs1MoPHqoLm+XuRrjhmxUWQ/5W4eQreH30j6bHZ/iXCCX32qv1mt
283JT/+EOaN/nbsJ8LanQ7gPihmj8t6Ixd+wOWI1jjcaBQUCAwEAATANBgkqhkiG
9w0BAQsFAAOCAQEAhLrV8f5wXdf1xt2l5d5UEiDA/wYIFLQAoxMiZacUTChBz4kx
6+Mk21YXDnsLXcv1RUyCepExNfOdL2Vklz5uVS+hHWOQIUrbS4tqiI/wo0EUZLMq
ejnnyqABET3NIRKgdSpHr2Pf3yyCS5mwA4gnrXXXIcvKAihGr3SNqbhefCEJF9lA
fsalvVmiOxTAiF4Tq7WveJvRsbXJGzEB/jhG8PA5Fx9n7yXlU7IURL5W+z61+XeD
t7L5ds0N+9POcvwpvOY/P2RgpSNL3nUWp76FS2mlO42LAY1fOJc65Af4JY+l6m3n
ngm40OA367LwvT9/fCGwSwByBLyeeE/Y0ANRjw==
-----END CERTIFICATE-----
SignatureZu/upGXdTxUeRq8Fn3inFMbHLA9kmtNhWdyEwKAaHE6fhuAv4kRB9w3uut+KVvdafQzcHaJn///pmU0O2khzH1aLIrRbFbZA1RwCwNhI2Ph46HNzuO9KE7wJy5PgGyEXfn60+JXxOULGXGJ73FYdNN2JzdZcwOAlN0MRwMvq80nyWDW/ksFtRmDo7X5STgZkRgJZ6QkSoT3gO67WlIUK9XK8VTcCehGa+SuO1vVuwMe1XocK8b7Bju/hL+M4hbIMnXudLHn2Jf1tVQYJf3yF++hmr54NqOxkw7D/hvF/DsL7Jrjn63q+IqZgvq8lf8rZJBn4PrcRlGFKB/TasxHfh2ItSwXMGrsRNORhH2n73lnnG9TUvnoc8fBxXOt4xzUDdLADyV9X8iojsZlspqS2C5LeK2Q2s4IJnhzqD3JNZR2pe9UrbxxI29mdx+0hHXUqcBx2DMxHzQvbBAqCz6Ewt+vE51yuwMgxLJQu96UDwd5lV8suXMGl+BfC8zpZBTIuunN/i5qxtRYLok48BY7h2cCV+m6GzbUT+epg0AWiisBCynC3G/2yvw0pf5ktHHlQ+MBDDlB2pG8WfcwJEVWm4SE9LrW0pGGCYABK1TOLI+Iupn+Wd1xsr2EJCHJjMG2/jQpg75xwX1y2/2ycm9I0aTKXGv2v9QApwnG2OsCejj8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 25

KursUmstufung 1.0.4
Release Details
UpdatedJune 12, 2026, 9:49 a.m.
Changelog

Added

  • Genehmigungs-Workflow: Die Schulleitung kann eingereichte Anträge genehmigen oder mit Begründung ablehnen (Status approved/rejected).
  • Nextcloud-Benachrichtigungen: Die einreichende Lehrkraft wird über die Entscheidung informiert; die Schulleitung über neu eingereichte Anträge.
  • Konfigurierbare Fächer und Klassen über die Admin-Einstellungen (nicht mehr im Frontend einbetoniert).
  • Schuljahres-Filter und Archivierung; Anträge werden automatisch dem Schuljahr (Aug–Jul) zugeordnet.
  • Tests & CI: PHPUnit-Tests für Service-/Autorisierungslogik, GitHub-Actions-Pipeline (PHP-Lint, Unit-Tests, Frontend-Build, Secret-Scan).

Changed

  • Sicherheit: CSRF-Schutz auf dem Settings-Endpunkt aktiviert, serverseitige Eingabe-Validierung an allen API-Grenzen, generische Fehlermeldungen statt Leak interner Details (strukturiertes Logging).
  • Architektur: Controller auf Dependency Injection umgestellt (kein \OC::$server), Geschäftslogik in dedizierte Services ausgelagert, Frontend-Monolith in Komponenten zerlegt.
  • Robustheit: Lade-Fehler werden sichtbar gemeldet, CSV-Export gegen Formel-Injection abgesichert, N+1-Abfrage entschärft, UI nutzt Nextcloud-Theme-Variablen (Light/Dark).

Removed

  • Ungenutzte Abhängigkeit @nextcloud/vue und Debug-Endpunkte/Logs entfernt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECDCCAvACAhNoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjEyMDY1ODU1WhcNMzYwOTE3MDY1ODU1WjAYMRYwFAYD
VQQDDA1rdXJzdW1zdHVmdW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEAlmt93gom8oSpIcsFgqOoW4tTNgiGruC+D5Dz5wXozSskMcQeIJM9/zyhRWN0
SBKuViCDe0cg1vYOaHS/zCJFP5Lw//1+TDIMYs0CKs1IjSPZLJparK7MYGAdH53r
p1vQj348uhH5/35uAJGYgD9UiOUWZqlSMHrKRm6QkZscB3M8tIuO79dDIt2D4WLp
E6lOub54YEJDVr4amVeoKs11UmGzeDH8fCqZslMSkOXzh3+0ugVYw+rZCSSC+vRY
uHWalrKTtLg4rBTSEyBUptZuONt5ciy6b8miTTod6x81/obHK/Y0KRkzVq0FuwCI
j4LWHnR/PujAACtdiJGAJGimGwASsxrtfXugVdgI6L6Gj0pNuLNQ59+vMsALzJfz
ckWGtphQSHKCAcMSWTovyOfiQm35HifuIhu6B2j/aMkRZ4655XC+y1bXI0C5jJX3
jUAPK0dtu+iByw37jCxTZPv0mpUl0qnt6ixlDUp32tD5Z2CdLG8OoROtIRtl9h0e
ysCzPsHdYpW2A0MU3oOYuEbasBLHyYFKno3RKv3qIqU7GrTseiwdTEaJDIXqUkX6
+IMlVSi1E2BPBs1MoPHqoLm+XuRrjhmxUWQ/5W4eQreH30j6bHZ/iXCCX32qv1mt
283JT/+EOaN/nbsJ8LanQ7gPihmj8t6Ixd+wOWI1jjcaBQUCAwEAATANBgkqhkiG
9w0BAQsFAAOCAQEAhLrV8f5wXdf1xt2l5d5UEiDA/wYIFLQAoxMiZacUTChBz4kx
6+Mk21YXDnsLXcv1RUyCepExNfOdL2Vklz5uVS+hHWOQIUrbS4tqiI/wo0EUZLMq
ejnnyqABET3NIRKgdSpHr2Pf3yyCS5mwA4gnrXXXIcvKAihGr3SNqbhefCEJF9lA
fsalvVmiOxTAiF4Tq7WveJvRsbXJGzEB/jhG8PA5Fx9n7yXlU7IURL5W+z61+XeD
t7L5ds0N+9POcvwpvOY/P2RgpSNL3nUWp76FS2mlO42LAY1fOJc65Af4JY+l6m3n
ngm40OA367LwvT9/fCGwSwByBLyeeE/Y0ANRjw==
-----END CERTIFICATE-----
SignatureZu/upGXdTxUeRq8Fn3inFMbHLA9kmtNhWdyEwKAaHE6fhuAv4kRB9w3uut+KVvdafQzcHaJn///pmU0O2khzH1aLIrRbFbZA1RwCwNhI2Ph46HNzuO9KE7wJy5PgGyEXfn60+JXxOULGXGJ73FYdNN2JzdZcwOAlN0MRwMvq80nyWDW/ksFtRmDo7X5STgZkRgJZ6QkSoT3gO67WlIUK9XK8VTcCehGa+SuO1vVuwMe1XocK8b7Bju/hL+M4hbIMnXudLHn2Jf1tVQYJf3yF++hmr54NqOxkw7D/hvF/DsL7Jrjn63q+IqZgvq8lf8rZJBn4PrcRlGFKB/TasxHfh2ItSwXMGrsRNORhH2n73lnnG9TUvnoc8fBxXOt4xzUDdLADyV9X8iojsZlspqS2C5LeK2Q2s4IJnhzqD3JNZR2pe9UrbxxI29mdx+0hHXUqcBx2DMxHzQvbBAqCz6Ewt+vE51yuwMgxLJQu96UDwd5lV8suXMGl+BfC8zpZBTIuunN/i5qxtRYLok48BY7h2cCV+m6GzbUT+epg0AWiisBCynC3G/2yvw0pf5ktHHlQ+MBDDlB2pG8WfcwJEVWm4SE9LrW0pGGCYABK1TOLI+Iupn+Wd1xsr2EJCHJjMG2/jQpg75xwX1y2/2ycm9I0aTKXGv2v9QApwnG2OsCejj8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<36.0.0
Minimum Integer bits32