diff --git a/changelog/unreleased/fix-graph-invite-createddatetime.md b/changelog/unreleased/fix-graph-invite-createddatetime.md new file mode 100644 index 0000000000..d29d2b44e5 --- /dev/null +++ b/changelog/unreleased/fix-graph-invite-createddatetime.md @@ -0,0 +1,6 @@ +Bugfix: Share creation date is missing in invite response + +The graph drives invite response now includes the `createdDateTime` field. + +https://github.com/owncloud/ocis/pull/10780 +https://github.com/owncloud/ocis/issues/10739 diff --git a/services/graph/pkg/service/v0/api_driveitem_permissions.go b/services/graph/pkg/service/v0/api_driveitem_permissions.go index eda3999dfb..9cb643cb32 100644 --- a/services/graph/pkg/service/v0/api_driveitem_permissions.go +++ b/services/graph/pkg/service/v0/api_driveitem_permissions.go @@ -143,6 +143,7 @@ func (s DriveItemPermissionsService) Invite(ctx context.Context, resourceId *sto var shareid string var expiration *types.Timestamp + var cTime *types.Timestamp switch driveRecipient.GetLibreGraphRecipientType() { case "group": group, err := s.identityCache.GetGroup(ctx, objectID) @@ -166,6 +167,7 @@ func (s DriveItemPermissionsService) Invite(ctx context.Context, resourceId *sto return libregraph.Permission{}, err } shareid = createShareResponse.GetShare().GetId().GetOpaqueId() + cTime = createShareResponse.GetShare().GetCtime() expiration = createShareResponse.GetShare().GetExpiration() default: user, err := s.identityCache.GetUser(ctx, objectID) @@ -209,6 +211,7 @@ func (s DriveItemPermissionsService) Invite(ctx context.Context, resourceId *sto return libregraph.Permission{}, err } shareid = createShareResponse.GetShare().GetId().GetOpaqueId() + cTime = createShareResponse.GetShare().GetCtime() expiration = createShareResponse.GetShare().GetExpiration() } else { createShareRequest := createShareRequestToUser(user, statResponse.GetInfo(), cs3ResourcePermissions) @@ -221,6 +224,7 @@ func (s DriveItemPermissionsService) Invite(ctx context.Context, resourceId *sto return libregraph.Permission{}, err } shareid = createShareResponse.GetShare().GetId().GetOpaqueId() + cTime = createShareResponse.GetShare().GetCtime() expiration = createShareResponse.GetShare().GetExpiration() } @@ -238,6 +242,11 @@ func (s DriveItemPermissionsService) Invite(ctx context.Context, resourceId *sto permission.SetExpirationDateTime(utils.TSToTime(expiration)) } + // set cTime + if cTime != nil { + permission.SetCreatedDateTime(cs3TimestampToTime(cTime)) + } + if user, ok := revactx.ContextGetUser(ctx); ok { identity, err := userIdToIdentity(ctx, s.identityCache, user.GetId().GetOpaqueId()) if err != nil {