From a40f55839f0ffbc711c5bd4f3534b14447bc1db0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 5 Jul 2022 09:21:43 +0000 Subject: [PATCH] comment cleanup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- internal/http/services/owncloud/ocdav/locks.go | 1 - .../http/services/owncloud/ocdav/propfind/propfind.go | 4 ---- internal/http/services/owncloud/ocdav/report.go | 2 +- .../services/owncloud/ocdav/spacelookup/spacelookup.go | 5 ----- internal/http/services/owncloud/ocdav/versions.go | 2 +- pkg/storage/utils/decomposedfs/decomposedfs.go | 1 + pkg/storage/utils/decomposedfs/node/node.go | 4 ++++ pkg/storage/utils/decomposedfs/node/permissions.go | 9 +-------- 8 files changed, 8 insertions(+), 20 deletions(-) diff --git a/internal/http/services/owncloud/ocdav/locks.go b/internal/http/services/owncloud/ocdav/locks.go index 3b048ccdd19..f7dc30cfcc2 100644 --- a/internal/http/services/owncloud/ocdav/locks.go +++ b/internal/http/services/owncloud/ocdav/locks.go @@ -400,7 +400,6 @@ func (s *svc) handleSpacesLock(w http.ResponseWriter, r *http.Request, spaceID s span.SetAttributes(attribute.String("component", "ocdav")) - // build storage space reference ref, err := spacelookup.MakeStorageSpaceReference(spaceID, r.URL.Path) if err != nil { return http.StatusBadRequest, fmt.Errorf("invalid space id") diff --git a/internal/http/services/owncloud/ocdav/propfind/propfind.go b/internal/http/services/owncloud/ocdav/propfind/propfind.go index 768d577dd23..df90d295d48 100644 --- a/internal/http/services/owncloud/ocdav/propfind/propfind.go +++ b/internal/http/services/owncloud/ocdav/propfind/propfind.go @@ -310,7 +310,6 @@ func (p *Handler) HandleSpacesPropfind(w http.ResponseWriter, r *http.Request, s var space *provider.StorageSpace if res.Info.Space == nil { sublog.Debug().Msg("stat did not include a space, executing an additional lookup request") - // TODO look up space? hm can the isShared check even work when stating a space? hm yeah ... well ... *mindblown* // fake a space root space = &provider.StorageSpace{ Id: &provider.StorageSpaceId{OpaqueId: spaceID}, @@ -672,9 +671,6 @@ func (p *Handler) getSpaceResourceInfos(ctx context.Context, w http.ResponseWrit metadataKeys, _ := metadataKeys(pf) - // we need to prefix the path with / to make subsequent prefix matches work - // info.Path = filepath.Join("/", spaceRef.Path) - resourceInfos := []*provider.ResourceInfo{} req := &provider.ListContainerRequest{ diff --git a/internal/http/services/owncloud/ocdav/report.go b/internal/http/services/owncloud/ocdav/report.go index e5657ad87f2..b5ad80a5375 100644 --- a/internal/http/services/owncloud/ocdav/report.go +++ b/internal/http/services/owncloud/ocdav/report.go @@ -110,7 +110,7 @@ func (s *svc) doFilterFiles(w http.ResponseWriter, r *http.Request, ff *reportFi infos = append(infos, statRes.Info) } - responsesXML, err := propfind.MultistatusResponse(ctx, &propfind.XML{Prop: ff.Prop}, infos, s.c.PublicURL, namespace /*"",*/, nil) + responsesXML, err := propfind.MultistatusResponse(ctx, &propfind.XML{Prop: ff.Prop}, infos, s.c.PublicURL, namespace, nil) if err != nil { log.Error().Err(err).Msg("error formatting propfind") w.WriteHeader(http.StatusInternalServerError) diff --git a/internal/http/services/owncloud/ocdav/spacelookup/spacelookup.go b/internal/http/services/owncloud/ocdav/spacelookup/spacelookup.go index 93a8bee8ae2..a7b4afe1329 100644 --- a/internal/http/services/owncloud/ocdav/spacelookup/spacelookup.go +++ b/internal/http/services/owncloud/ocdav/spacelookup/spacelookup.go @@ -99,11 +99,6 @@ func LookUpStorageSpacesForPathWithChildren(ctx context.Context, client gateway. // TODO use ListContainerStream to listen for changes // retrieve a specific storage space lSSReq := &storageProvider.ListStorageSpacesRequest{ - Opaque: &typesv1beta1.Opaque{ - Map: map[string]*typesv1beta1.OpaqueEntry{ - // TODO encode requested metadata as json - // "metadata": {Decoder: "json", Value: []byte("*")}, - }}, // get all fields, including root_info FieldMask: &fieldmaskpb.FieldMask{Paths: []string{"*"}}, } diff --git a/internal/http/services/owncloud/ocdav/versions.go b/internal/http/services/owncloud/ocdav/versions.go index a65529e467f..24e4696ff9e 100644 --- a/internal/http/services/owncloud/ocdav/versions.go +++ b/internal/http/services/owncloud/ocdav/versions.go @@ -189,7 +189,7 @@ func (h *VersionsHandler) doListVersions(w http.ResponseWriter, r *http.Request, infos = append(infos, vi) } - propRes, err := propfind.MultistatusResponse(ctx, &pf, infos, s.c.PublicURL, "" /*"",*/, nil) + propRes, err := propfind.MultistatusResponse(ctx, &pf, infos, s.c.PublicURL, "", nil) if err != nil { sublog.Error().Err(err).Msg("error formatting propfind") w.WriteHeader(http.StatusInternalServerError) diff --git a/pkg/storage/utils/decomposedfs/decomposedfs.go b/pkg/storage/utils/decomposedfs/decomposedfs.go index 372f97f6e91..39a86944329 100644 --- a/pkg/storage/utils/decomposedfs/decomposedfs.go +++ b/pkg/storage/utils/decomposedfs/decomposedfs.go @@ -292,6 +292,7 @@ func (fs *Decomposedfs) CreateDir(ctx context.Context, ref *provider.Reference) if n, err = fs.lu.NodeFromResource(ctx, parentRef); err != nil { return } + // TODO check if user has access to root / space if !n.Exists { return errtypes.PreconditionFailed(parentRef.Path) } diff --git a/pkg/storage/utils/decomposedfs/node/node.go b/pkg/storage/utils/decomposedfs/node/node.go index 328e95d9835..1f3ebb4c35f 100644 --- a/pkg/storage/utils/decomposedfs/node/node.go +++ b/pkg/storage/utils/decomposedfs/node/node.go @@ -201,11 +201,15 @@ func ReadNode(ctx context.Context, lu PathLookup, spaceID, nodeID string, canLis } r.Exists = true + // TODO ReadNode should not check permissions if !canListDisabledSpace && r.IsDisabled() { // no permission = not found return nil, errtypes.NotFound(spaceID) } + // if current user cannot stat the root return not found? + // no for shares the root might be a different resource + // check if this is a space root if spaceID == nodeID { return r, nil diff --git a/pkg/storage/utils/decomposedfs/node/permissions.go b/pkg/storage/utils/decomposedfs/node/permissions.go index 618f23f2744..8dc69a8189a 100644 --- a/pkg/storage/utils/decomposedfs/node/permissions.go +++ b/pkg/storage/utils/decomposedfs/node/permissions.go @@ -181,13 +181,6 @@ func (p *Permissions) HasPermission(ctx context.Context, n *Node, check func(*pr return check(perms), nil } - // determine root - /* - if err = n.FindStorageSpaceRoot(); err != nil { - return false, err - } - */ - // for an efficient group lookup convert the list of groups to a map // groups are just strings ... groupnames ... or group ids ??? AAARGH !!! groupsMap := make(map[string]bool, len(u.Groups)) @@ -207,7 +200,7 @@ func (p *Permissions) HasPermission(ctx context.Context, n *Node, check func(*pr } } - // also check permissions on root, eg. for for project spaces + // also check permissions on root, eg. for project spaces return nodeHasPermission(ctx, cn, groupsMap, u.Id.OpaqueId, check), nil }