From 8f5b2883dc3b6997bfced4cac05fa10de251028c Mon Sep 17 00:00:00 2001 From: Ishank Arora Date: Fri, 15 Jan 2021 17:19:07 +0100 Subject: [PATCH] Minor fixes --- pkg/eosclient/eosbinary/eosbinary.go | 1 - pkg/storage/utils/eosfs/eosfs.go | 25 ++++++++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/pkg/eosclient/eosbinary/eosbinary.go b/pkg/eosclient/eosbinary/eosbinary.go index 121f8ce95dc..44cba878e07 100644 --- a/pkg/eosclient/eosbinary/eosbinary.go +++ b/pkg/eosclient/eosbinary/eosbinary.go @@ -830,7 +830,6 @@ func (c *Client) parseFileInfo(raw string) (*eosclient.FileInfo, error) { } } } - fi, err := c.mapToFileInfo(kv) if err != nil { return nil, err diff --git a/pkg/storage/utils/eosfs/eosfs.go b/pkg/storage/utils/eosfs/eosfs.go index 7ecfc2f4248..8c585e9450f 100644 --- a/pkg/storage/utils/eosfs/eosfs.go +++ b/pkg/storage/utils/eosfs/eosfs.go @@ -805,7 +805,7 @@ func (fs *eosfs) createShadowHome(ctx context.Context) error { shadowFolders := []string{fs.conf.ShareFolder} for _, sf := range shadowFolders { - err = fs.c.CreateDir(ctx, uid, gid, path.Join(home, sf)) + err = fs.createUserDir(ctx, u, path.Join(home, sf)) if err != nil { return err } @@ -1312,14 +1312,14 @@ func (fs *eosfs) convertToFileReference(ctx context.Context, eosFileInfo *eoscli // permissionSet returns the permission set for the current user func (fs *eosfs) permissionSet(ctx context.Context, eosFileInfo *eosclient.FileInfo, owner *userpb.UserId) *provider.ResourcePermissions { - u, ok := user.ContextGetUserID(ctx) - if !ok { + u, ok := user.ContextGetUser(ctx) + if !ok || owner == nil || u.Id == nil { return &provider.ResourcePermissions{ // no permissions } } - if u.OpaqueId == owner.OpaqueId && u.Idp == owner.Idp { + if u.Id.OpaqueId == owner.OpaqueId && u.Id.Idp == owner.Idp { return &provider.ResourcePermissions{ // owner has all permissions AddGrant: true, @@ -1343,10 +1343,17 @@ func (fs *eosfs) permissionSet(ctx context.Context, eosFileInfo *eosclient.FileI } } + uid, gid, err := fs.getUserUIDAndGID(ctx, u) + if err != nil { + return &provider.ResourcePermissions{ + // no permissions + } + } + var perm string - var rp *provider.ResourcePermissions + var rp provider.ResourcePermissions for _, e := range eosFileInfo.SysACL.Entries { - if e.Qualifier == u.OpaqueId { + if e.Qualifier == uid || e.Qualifier == gid { perm = e.Permissions } } @@ -1391,7 +1398,7 @@ func (fs *eosfs) permissionSet(ctx context.Context, eosFileInfo *eosclient.FileI rp.GetQuota = true } - return rp + return &rp } func (fs *eosfs) convert(ctx context.Context, eosFileInfo *eosclient.FileInfo) (*provider.ResourceInfo, error) { @@ -1407,8 +1414,8 @@ func (fs *eosfs) convert(ctx context.Context, eosFileInfo *eosclient.FileInfo) ( owner, err := fs.getUserIDGateway(ctx, strconv.FormatUint(eosFileInfo.UID, 10)) if err != nil { - log := appctx.GetLogger(ctx) - log.Warn().Uint64("uid", eosFileInfo.UID).Msg("could not lookup userid, leaving empty") + sublog := appctx.GetLogger(ctx).With().Logger() + sublog.Warn().Uint64("uid", eosFileInfo.UID).Msg("could not lookup userid, leaving empty") owner = &userpb.UserId{} }