mirror of
https://github.com/HeyPuter/puter.git
synced 2026-10-12 23:00:06 +00:00
Follow-up to #4048. original_path/original_name decide where a GUI restore lands, and the owner's restore is unchecked, so whoever sets them can aim a file at another app's AppData root and block that app's launch. #4048 only pinned them on move for non-account actors; a write could still set them, and a share recipient's session counts as account context. Writes now drop the trash keys for every caller. On move, only the account that owns both source and destination may set them; anyone else moving into the owner's Trash gets them recomputed from the entry, and other moves drop them, including keys already on the row. Copies drop them on every branch. The GUI only offers Restore for direct children of Trash, since nested rows never carry legitimate trash metadata. The AppData/Trash checks for cross-app deletes and create grants now ignore case, like the root guard.