fix(graph): Don't return OCM shares in the drives list

OCM shares don't have mountpoints currently. So they're no supposed
to show up in the drives list on the graph service.

Fixes: #10689
This commit is contained in:
Ralf Haferkamp
2024-12-04 12:08:15 +01:00
parent e08899d224
commit 565f58c68a
2 changed files with 13 additions and 4 deletions

View File

@@ -0,0 +1,7 @@
Bugfix: Fix graph drives response for federated shares
Federated shares where erroneously showing up in the /me/drives response
on the graph API.
https://github.com/owncloud/ocis/pull/10730
https://github.com/owncloud/ocis/issues/10689

View File

@@ -645,6 +645,10 @@ func (g Graph) formatDrives(ctx context.Context, baseURL *url.URL, storageSpaces
for i := 0; i < numWorkers; i++ {
errg.Go(func() error {
for storageSpace := range work {
if storageSpace.GetRoot().GetStorageId() == utils.OCMStorageProviderID {
// skip OCM shares they are no supposed to show up in the drives list
continue
}
res, err := g.cs3StorageSpaceToDrive(ctx, baseURL, storageSpace, apiVersion)
if err != nil {
return err
@@ -679,11 +683,9 @@ func (g Graph) formatDrives(ctx context.Context, baseURL *url.URL, storageSpaces
close(results)
}()
responses := make([]*libregraph.Drive, len(storageSpaces))
i := 0
responses := make([]*libregraph.Drive, 0, len(storageSpaces))
for r := range results {
responses[i] = r
i++
responses = append(responses, r)
}
if err := errg.Wait(); err != nil {