Skip to content

Commit

Permalink
Merge permissions in EOS in case of access through multiple shares
Browse files Browse the repository at this point in the history
  • Loading branch information
ishank011 committed May 6, 2021
1 parent 3b7fcc8 commit 5cd7b71
Showing 1 changed file with 24 additions and 3 deletions.
27 changes: 24 additions & 3 deletions pkg/storage/utils/eosfs/eosfs.go
Original file line number Diff line number Diff line change
Expand Up @@ -1395,14 +1395,35 @@ func (fs *eosfs) permissionSet(ctx context.Context, eosFileInfo *eosclient.FileI
}
}

var perm string
var perm *provider.ResourcePermissions
for _, e := range eosFileInfo.SysACL.Entries {
if e.Qualifier == uid || e.Qualifier == gid {
perm = e.Permissions
mergePermissions(perm, grants.GetGrantPermissionSet(e.Permissions, eosFileInfo.IsDir))
}
}

return grants.GetGrantPermissionSet(perm, eosFileInfo.IsDir)
return perm
}

func mergePermissions(l *provider.ResourcePermissions, r *provider.ResourcePermissions) {
l.AddGrant = l.AddGrant || r.AddGrant
l.CreateContainer = l.CreateContainer || r.CreateContainer
l.Delete = l.Delete || r.Delete
l.GetPath = l.GetPath || r.GetPath
l.GetQuota = l.GetQuota || r.GetQuota
l.InitiateFileDownload = l.InitiateFileDownload || r.InitiateFileDownload
l.InitiateFileUpload = l.InitiateFileUpload || r.InitiateFileUpload
l.ListContainer = l.ListContainer || r.ListContainer
l.ListFileVersions = l.ListFileVersions || r.ListFileVersions
l.ListGrants = l.ListGrants || r.ListGrants
l.ListRecycle = l.ListRecycle || r.ListRecycle
l.Move = l.Move || r.Move
l.PurgeRecycle = l.PurgeRecycle || r.PurgeRecycle
l.RemoveGrant = l.RemoveGrant || r.RemoveGrant
l.RestoreFileVersion = l.RestoreFileVersion || r.RestoreFileVersion
l.RestoreRecycleItem = l.RestoreRecycleItem || r.RestoreRecycleItem
l.Stat = l.Stat || r.Stat
l.UpdateGrant = l.UpdateGrant || r.UpdateGrant
}

func (fs *eosfs) convert(ctx context.Context, eosFileInfo *eosclient.FileInfo, virtualView bool) (*provider.ResourceInfo, error) {
Expand Down

0 comments on commit 5cd7b71

Please sign in to comment.