Commit Graph

2894 Commits

Author SHA1 Message Date
github-actions
b7e2a6ecf8 Merge branch '5.2' into 5 2024-06-17 01:15:58 +00:00
Guy Sartorelli
1e0b9056f5
FIX Don't load data up front for lazy-loaded searchable dropdown (#11278) 2024-06-17 11:59:59 +12:00
Guy Sartorelli
be6ca2a91d
API Remove references to non-existent installation tool (#11274) 2024-06-13 14:45:58 +12:00
github-actions
8179047af5 Merge branch '5' into 6 2024-06-12 21:03:36 +00:00
Guy Sartorelli
049e546247
API Deprecate references to installation tool (#11275) 2024-06-12 15:47:12 +12:00
Guy Sartorelli
b53cda8de0
FIX Respect explicit casting before casting arrays (#11271) 2024-06-11 16:49:27 +12:00
Guy Sartorelli
e7d05aa524
Merge branch '5' into 6 2024-06-11 13:30:15 +12:00
Guy Sartorelli
be0eab2bae
NEW Allow DataObject classes to define scaffolded relation formfields (#11269) 2024-06-07 17:06:01 +12:00
Guy Sartorelli
64ac096b46
Merge pull request #11176 from wilr/fix/reset-password-lockout
FIX mark a successful login attempt when completing a password reset
2024-06-06 11:56:45 +12:00
Will Rossiter
9361382be3
FIX mark a successful login attempt when completing a password reset (#10099) 2024-06-06 11:43:21 +12:00
github-actions
f561102430 Merge branch '5' into 6 2024-06-04 23:33:37 +00:00
github-actions
a6ab217dcd Merge branch '5.2' into 5 2024-06-04 23:33:36 +00:00
Mason Dechaineux
9546450cf2
improve DataList and ArrayList docblock comments for PHPStorm (#11263)
addresses #11247
2024-05-31 10:59:04 +12:00
Maxime Rainville
e35f12c66f
ENH Update AttributesHTML to output alt attribute even if it's empty (#11217) 2024-05-29 09:30:04 +12:00
Guy Sartorelli
3f30da5155
ENH Looping through arrays in templates (#11244) 2024-05-24 12:51:14 +12:00
github-actions
57886b76f5 Merge branch '5' into 6 2024-05-22 22:41:41 +00:00
github-actions
8886a3a93d Merge branch '5.2' into 5 2024-05-22 22:41:40 +00:00
Sabina Talipova
f0aaba5504
FIX HTMLEditorField is not able to show html or xml code examples (#11243) 2024-05-22 09:39:36 +12:00
Steve Boyd
3e70cfed1e API Set extension hook implementation visibility to protected 2024-05-21 09:51:51 +12:00
Guy Sartorelli
699a8bf2da
FIX Loop over current scope when no argument passed to loop block 2024-05-17 15:17:02 +12:00
Guy Sartorelli
56625081b4
ENH Use allowed view button for readonly GridField (#11228) 2024-05-17 10:28:47 +12:00
Guy Sartorelli
5ccd361426
Merge pull request #11245 from creative-commoners/pulls/6/protect-hooks
API Set extension hook implementation visibility to protected
2024-05-17 10:28:33 +12:00
Guy Sartorelli
cd77301de1
Merge pull request #11236 from creative-commoners/pulls/5/deprecate-non-array
API Deprecate passing non-arrays to FieldList methods
2024-05-17 09:52:29 +12:00
Guy Sartorelli
3b1d859baf
Merge pull request #11235 from creative-commoners/pulls/6/fieldlist-strongly-type
API Strongly type Fieldlist
2024-05-17 08:59:11 +12:00
Steve Boyd
7b847f8d7e API Strongly type Fieldlist 2024-05-16 18:16:08 +12:00
Steve Boyd
f6aaa480b1 API Set extension hook implementation visibility to protected 2024-05-16 18:10:39 +12:00
Finlay Metcalfe
8b4865ed2c
FIX Return null error solved for DBQueryBuilder::shouldBuildTraceComment 2024-05-16 14:04:13 +12:00
github-actions
c6aee6c5c7 Merge branch '5' into 6 2024-05-16 01:13:13 +00:00
github-actions
f60e1bc236 Merge branch '5.2' into 5 2024-05-16 01:13:12 +00:00
Guy Sartorelli
8afe1adc57
Merge pull request #11238 from creative-commoners/pulls/5/viewable-scalar
ENH Rendering scalars in ArrayList in templates
2024-05-15 17:33:13 +12:00
Steve Boyd
12a741feee ENH Rendering scalars in ArrayList in templates 2024-05-15 16:31:39 +12:00
Steve Boyd
0ba85bc1d0 API Deprecate passing non-arrays to FieldList methods 2024-05-14 12:43:59 +12:00
Guy Sartorelli
50a0018363
FIX many_many through should allow subclasses (#11230)
```php
class HomePage extends Page
{
    private static $many_many = [
        'HeroImages' => [
            'through' => PageImageLink::class,
            'from' => 'Page',
            'to' => 'Image',
        ]
    ];

}
```

```php
class PageImageLink extends DataObject
{
    private static $has_one = [
        'Page' => SiteTree::class,
        'Image' => Image::class,
    ];
}

This fails because the linking object's relation class doesn't exactly match the owner. Sharing the linking objects across various entries in the ancestry should be a supported use case.

Co-authored-by: Aaron Carlino <unclecheese@leftandmain.com>
2024-05-13 14:15:37 +12:00
github-actions
3c8f8b99e7 Merge branch '5' into 6 2024-05-11 14:24:49 +00:00
github-actions
4429a4999d Merge branch '5.2' into 5 2024-05-11 14:24:47 +00:00
Dominik Beerbohm
0f6d210602
FIX Correctly eagerload polymorphic has_one relations (#11204) 2024-05-08 11:12:51 +12:00
Guy Sartorelli
0c8fcfb54c
Merge pull request #11213 from creative-commoners/pulls/5/required-has-one
FIX Handle getting HasOneRelationFieldInterface passed as an array
2024-05-07 13:01:59 +12:00
Guy Sartorelli
3449d8bf21
FIX Revert "ENH Add Nice to DBField" (#11222)
This reverts commit b167f470d7.
2024-05-07 11:45:48 +12:00
Guy Sartorelli
a198c91628
FIX Don't throw exception for empty eagerloaded relation (#11220) 2024-05-06 18:06:54 +12:00
Guy Sartorelli
a92baeaf6f
FIX Allow double dots in path when not attempting directory traversal (#11219) 2024-05-06 13:15:26 +12:00
github-actions
284c72f108 Merge branch '5' into 6 2024-05-04 14:25:18 +00:00
github-actions
9fc9d18c7a Merge branch '5.2' into 5 2024-05-04 14:25:17 +00:00
Steve Boyd
b8f0b8ca4f FIX Handle getting HasOneRelationFieldInterface passed as an array 2024-05-02 12:06:43 +12:00
Steve Boyd
6c42463b67 API Add onBeforeManipulate extension hook 2024-04-29 12:28:16 +12:00
Thomas Portelange
44f77ecdac
MNT add nullable return types to PHPDocs (#11192) 2024-04-29 09:02:59 +12:00
github-actions
3d8dc82d63 Merge branch '5' into 6 2024-04-27 14:24:25 +00:00
Guy Sartorelli
142a318fa8
ENH Return PJAX responses from gridfield edit forms (#11206)
undefined
2024-04-26 17:13:27 +12:00
github-actions
d37c871883 Merge branch '5' into 6 2024-04-20 14:23:55 +00:00
github-actions
19ea32ebfa Merge branch '5.2' into 5 2024-04-20 14:23:53 +00:00
Guy Sartorelli
dcc6863401
NEW Allow skipping validation on write (#11202) 2024-04-19 10:35:36 +12:00
Guy Sartorelli
72692f9f10
NEW Make default TinyMCE settings configurable 2024-04-18 15:12:16 +12:00
Guy Sartorelli
2bdc24c86a
ENH Set default valid_elements for new TinyMCE config 2024-04-18 14:38:02 +12:00
Guy Sartorelli
a4adad60e9
FIX Don't skip sanitisation when no valid elements are defined 2024-04-18 14:28:02 +12:00
Bernie Hamlin
99e965b5d7
FIX Use field editorconfig when sanitising content 2024-04-18 14:16:53 +12:00
Dominik Beerbohm
135f9c6d30
FIX Ensure eagerLoading don't load has_one twice (#11170) 2024-04-18 13:27:50 +12:00
Loz Calver
a53301f673 FIX: OutOfBoundsException when recipe-core isn't installed (fixes #11197) 2024-04-15 16:59:59 +01:00
github-actions
4be3dd5cd1 Merge branch '5' into 6 2024-04-13 14:23:24 +00:00
github-actions
3e1b5e6452 Merge branch '5.2' into 5 2024-04-13 14:23:22 +00:00
Guy Sartorelli
6743de4356
FIX Remove ambiguity for polymorphic queries (#11195) 2024-04-12 09:40:34 +12:00
github-actions
e3edf19ae4 Merge branch '5' into 6 2024-04-03 05:54:39 +00:00
github-actions
39c9e0d31c Merge branch '5.2' into 5 2024-04-03 05:54:37 +00:00
github-actions
97a8da8c7d Merge branch '5.1' into 5.2 2024-04-03 05:54:35 +00:00
Thomas Portelange
cca2f7059b
ENH Update PHPDocs for methods with missing nullable return types (#11187) 2024-04-02 13:33:09 +13:00
Guy Sartorelli
b442d9d45a
ENH Let unit tests manipulate the DB before loading fixtures (#11182) 2024-04-02 11:28:06 +13:00
github-actions
4cbe07a368 Merge branch '5' into 6 2024-03-30 14:23:47 +00:00
Guy Sartorelli
46c5f6d9ed
Merge pull request #11184 from lekoala/patch-54
ENH Add Nice to DBField
2024-03-28 09:00:54 +13:00
Thomas Portelange
b167f470d7 ENH Add Nice to DBField
Fixes https://github.com/silverstripe/silverstripe-framework/issues/11169

(cherry picked from commit 2c35b8d84a1a2f50cd363af270c8da2c3eb7f897)
2024-03-27 14:59:37 +01:00
Thomas Portelange
492cb800fa
ENH store tableList in cache (#11183) 2024-03-26 12:03:46 +13:00
github-actions
2ded7436ec Merge branch '5' into 6 2024-03-22 08:36:12 +00:00
github-actions
164e2a18ab Merge branch '5.2' into 5 2024-03-22 08:36:10 +00:00
github-actions
74abb03133 Merge branch '5.1' into 5.2 2024-03-22 08:36:08 +00:00
Guy Sartorelli
8aab888d50
FIX Fix link for managing roles (#11178) 2024-03-21 12:49:10 +13:00
github-actions
2b296b6481 Merge branch '5' into 6 2024-03-19 23:26:27 +00:00
github-actions
f63862df83 Merge branch '5.2' into 5 2024-03-19 23:26:26 +00:00
github-actions
90298002a4 Merge branch '5.1' into 5.2 2024-03-19 23:26:25 +00:00
Guy Sartorelli
e68af4de40
Merge branch '4' into 5.1 2024-03-20 12:15:22 +13:00
Guy Sartorelli
6ede0316bf
Revert "Use field editorconfig when sanitising content" (#11180)
This reverts commit e5eb98cc34.
2024-03-20 12:02:54 +13:00
Guy Sartorelli
25f61141cb
Enhancements required for linkfield migration (#11171)
* ENH Add lightweight test override for Environment::isCli()

* NEW Allow JOIN with SQL UPDATE.
2024-03-20 11:49:57 +13:00
github-actions
7cc08f9669 Merge branch '5' into 6 2024-03-18 02:34:27 +00:00
github-actions
0d8626f0bc Merge branch '5.2' into 5 2024-03-18 02:34:26 +00:00
Guy Sartorelli
dcd33319c7
Merge branch '5.1' into 5.2 2024-03-18 15:33:54 +13:00
github-actions
c25922fedb Merge branch '4' into 5.1 2024-03-16 14:24:08 +00:00
Thomas Portelange
777056d861
ENH fieldList is an array or null 2024-03-14 17:06:00 +01:00
Thomas Portelange
b031ade73a
ENH update some docblock types (#11168) 2024-03-13 10:08:56 +13:00
Thomas Portelange
fcf5e324dd FIX Handle non-breakable spaces
Fixes issue https://github.com/silverstripe/silverstripe-framework/issues/11162
2024-03-12 11:01:09 +13:00
github-actions
32e6169da1 Merge branch '5' into 6 2024-03-09 14:25:07 +00:00
github-actions
8f48e9bd71 Merge branch '5.2' into 5 2024-03-09 14:25:06 +00:00
github-actions
c36df386ba Merge branch '5.1' into 5.2 2024-03-09 14:25:04 +00:00
Loz Calver
5ab9ded9e9
Merge pull request #11117 from AntonyThorpe/patch-1
Update DropdownField.php
2024-03-07 12:28:36 +00:00
Will Rossiter
f4cbe92050
ENH Make CanonicalURLMiddleware run in all environments by default (#11154) 2024-03-05 10:57:20 +13:00
Thomas Portelange
eb4ef623ab
check for empty salt 2024-03-04 08:34:43 +01:00
Guy Sartorelli
4f3282bf2a
Merge pull request #11157 from lekoala/patch-46
FIX use composer runtime api
2024-02-28 09:16:25 +13:00
Thomas Portelange
e7bc8ae99f
FIX Generate salt if needed 2024-02-26 11:31:53 +01:00
Thomas Portelange
68b79e11ee
missing import 2024-02-26 09:54:18 +01:00
Thomas Portelange
2696922023
update return type 2024-02-26 09:52:48 +01:00
Thomas Portelange
1cf3dde9f1
Update src/Core/Manifest/VersionProvider.php
Co-authored-by: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com>
2024-02-26 09:48:35 +01:00
Thomas Portelange
b53148c034
add deprecation, remove class_exists 2024-02-26 09:23:35 +01:00
Thomas Portelange
e649310f7b
Update src/Core/Manifest/VersionProvider.php
Co-authored-by: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com>
2024-02-26 09:09:45 +01:00
Thomas Portelange
a2486c0859
Update src/Core/Manifest/VersionProvider.php
Co-authored-by: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com>
2024-02-26 09:09:38 +01:00
Thomas Portelange
a196719502
Update src/Core/Manifest/VersionProvider.php
Co-authored-by: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com>
2024-02-26 09:09:31 +01:00
Guy Sartorelli
c2b606c24c
Merge pull request #11150 from beerbohmdo/allow_override_moneyfield
Allow better subclassing of MoneyField
2024-02-26 11:20:11 +13:00
Thomas Portelange
bc09127182
use composer runtime api 2024-02-23 17:06:27 +01:00
Dominik Beerbohm
a3ce922f1d
ENH Allow better subclassing of MoneyField
Move generation of NumberField from constructor to method to allow override in subclass.
Addded test for MoneyField
2024-02-20 11:42:45 +01:00
Guy Sartorelli
528344d1b0
NEW Allow manipulating eagerloading queries (#11140) 2024-02-20 16:17:31 +13:00
Guy Sartorelli
8664d2c4e9
ENH Allow all valid true-like ini values 2024-02-16 13:29:52 +13:00
github-actions
7e30e38ae6 Merge branch '5.1' into 5 2024-02-14 22:58:30 +00:00
Guy Sartorelli
d33332cb9e
FIX Add eagerloaded data to ALL relevant lists (#11139) 2024-02-15 11:57:22 +13:00
Steve Boyd
51fd1d6b7e FIX Handle __TRAIT__ in i18nTextCollector 2024-02-13 16:33:24 -07:00
Guy Sartorelli
a00bdd727f
MNT Run module-standardiser (#11121) 2024-02-13 14:33:23 +13:00
Guy Sartorelli
343c8ff787
Merge branch '5.1' into 5 2024-02-13 13:55:30 +13:00
Thomas Portelange
b56e771ed5
FIX add missing rawurlencode (#11105) 2024-02-13 10:08:28 +13:00
Guy Sartorelli
9c4266c8f3
Merge pull request #11127 from lekoala/patch-45
FIX Unknown column 'ClassName' in field list
2024-02-13 09:51:52 +13:00
Thomas Portelange
e0107e0202
Update src/ORM/DataQuery.php
Co-authored-by: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com>
2024-02-08 09:14:27 +01:00
Thomas Portelange
2ac68a55a4
rename var 2024-02-08 09:13:40 +01:00
Guy Sartorelli
5e53dbcdbc
NEW Add a trace comment for queries in dev mode (#11065) 2024-02-08 16:29:55 +13:00
Guy Sartorelli
e87c724700
FIX Don't assume mysql handle is an object (#11129) 2024-02-08 15:07:33 +13:00
Thomas Portelange
1dd81488aa
fix unknown table
Fixes https://github.com/silverstripe/silverstripe-framework/issues/10737
2024-02-07 17:38:14 +01:00
Guy Sartorelli
26273bf371
TLN Update translations (#11125) 2024-02-07 10:16:25 +13:00
Steve Boyd
2e4bc95157 NEW Add UrlField 2024-02-02 13:43:26 +13:00
Guy Sartorelli
7f71695335
NEW Wire up symfony/validator (#11123) 2024-02-02 13:15:32 +13:00
Steve Boyd
6ccdd10c60 MNT Remove unused import 2024-01-31 16:15:36 +13:00
Steve Boyd
9d335f73d6 NEW HasOneRelationFieldInterface 2024-01-31 10:34:25 +13:00
Antony Thorpe
90a3d60b59
Update DropdownField.php
Update the enum example with a namespaces classname
2024-01-30 19:02:05 +13:00
github-actions
1eadc84a22 Merge branch '5.1' into 5 2024-01-27 14:24:02 +00:00
Sabina Talipova
afd53d1d6a FIX HTMLEditorField::setRows with Elemental 2024-01-25 12:07:10 +13:00
Guy Sartorelli
98951c088e
Merge branch '5.1' into 5 2024-01-23 12:04:23 +13:00
github-actions
312ee58292 Merge branch '4' into 5.1 2024-01-22 22:58:52 +00:00
Guy Sartorelli
90a57c2aa4
Merge branch '5.1' into 5 2024-01-23 11:58:17 +13:00
Sabina Talipova
6fe377e69d
Merge pull request #11113 from creative-commoners/pulls/4.13/cve-2023-48714
[CVE-2023-48714] Don't show or add records the member isn't allowed to
2024-01-23 11:46:28 +13:00
Guy Sartorelli
873b721b6b
[CVE-2023-48714] Don't show or add records the member isn't allowed to
see
2024-01-23 11:11:36 +13:00
Guy Sartorelli
4b1b487041
[CVE-2023-49783] Allow permission checks in BulkLoader 2024-01-23 11:01:25 +13:00
github-actions
96241b2db8 Merge branch '4' into 5.1 2024-01-20 14:24:40 +00:00
Guy Sartorelli
357ed7ad7e
ENH Add generic types (#11108)
There are also a few general corrections to PHPDocs that I noticed along
the way (e.g. adding `|null` when the method is returning a null value.

There are some cases where either the return type or the whole PHPDoc
was duplicated from the parent class - in those cases I've simply
removed the duplication.
2024-01-17 17:08:26 +13:00
Guy Sartorelli
8b427f4e74
API Deprecate some unused API 2024-01-17 14:00:47 +13:00
github-actions
56086121a2 Merge branch '5.1' into 5 2024-01-13 14:24:50 +00:00
Sabina Talipova
ff3a6f72df
FIX HTMLEditorField::setRows minimal hieght (#10965) 2024-01-11 15:00:24 +13:00
Steve Boyd
9bfb731bc3 FIX Handle polymorphic relationships that use Owner instead of Parent 2024-01-10 11:43:26 +13:00
Guy Sartorelli
b1a1d4b951
Merge pull request #11100 from creative-commoners/pulls/5/split-summary-by-punctuation
ENH Split sentences by configurable punctuation for summary
2024-01-09 09:01:44 +13:00
Nick
e456de11b0
Fix clobbering of the upload size validation (#10059)
* Fix clobbering of the upload size validation

When the validation is set here like this, it overrides validation which has already been setup with a simple '*' rule for the size based on PHP.

If you've defined in the sites yml config something like

    SilverStripe\Assets\Upload_Validator:
      default_max_file_size:
        '[image]': '2m'
        '*' : '1m'

then it will not be respected.

If you review SilverStripe\Assets\Upload_Validator and check the getAllowedMaxFileSize method, you'll see the sizing will be populated (if it hasn't been done before).

You can see it fail by;
- Setup a new SilverStripe site.
- Set your PHP to allow max post / max upload size of 10mb.
- Add the above config to your sites yml file and flush.
- In the CMS you'll be able to upload a 5MB file, when you shouldn't.

* Test that FileField will use size validation if defined

Couple of tests which prove a fix so the FileField and others will use the default_max_file_size setting

* Fix variable name in last commit

This is what happens when you refactor in the github window.
Fix the variable names. This will get squashed once merged.

* Updates the pr - white space and non deprecated method for byte conversion

Remove extra white space to appease the CS. Use the non deprecated method for memstring2bytes

* White space fixes for the phpcs

White space fixes for the phpcs

* Ensure that "memstring2bytes" can handle if an empty or value with no number is passed in

* DEP Bump assets constraint to ensure that change is also pulled in

---------

Co-authored-by: Guy Sartorelli <guy.sartorelli@silverstripe.com>
2024-01-08 15:49:41 +13:00
Finlay Metcalfe
2487c4085d
ENH Create Requirements::customScriptWithAttributes (#11076)
* ENH Create Requirements::customScriptWithAttributes

* MNT PHP Lint failures corrected

* ENH Refactored attribute handling to avoid API changes, auto lowercase, strong typing

* FIX Updated default value handling for type in customScriptWithAttributes

* DOC Removed white space

* MNT PHP Lint Failures Corrected

* Update src/View/Requirements_Backend.php

Co-authored-by: Steve Boyd <emteknetnz@gmail.com>

* Update src/View/Requirements_Backend.php

Co-authored-by: Steve Boyd <emteknetnz@gmail.com>

* Update tests/php/View/RequirementsTest.php

Co-authored-by: Steve Boyd <emteknetnz@gmail.com>

* FIX Removed extra closing brace in customScriptWithAttributes

* Update src/View/Requirements_Backend.php

Co-authored-by: Steve Boyd <emteknetnz@gmail.com>

* Update src/View/Requirements.php

Co-authored-by: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com>

* MNT Fixed left over content definition and created tests for uniquenessIDs

* MNT Fixed PHP Lint Error

* MNT Fix PHP Lint Error

* FIX Remove attribute when calling customScript with the same uniquenessID

---------

Co-authored-by: Steve Boyd <emteknetnz@gmail.com>
Co-authored-by: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com>
2023-12-22 12:00:33 +13:00
Guy Sartorelli
bf629dfabd
ENH Split sentences by configurable punctuation for summary
Co-authored-by: Lukas Erni <le@kraftausdruck.ch>
2023-12-20 15:08:01 +13:00
Guy Sartorelli
7dc1a7a12b
FIX Correctly mark ConfirmedPasswordField children as required 2023-12-20 12:35:30 +13:00
Maxime Rainville
6c69d32367
Merge pull request #11049 from creative-commoners/pulls/5/gridfield-with-viewabledata
Make GridField components work with ViewableData where possible
2023-12-19 19:55:29 +13:00
Guy Sartorelli
e7775a6133
Merge pull request #11071 from creative-commoners/pulls/5/foreign-key-field-scaffold
ENH Use SearchableDropdownField for autoscaffolded has_one relationships
2023-12-19 10:42:12 +13:00
Steve Boyd
e66c1aec06 ENH Use SearchableDropdownField for autoscaffolded has_one relationships 2023-12-19 10:04:01 +13:00
Guy Sartorelli
c96f37ea93
Merge branch '5.1' into 5 2023-12-18 15:20:02 +13:00
Guy Sartorelli
3d64eac129
NEW Make most GridField components work with arbitrary data 2023-12-18 12:41:42 +13:00
Guy Sartorelli
ad8cf9902c
Merge pull request #11093 from creative-commoners/pulls/5.1/docblock
MNT Update @methods on class docblocks
2023-12-15 12:38:38 +13:00
Guy Sartorelli
3acd6d3147
Merge pull request #11091 from edwilde/patch-16
Remove unused lines in `findTab()`
2023-12-15 10:36:45 +13:00
Guy Sartorelli
dd3a0dba24
FIX Don't break the page if password recover email fails to send 2023-12-15 09:05:18 +13:00