Revert "[BUGFIX] keep PersistentObjectConverterTest from cloning objects"
authorSebastian Kurfuerst <sebastian@typo3.org>
Tue, 7 Feb 2012 05:59:00 +0000 (06:59 +0100)
committerSebastian Kurfuerst <sebastian@typo3.org>
Tue, 7 Feb 2012 06:02:54 +0000 (07:02 +0100)
commitd8338fc26ac2f6f48745e9dea50d08f37d2ba97b
tree7045aeff42827b04703448e18e554c6fa537aceb
parentcdab23534ed30fe6b4a42b4b34a0ecdec58c8f9b
Revert "[BUGFIX] keep PersistentObjectConverterTest from cloning objects"

Sorry that I let this slip through... The problem now is the following:

If deactivating *clone*, the automatic persistence would find changes even
if the controller decides that the object should not be saved. Thus, this
is a breaking change which can also have a huge security impact. That's
why I am reverting it now.

Thus, we have two possibilities to solve the issue:

1) we revert the patch, clone the objects and the user has to call
   $this->myRepository->update()...
   -> that's what I did now...

2) we could change the behavior as follows, as it is done in FLOW3 now:

- we remove the "clone"
- automatic persistence of objects will be COMPLETELY deactivated
- the user *explicitely* has to save a changed aggregate root into ...Repository->update()
- everything which is part of this aggregate will be saved with it, but referenced other aggregate roots will not be.

The second concept is implemented in FLOW3, and is much more consistent
and a lot faster (in fact, I consider the automagic persistence a design fault
of the early FLOW3 as of now...)

As 2) would not be backwards compatible we'd need to activate it using
a feature flag.

This reverts commit cf1b620b53118eaa89e1817043c0c0f313343520
Conflicts:

Classes/Property/TypeConverter/PersistentObjectConverter.php

Change-Id: Ie6937e68cd87783f8b64942bdf862a08b572de89
typo3/sysext/extbase/Classes/Property/TypeConverter/PersistentObjectConverter.php