Skip to content

Consolidate simple feedback routes into generic feedbackAction#1992

Open
johanib wants to merge 5 commits intofeature/EB-1795_clear-sessinofrom
feature/EB-1758_declutter-error-handler
Open

Consolidate simple feedback routes into generic feedbackAction#1992
johanib wants to merge 5 commits intofeature/EB-1795_clear-sessinofrom
feature/EB-1758_declutter-error-handler

Conversation

@johanib
Copy link
Copy Markdown
Contributor

@johanib johanib commented May 4, 2026

Prior to this change, there were many 'empty' identical twig templates in the error process. This change replaces them with a 'generic-error' twig template.

Resolves #1758

@johanib johanib linked an issue May 5, 2026 that may be closed by this pull request
@johanib johanib force-pushed the feature/EB-1758_declutter-error-handler branch from c17d304 to 0e48997 Compare May 5, 2026 10:10
@johanib johanib requested a review from kayjoosten May 5, 2026 10:11
@johanib johanib force-pushed the feature/EB-1795_clear-sessino branch from b50a07a to f6b3d4a Compare May 5, 2026 12:16
johanib added 3 commits May 5, 2026 14:22
feedbackInfo was stored as a flat dict in $_SESSION['feedbackInfo'] and
merged with existing data on each write. This meant info collected
during one auth flow (e.g. which IdP was involved) could appear on error
pages in a completely separate flow.

Additionally, currentServiceProvider and currentIdentityProvider were
never cleared from the session after a successful login, so they would
show up on error pages for unrelated early errors.

The fix:
- feedbackInfo is now keyed per SAML request ID so each auth flow has
  its own isolated bucket with no merging across flows
- clearFlowContext() is called by ProcessedAssertionConsumer after a
  successful auth, clearing all flow context from the session
- All session access moved from raw $_SESSION to the Symfony session
- Session ops for feedbackInfo and flow context are centralised in a new
  FeedbackStateHelper class, split out from ProcessingStateHelper
- FeedbackStateHelper is wired through DiContainerRuntime instead of the
  legacy DiContainer
Prior to this change, there were many 'empty' identical twig templates in the error process.
This change replaces them with a 'generic-error' twig template.

Resolves #1758
These templates were not using the 'new' translation key convention yet.
(the old translation keys are not removed, because `invalid-acs-location` still references them).
@johanib johanib force-pushed the feature/EB-1758_declutter-error-handler branch from 0e48997 to edf1931 Compare May 5, 2026 12:55
Comment thread CHANGELOG.md

The `error_invalid_acs_location` translation key has changed meaning. Previously it held the **error description** text. It now holds the **page title**.

If you have overridden this key in your theme translations (`theme/{name}/translations/messages.*.php`), rename it to `error_invalid_acs_location_desc` and add a new `error_invalid_acs_location` entry for the page title.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, but we are missing some key. You have also changed error_no_message, error_no_message_desc, error_stepup_callout_unknown_title and error_stepup_callout_user_cancelled_title.

Comment thread CHANGELOG.md
```

See https://github.com/OpenConext/OpenConext-engineblock/issues/1758

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also i would recommend writing something about the changed status codes. So monitoring doesn't break if you think that would be a possibility.

@johanib johanib force-pushed the feature/EB-1758_declutter-error-handler branch from edf1931 to 5c9e561 Compare May 5, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

De-clutter the Symfony error reporting setup

2 participants