Commit Graph

20360 Commits

Author SHA1 Message Date
Ingo Schommer
93b0884e19 BUG Lazy session state (fixes #8267)
Fixes regression from 3.x, where sessions where lazy started as required:
Either because an existing session identifier was sent through with the request,
or because new session data needed to be persisted as part of the request execution.

Without this lazy starting, *every* request will get a session,
which makes all those responses uncacheable by HTTP layers.

Note that 4.x also changed the $data vs. $changedData payloads:
In 3.x, they both contained key/value pairs.
In 4.x, $data contains key/value, while $changedData contains key/boolean to declare isChanged.
While this reduces duplication in the class, it also surfaced a bug which was latent in 3.x:
When an existing session is lazily resumed via start(), $data is set back to an empty array.
In 3.x, any changed data before this point was *also* retained in $changedData,
ensuring it gets merged into existing $_SESSION data.
In 4.x, this clears out data - hence the need for a more complex merge logic.

Since isset($this->data) is no longer an accurate indicator of a started session,
we introduce a separate $this->started flag.

Note that I've chosen not to make lazy an opt-in (e.g. via start($request, $lazy=false)).
We already have a distinction between lazy starting via init(), and force starting via start().
2018-07-19 13:32:04 +12:00
Daniel Hensby
b83281fa5e
Merge pull request #8265 from gbaumeister/4.2
Added install-requirement-check for php-intl
2018-07-16 17:31:32 +01:00
Gerald Baumeister
df5395b101 Added check for php-intl requirement 2018-07-16 18:08:25 +02:00
Loz Calver
b317bf163c
Merge pull request #8213 from creative-commoners/pulls/4.2/falsy-forms
FIX FormField::Link works when no form is currently set
2018-07-16 13:53:58 +01:00
Robbie Averill
b93e94c0c3
FIX FormField::Link now throws a LogicException if no form is set yet 2018-07-16 13:02:58 +01:00
Loz Calver
106ca6643a
Merge pull request #8263 from dhensby/pulls/4.1/mask-backtrace
FIX updateValidatePassword calls need to be masked from backtraces
2018-07-16 10:30:22 +01:00
Damian Mooyman
c6952b46c4
Merge pull request #8245 from dhensby/pulls/4.2/http-cache-fixes
HTTPCacheControlMiddleware fixes
2018-07-16 13:13:12 +12:00
Robbie Averill
d122995652 FIX Duplicate config values for cascade_duplicates no longer duplicate their duplicates
Previously you could define identical values for this config prop via a DataExtension and on the base
class, resulting in double duplication
2018-07-16 12:04:56 +12:00
Daniel Hensby
8703839eb1
FIX updateValidatePassword calls need to be masked from backtraces 2018-07-15 01:06:45 +01:00
Daniel Hensby
bd2abc7a12
Merge branch '4.1' into 4.2 2018-07-13 16:44:23 +01:00
Daniel Hensby
ec9281ee02
Merge branch '4.0' into 4.1 2018-07-13 16:42:00 +01:00
Loz Calver
f0e545ada8
Merge pull request #7971 from dhensby/pulls/4.0/fix-extension-config
FIX Config from extension should not override
2018-07-13 16:15:18 +01:00
Daniel Hensby
d80ef3d9e6
DOCS Update docs to reflect true config merge priorities 2018-07-13 15:43:56 +01:00
Daniel Hensby
4acec33562
FIX Fixed bug in config merging priorities so that config values set by extensions are now least important instead of most important 2018-07-12 00:55:39 +01:00
Daniel Hensby
28f2ceac6f
TEST Add tests for (im)mutablity of states 2018-07-10 16:58:08 +01:00
Daniel Hensby
fd8448889c
State default should be state enabled (no-cache is an enabled state) 2018-07-10 16:58:08 +01:00
Daniel Hensby
601bb4d768
Make augmentState method more efficient 2018-07-10 16:58:07 +01:00
Daniel Hensby
399ebd0031
FIX If theres a max-age set remove no-cache and no-store 2018-07-10 16:58:07 +01:00
Ingo Schommer
2e6f29fea0
Merge pull request #8223 from dhensby/pulls/4.0/remove-email-from-pswdrecovery
FIX remove personal information from password reset confirmation screen
2018-07-06 11:27:03 +12:00
Daniel Hensby
92f5ef31d8
FIX Allow setNoCache(false) to remove no-cache directive 2018-07-05 22:51:39 +01:00
Daniel Hensby
18b7dc235a
FIX Add must-revalidate to default state so its common on all our core states 2018-07-05 22:51:03 +01:00
Daniel Hensby
9e829c1607
FIX Allow cache control changes to affect default state 2018-07-05 22:50:35 +01:00
Ingo Schommer
0bd613a3b4
Merge pull request #8233 from dhensby/pulls/4.2/caching-fixes
HTTP Caching fixes :/
2018-07-05 15:11:01 +12:00
Daniel Hensby
560fe9820a FIX remove personal information from password reset confirmation screen 2018-07-05 14:19:15 +12:00
Daniel Hensby
3116b1f97c
Consolidate disabling cache logic 2018-07-02 15:13:46 +01:00
Daniel Hensby
b9b1a74b92
Make config private (notation isnt working) 2018-07-02 13:54:11 +01:00
Daniel Hensby
e4ef83bd2a
FIX Default cache state should be no-cache 2018-07-02 13:33:36 +01:00
Daniel Hensby
27b60ae989
FIX Transaction depth should error if not implemented by child classes 2018-06-21 14:26:21 +01:00
Daniel Hensby
8bd73bb9cd
Merge pull request #8199 from creative-commoners/pulls/4.2/cms-travis-runs
Ensure silverstripe/recipe-cms is installed from source during Travis builds
2018-06-20 13:35:14 +01:00
Daniel Hensby
b7be843833
Ensure silverstripe/recipe-cms is installed from source during Travis builds 2018-06-20 13:04:56 +01:00
Robbie Averill
df257686c1 Restore check for zero or negative transaction nesting 2018-06-20 14:46:50 +12:00
Daniel Hensby
d8430f549d Address feedback 2018-06-20 14:46:50 +12:00
Damian Mooyman
a7bd1a895f Use 2.1 of postgres 2018-06-20 14:46:50 +12:00
Damian Mooyman
6da72d686f Maybe fix it? 2018-06-20 14:46:50 +12:00
Damian Mooyman
a116b5dad8 BUG FIx manual resetDBSchema() calls breaking the database 2018-06-20 14:46:50 +12:00
Damian Mooyman
f2c2ded27f BUG Ensure that build includes extra classes 2018-06-20 14:46:50 +12:00
Damian Mooyman
fbfd454d65 ENHANCEMENT Ensure test DB is flushed on either DDL or transaction-disabled tests
Fixes #8182
2018-06-20 14:46:50 +12:00
Robbie Averill
7d90a14f37 NEW Shift Embeddable and EmbedResource from asset-admin, lazy load Embed to allow injected dependencies (#8194) 2018-06-20 11:40:28 +12:00
Robbie Averill
725212a707 FIX Allow dispatcher in Embed to be configured with injector (#8192) 2018-06-20 11:37:35 +12:00
Robbie Averill
87159ea820
Merge pull request #7949 from martinduparc/patch-7
Use LimitWordCount instead of LimitWordCountXML
2018-06-19 21:36:36 +12:00
Damian Mooyman
cfc3b851e7
Merge remote-tracking branch 'origin/4.1' into 4.2
# Conflicts:
#	lang/sv.yml
2018-06-19 17:20:25 +12:00
Damian Mooyman
9f764f4ec3 Added 4.1.2 changelog 2018-06-19 17:06:01 +12:00
Damian Mooyman
2bbb3bd798 Update translations 2018-06-19 16:50:07 +12:00
Maxime Rainville
3f80e2dc67 FIX Don't reload form session data using FormField::setSubmittedValue… (#8184) 2018-06-19 11:27:09 +12:00
Damian Mooyman
8181dc4fd2 ENHANCEMENT Ensure extensions are told the internal item request class for gridfield detail form (#8164)
Fixes https://github.com/silverstripe/silverstripe-framework/issues/8136
2018-06-15 17:58:53 +12:00
Damian Mooyman
f03d5e8d19 Added 4.2.0-beta1 changelog 2018-06-15 15:47:03 +12:00
Damian Mooyman
3bad65a726 Update translations 2018-06-15 15:39:15 +12:00
Damian Mooyman
a5ec4e4464 Remove obsolete branch-alias 2018-06-15 15:29:51 +12:00
Robbie Averill
7cd8b3d163
Merge pull request #8181 from open-sausages/pulls/4/remove-internals
API Remove @internal from new 4.2 methods
2018-06-15 13:50:43 +12:00
Damian Mooyman
53dded8cff
API Remove @internal from new 4.2 methods 2018-06-15 13:14:42 +12:00