Bug #71245
openUndelete does not restore inline records
0%
Description
When a record is deleted all inline records are deleted as well.
However, when restoring the original record, none of these elements are restored.
Updated by Gerrit Code Review almost 9 years ago
- Status changed from New to Under Review
Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/44478
Updated by Gerrit Code Review almost 9 years ago
Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/44478
Updated by Susanne Moog about 7 years ago
- Complexity changed from no-brainer to hard
Updated by Mathias Schreiber over 6 years ago
- Related to Bug #69334: Rollback on content element doesn't restore deleted File Reference added
Updated by Coders.Care Extension Team over 6 years ago
Just for the record and taken from the review tracker comments of the duplicate issue which is now abandoned:
The actual problem for the missing rollbacks is, that there are two kinds of integer values involved, which are mistaken during the process.
The "children" field of the parent record contains an integer, representing the number of child elements attached to this parent.
During the rollack process this number is treated as a UID of a record of the table connected to this field, which leads to two different unwanted behaviours:
- If there is no deleted record having that particular UID, no child record gets undeleted together with the parent record.
- If there is a deleted record having the UID, it will get undeleted, even though it might not be a child of the undeleted parent.
While (1) is just a broken undelete action, which is already bad, (2) is even worse, since it might roll back records somewhere in the page tree, that should have stayed deleted by all means. Especially when these records contain legally relevant content, this might cause severe issues for the owner of the website. Still the editor would not even notice that the record magically returned.
This happens to Gridelements as well as to any other kind of parent/chlid combination, i.e. using sys_file_references and the like.
Updated by Christian Kuhn almost 6 years ago
- Status changed from Under Review to New
setting this issue back to new since the according patch stalled in the review system and nothing happened for a long time.
Updated by Michael Stopp over 3 years ago
So we're on 10 LTS (with 11 on the horizon) and this problem still persists. If cascading delete is (sensibly) the default for inline records, a rollback function MUST include child records as well. If not, it's broken and should be fixed, since there is no decent way to recover these records without a lot of manual labor (eg. if a user has deleted the contents of a whole folder, where every record has multiple child records - a problem I just faced this morning...).