fix(activity): reset the current user and release the teams session - #2908
Open
solracsf wants to merge 1 commit into
Open
fix(activity): reset the current user and release the teams session#2908solracsf wants to merge 1 commit into
solracsf wants to merge 1 commit into
Conversation
`NotificationGenerator::prepare()` set the activity manager's current user and reset it only on the happy path, so a provider that threw left another user's identity installed for the rest of the request. MailQueueHandler and DigestSender were covered by 216a333; this is the third call site. `FilesHooks::shareWithTeam()` opened a Circles super session and never closed it, so every share to a team left the request running elevated. It is now paired with stopSession() in a finally, matching how groupfolders handles the same API. Also adds the regression test that c7516b8 did not ship for skipping incompletely built events. Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
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.
NotificationGenerator::prepare()sets the activity manager's current user and reset it only on the happy path, so a provider that throws leaves another user's identity installed for the rest of the request — which under cron means the rest of the run. 216a333 fixed the same thing in MailQueueHandler and DigestSender; this is the third call site.FilesHooks::shareWithTeam()opens a Circles super session and never closes it, so every share to a team leaves the request running elevated. Now paired withstopSession()in afinally, the way groupfolders does it inFolderManagerandUserMappingManager. No test:OCA\Circles\CirclesManagerisn't resolvable in the test environment, which is whyFilesHooksTestsets$teamManager = null.Also adds the regression test c7516b8 didn't ship for skipping incompletely built events.
Verified on Nextcloud 36 against MariaDB 11.4, PostgreSQL 16 and S3 primary storage.