@@ -731,10 +731,10 @@ func applyPatch(c echo.Context, fs vfs.VFS, patch *docPatch) (err error) {
731731 }
732732 } else if patch .Trash {
733733 if dir != nil {
734- UpdateDirCozyMetadata (c , dir )
734+ UpdateDirTrashCozyMetadata (c , dir )
735735 dir , err = vfs .TrashDir (fs , dir )
736736 } else {
737- UpdateFileCozyMetadata (c , file , false )
737+ UpdateFileTrashCozyMetadata (c , file )
738738 file , err = vfs .TrashFile (fs , file )
739739 }
740740 } else {
@@ -783,10 +783,10 @@ func applyPatches(c echo.Context, fs vfs.VFS, patches []*docPatch) (errors []*js
783783 }
784784 } else if patch .Trash {
785785 if dir != nil {
786- UpdateDirCozyMetadata (c , dir )
786+ UpdateDirTrashCozyMetadata (c , dir )
787787 _ , errp = vfs .TrashDir (fs , dir )
788788 } else if file != nil {
789- UpdateFileCozyMetadata (c , file , false )
789+ UpdateFileTrashCozyMetadata (c , file )
790790 _ , errp = vfs .TrashFile (fs , file )
791791 }
792792 } else if dir != nil {
@@ -1446,15 +1446,15 @@ func Trash(c echo.Context, sharedDrive *sharing.Sharing) error {
14461446 ensureCleanOldTrashedTrigger (instance )
14471447
14481448 if dir != nil {
1449- UpdateDirCozyMetadata (c , dir )
1449+ UpdateDirTrashCozyMetadata (c , dir )
14501450 doc , errt := vfs .TrashDir (instance .VFS (), dir )
14511451 if errt != nil {
14521452 return WrapVfsError (errt )
14531453 }
14541454 return DirData (c , http .StatusOK , doc , sharedDrive )
14551455 }
14561456
1457- UpdateFileCozyMetadata (c , file , false )
1457+ UpdateFileTrashCozyMetadata (c , file )
14581458 doc , errt := vfs .TrashFile (instance .VFS (), file )
14591459 if errt != nil {
14601460 return WrapVfsError (errt )
@@ -2489,6 +2489,33 @@ func UpdateFileCozyMetadata(c echo.Context, file *vfs.FileDoc, setUploadFields b
24892489 }
24902490}
24912491
2492+ func UpdateDirTrashCozyMetadata (c echo.Context , dir * vfs.DirDoc ) {
2493+ UpdateDirCozyMetadata (c , dir )
2494+ setTrashCozyMetadata (c , dir .CozyMetadata )
2495+ }
2496+
2497+ func UpdateFileTrashCozyMetadata (c echo.Context , file * vfs.FileDoc ) {
2498+ UpdateFileCozyMetadata (c , file , false )
2499+ setTrashCozyMetadata (c , file .CozyMetadata )
2500+ }
2501+
2502+ func setTrashCozyMetadata (c echo.Context , fcm * vfs.FilesCozyMetadata ) {
2503+ if fcm == nil {
2504+ return
2505+ }
2506+ trashedAt := fcm .UpdatedAt
2507+ fcm .TrashedAt = & trashedAt
2508+ if actor , ok := middlewares .GetActor (c ); ok {
2509+ fcm .TrashedBy = & vfs.TrashedByEntry {
2510+ Kind : actor .Kind ,
2511+ DisplayName : actor .DisplayName ,
2512+ Domain : actor .Domain ,
2513+ }
2514+ return
2515+ }
2516+ fcm .TrashedBy = nil
2517+ }
2518+
24922519// CozyMetadataFromClaims returns a FilesCozyMetadata struct, with the app
24932520// fields filled with information from the permission claims.
24942521func CozyMetadataFromClaims (c echo.Context , setUploadFields bool ) (* vfs.FilesCozyMetadata , string ) {
0 commit comments