Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dev/core#5714 Ensure that Standalone sites do not crash when in multi… #32442

Closed
wants to merge 1 commit into from

Conversation

seamuslee001
Copy link
Contributor

…lingual mode when setting the timezone

Overview

This fixes the hard crashed caused when enabling mutlingual mode in standalone

Before

Site hard crashes because we try to use APIv4 to look up User record before the locale has been applied

After

Site doesn't hard crash as we defer to using direct SQL to retrieve this one piece of information from the user (uf_match) table

Technical Details

The GenericDAOAction in preparing for the APIv4 triggers the looking up of OptionsCallbacks such as https://github.com/civicrm/civicrm-core/blob/master/Civi/Api4/Generic/AbstractAction.php#L59
This tries to load language options out of the civicrm_option_value table https://github.com/civicrm/civicrm-core/blob/master/Civi/Api4/Generic/AbstractAction.php#L597 but as $dbLocale has not yet been set properly a hard fail is triggered after enabling multilingual.

This sidesteps using APIv4 in this immediate postBoot prior to locale being set scenario to just use a direct SQL query to get the timezone out of the uf_match table. The uf_match table isn't involved in any multilingual setup

ping @ufundo @mlutfy @totten

Copy link

civibot bot commented Mar 21, 2025

🤖 Thank you for contributing to CiviCRM! ❤️ We will need to test and review this PR. 👷

Introduction for new contributors...
  • If this is your first PR, an admin will greenlight automated testing with the command ok to test or add to whitelist.
  • A series of tests will automatically run. You can see the results at the bottom of this page (if there are any problems, it will include a link to see what went wrong).
  • A demo site will be built where anyone can try out a version of CiviCRM that includes your changes.
  • If this process needs to be repeated, an admin will issue the command test this please to rerun tests and build a new demo site.
  • Before this PR can be merged, it needs to be reviewed. Please keep in mind that reviewers are volunteers, and their response time can vary from a few hours to a few weeks depending on their availability and their knowledge of this particular part of CiviCRM.
  • A great way to speed up this process is to "trade reviews" with someone - find an open PR that you feel able to review, and leave a comment like "I'm reviewing this now, could you please review mine?" (include a link to yours). You don't have to wait for a response to get started (and you don't have to stop at one!) the more you review, the faster this process goes for everyone 😄
  • To ensure that you are credited properly in the final release notes, please add yourself to contributor-key.yml
  • For more information about contributing, see CONTRIBUTING.md.
Quick links for reviewers...

➡️ Online demo of this PR 🔗

@civibot civibot bot added the master label Mar 21, 2025
Copy link

civibot bot commented Mar 21, 2025

The issue associated with the Pull Request can be viewed at https://lab.civicrm.org/dev/core/-/issues/5714

@seamuslee001 seamuslee001 added the run-standalone Civibot should setup demos+tests for Standalone label Mar 21, 2025
@ufundo
Copy link
Contributor

ufundo commented Mar 21, 2025

Sorry @seamuslee001 I did not see this before when I raised other PR today.

Just dropping that here as potential alternative: #32444

@ufundo
Copy link
Contributor

ufundo commented Mar 28, 2025

Closing as superceded by #32525

@ufundo ufundo closed this Mar 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
master run-standalone Civibot should setup demos+tests for Standalone
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants