mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-07 12:50:21 -06:00
fix(graph): Use the correct opaqueId when Statting OCM shares
File shares need to use the base64 encoded path as the opaqueID, while for folder shares the base64 encode '/' should work. Fixes #10495
This commit is contained in:
7
changelog/unreleased/fix-ocm-file-preview.md
Normal file
7
changelog/unreleased/fix-ocm-file-preview.md
Normal file
@@ -0,0 +1,7 @@
|
||||
Bugfix: Fixed `sharedWithMe` response for OCM shares
|
||||
|
||||
OCM shares returned in the `sharedWithMe` response did not have the `mimeType` property
|
||||
populated correctly.
|
||||
|
||||
https://github.com/owncloud/ocis/pull/10501
|
||||
https://github.com/owncloud/ocis/issues/10495
|
||||
@@ -2,6 +2,7 @@ package svc
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"io"
|
||||
"net/http"
|
||||
@@ -538,14 +539,21 @@ func cs3ReceivedOCMSharesToDriveItems(ctx context.Context,
|
||||
|
||||
group.Go(func() error {
|
||||
var err error // redeclare
|
||||
|
||||
// for OCM shares the opaqueID is the '/' for shared directories and '/filename' for
|
||||
// file shares
|
||||
resOpaqueID := "/"
|
||||
if receivedShares[0].GetResourceType() == storageprovider.ResourceType_RESOURCE_TYPE_FILE {
|
||||
resOpaqueID += receivedShares[0].GetName()
|
||||
}
|
||||
|
||||
shareStat, err := gatewayClient.Stat(ctx, &storageprovider.StatRequest{
|
||||
Ref: &storageprovider.Reference{
|
||||
ResourceId: &storageprovider.ResourceId{
|
||||
// TODO maybe the reference is wrong
|
||||
StorageId: utils.OCMStorageProviderID,
|
||||
SpaceId: receivedShares[0].GetId().GetOpaqueId(),
|
||||
OpaqueId: "", // in OCM resources the opaque id is the base64 encoded path
|
||||
//OpaqueId: maybe ? receivedShares[0].GetId().GetOpaqueId(),
|
||||
OpaqueId: base64.StdEncoding.EncodeToString([]byte(resOpaqueID)),
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user