diff --git a/server/irods.go b/server/irods.go index 0145c27..a50e33f 100644 --- a/server/irods.go +++ b/server/irods.go @@ -27,7 +27,6 @@ import ( ifs "github.com/cyverse/go-irodsclient/fs" "github.com/cyverse/go-irodsclient/icommands" "github.com/cyverse/go-irodsclient/irods/types" - "github.com/cyverse/go-irodsclient/irods/util" "github.com/rs/zerolog" ) @@ -196,14 +195,10 @@ func NewIRODSAccount(logger zerolog.Logger, func isReadableByUser(logger zerolog.Logger, filesystem *ifs.FileSystem, userZone string, userName string, rodsPath string) (_ bool, err error) { var acl []*types.IRODSAccess - var pathZone string if acl, err = filesystem.ListACLs(rodsPath); err != nil { return false, err } - if pathZone, err = util.GetIRODSZone(rodsPath); err != nil { - return false, err - } for _, ac := range acl { // ACL user zone may be empty if it refers to the local zone @@ -214,9 +209,10 @@ func isReadableByUser(logger zerolog.Logger, filesystem *ifs.FileSystem, effectiveUserZone = userZone } - if effectiveUserZone == pathZone && + if effectiveUserZone == userZone && ac.UserName == userName && - ac.AccessLevel == types.IRODSAccessLevelReadObject { + ( ac.AccessLevel == types.IRODSAccessLevelReadObject || + ac.AccessLevel == types.IRODSAccessLevelOwner ) { logger.Trace(). Str("path", rodsPath). Str("user", userName).