feat: port EU market changes from rc/web-3.5 and stable30 to ionos-dev-v32.0.6 - #289
Merged
bromiesTM merged 20 commits intoJul 29, 2026
Merged
Conversation
Tag: https://github.com/nextcloud/user_oidc/releases/tag/v8.10.1 SHA: 8f6196e4e3483d8ebf8368dffed87258212bc3b3
Signed-off-by: Kai Henseler <kai.henseler@strato.de>
Signed-off-by: Kai Henseler <kai.henseler@strato.de>
- Pin docker/build-push-action to tagged release SHA v7.2.0 (was pinned to an untagged intermediate commit with no version label) - Fix shivammathur/setup-php version comment: the action uses no 'v' prefix in its tags, so '#v2.31.1' is wrong; correct to '# 2.31.1' Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…NEXT-1914) user_oidc 8.7.0 introduced setSessionUser() calls inside getCurrentUserId() (IApacheBackend callback). This prevents NC core's loginWithExternalBackend() from writing an oc_authtoken session row, so AppPasswordController returns 403 on every LFv2 getapppassword request. Regression present in 8.7.0–8.10.1. v8.6.1 is the last release before the regression. DB-safe: no migrations were added between v8.6.1 and v8.10.1 — all 14 migration files are identical.
Signed-off-by: Kai Henseler <kai.henseler@strato.de>
Signed-off-by: Kai Henseler <kai.henseler@strato.de>
https://github.com/IONOS-Productivity/nc-config/releases/tag/v30-b44953a https://github.com/IONOS-Productivity/nc-ionos-theme/releases/tag/30.0.7-1ffc0e5 Signed-off-by: Tatjana Kaschperko Lindt <kaschperko-lindt@strato.de>
…ateData variables Extract the inline array literals passed to each createEMailTemplate() call into named $templateData variables. For sendNote(), which previously passed no data array, add a minimal array so all four send methods are consistent. Zero behaviour change — $templateData is passed straight through to createEMailTemplate() with identical contents.
…ach mail send
Dispatch a typed PSR-14 event immediately before every mailer->send() call
in ShareByMailProvider so that external listeners can intercept and replace
Nextcloud's native SMTP delivery.
Event hierarchy:
AbstractBeforeShareMailSentEvent (base: share, resolvedEmails, message,
markMailHandled / isMailHandled)
├── BeforeShareMailSentEvent – sendEmail()
├── BeforeSharePasswordMailSentEvent – sendPassword() + sendPasswordToOwner()
└── BeforeShareNoteMailSentEvent – sendNote()
Each concrete class holds its own typed $templateData (psalm array-shape)
and exposes named getters (getSenderUserId(), getFileName(), …) instead of
a generic getMailData(): array<string,mixed>. This avoids defensive
is_string() / null guards in listeners.
$templateData reuses the array already passed to createEMailTemplate(), with
one extra key added for sendEmail(): senderUserId (the raw user ID, distinct
from the display name stored under 'initiator').
The native mailer->send() is skipped when a listener calls markMailHandled().
If the listener's own send throws, the exception propagates and the native
send is also skipped — no silent SMTP fallback.
sendEmail() and sendPassword() are flattened from nested
if (!isMailHandled()) { ... } pyramids to early-return style.
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
…ssmap autoload_real.php sets setClassMapAuthoritative(true), which disables PSR-4 fallback entirely. Any class not listed in $classMap is never found, regardless of whether PSR-4 would resolve it. Signed-off-by: Tatjana Kaschperko Lindt <kaschperko-lindt@strato.de>
…a and event refactors - Add senderUserId to the expected RecipientNotification templateData in 3 tests (added by the createEMailTemplate params refactor in 242b896) - Update dispatchTyped expectation from once(GenerateSecurePasswordEvent) to exactly(3) with withConsecutive for GenerateSecurePasswordEvent, BeforeShareMailSentEvent, and BeforeSharePasswordMailSentEvent (sendEmail() and sendPassword() now each dispatch a Before*Event) Signed-off-by: Tatjana Kaschperko Lindt <kaschperko-lindt@strato.de>
…t dispatch Signed-off-by: Tatjana Kaschperko Lindt <kaschperko-lindt@strato.de>
…s suppressed sendPassword() and sendPasswordToOwner() called createPasswordSendActivity() unconditionally outside the isMailHandled() guard. A listener intercepting the BeforeSharePasswordMailSentEvent would suppress the SMTP send but still cause a false activity-log entry for a mail that was never delivered. Apply the same early-return pattern used by sendEmail(): return immediately when isMailHandled() is true so no side effects run after the flag is set. Signed-off-by: Tatjana Kaschperko Lindt <kaschperko-lindt@strato.de>
…r "file request") https://github.com/IONOS-Productivity/nc-ionos-processes/releases/tag/1.0.0-9501a5e Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de> Co-authored-by: Tatjana Kaschperko Lindt <kaschperko-lindt@strato.de>
…2.0.6 (Linux/Nautilus, files search, devtool fix, test fixes)
tanyaka
force-pushed
the
dev/tkl/port-EU-Markets-to-V32.0.6
branch
2 times, most recently
from
July 24, 2026 14:24
14fa7be to
3f4ccea
Compare
Signed-off-by: Kai Henseler <kai.henseler@strato.de>
bromiesTM
force-pushed
the
dev/tkl/port-EU-Markets-to-V32.0.6
branch
from
July 27, 2026 09:09
05be8ea to
eebc485
Compare
Signed-off-by: Kai Henseler <kai.henseler@strato.de>
bromiesTM
force-pushed
the
dev/tkl/port-EU-Markets-to-V32.0.6
branch
from
July 27, 2026 10:29
f7e1c80 to
6c4653c
Compare
bromiesTM
self-requested a review
July 27, 2026 10:54
Signed-off-by: Kai Henseler <kai.henseler@strato.de>
bromiesTM
force-pushed
the
dev/tkl/port-EU-Markets-to-V32.0.6
branch
from
July 29, 2026 08:20
6c4653c to
51a4cd2
Compare
bromiesTM
approved these changes
Jul 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Backports EU market changes from
rc/web-3.5(v30) andrc/web-3.5-reparedinto theionos-dev-v32.0.6branch, adapted for NC32.From rc/web-3.5-repared (cherry-picked, oldest→newest):
IONOS(user_oidc): update to v8.10.1, then downgrade to v8.6.1 to restore LFv2 bearer auth (HDNEXT-1914)IONOS(ci): pin workflow/SBOM action versions, fix pre-existing action pin issuesIONOS(notify_push): add submodule at v1.3.3 + CI build stepIONOS(theme,config): Login & Security menu item submodule updates (nc-config excluded, theme kept at HEAD)refactor(sharebymail): extractcreateEMailTemplateparams into$templateDatavariablesIONOS(sharebymail): addBeforeShare*MailSentEventdispatched before each mail sendIONOS(sharebymail): add Event classes to composer autoload_static classmapIONOS(sharebymail): fixShareByMailProviderTestbroken by templateData/event refactors (adapted for NC32PasswordContext::SHARING)IONOS(sharebymail): add test coverage forBeforeShareNoteMailSentEventdispatchIONOS(sharebymail): fixcreatePasswordSendActivityfiring when mail is suppressedIONOS(nc_ionos_processes): update submodule to 9501a5e (send email for "file request")From stable30 via simplesettings submodule (nc-simplesettings#197):
files/js/searchscript loading in simplesettings contextOC_Util::$scriptsremoved,$scriptsInitreset added)Excluded (intentionally):
IONOS(nc-config) submodule — kept at existingionos-dev-v32.0.6pointerapps-external/viewer— kept at existing pointerpackage.jsonreplacementTest plan
make -f IONOS/Makefile build_locallycompletes without errors