present friendlier error message if petition cannot be displayed. #26446
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.
Overview
This is a replacement PR for #25915
Provide a friendlier error message if a petition cannot be displayed for some reason.
Before
If a user clicks on a link to a petition that either doesn't exist, is disabled, or the link doesn't have a sid parameter - the user is redirected to the home page with an error message.
However, the home page may not be accessible to a non-logged in user, so instead of seeing the error, they simply get a forbidden message. Also, depending on how the theme is configured, they may get a page with a different theme than the petition page should display.
After
Instead of redirecting the user, display the petition page but without any of the petition elements. If the user has access to sign a petition, then they will stay on the page and get the friendly error message displayed.
Technical Details
The old code uses the
CRM_Core_Error::statusBounce()
call. That is replaced with a smarty assign to tell the template to display a message and not show the form fields.