Not exactly sure how this can happen in real life but this issue has been identified from a production instance logs.
Reproduction steps:
- Go to /plugins/ldap/welcome
- Edit the DOM to drop the timezone select form field
- Submit
Trace:
PHP Fatal error: Uncaught TypeError: Account_TimezonesCollection::isValidTimezone(): Argument #1 ($timezone) must be of type string, bool given, called in /usr/share/tuleap/plugins/ldap/include/WelcomeUpdateController.php on line 72 and defined in /usr/share/tuleap/src/common/account/TimezonesCollection.class.php:27
Stack trace:
#0 /usr/share/tuleap/plugins/ldap/include/WelcomeUpdateController.php(72): Account_TimezonesCollection->isValidTimezone()
#1 /usr/share/tuleap/src/common/Request/FrontRouter.php(248): Tuleap\LDAP\WelcomeUpdateController->process()
#2 /usr/share/tuleap/src/common/Request/FrontRouter.php(108): Tuleap\Request\FrontRouter->routeHandler()
#3 /usr/share/tuleap/src/www/index.php(49): Tuleap\Request\FrontRouter->route()
#4 {main}
thrown in /usr/share/tuleap/src/common/account/TimezonesCollection.class.php on line 27