cernbox / smashbox

main test suite
GNU Affero General Public License v3.0
22 stars 35 forks source link

missing permission bit for read-access #49

Open moscicki opened 9 years ago

moscicki commented 9 years ago

@dragotin, @ckamm, @DeepDiver1975, @labkode:

There is a missing permission bit to represent Read access. Currently it is assumed that everything visible is readable which is not the case in general with external storage (home directories) where permissions may be handled outside of owncloud. So it could be useful for the sync client to discover if effectively a resource is readable or not (and for example, avoid recursing into such a directory which then would result in an error). You may consider if it would be useful to distinguish between ability to list files and read them (like AFS does it). I am not clear on it.

Ref: https://github.com/owncloud/client/blob/master/doc/architecture.rst#server-side--permissions https://github.com/cernbox/smashbox/blob/master/protocol/protocol.md#list-directory

dragotin commented 9 years ago

But something that is not readable, shouldn't it simply not be visible at all? Both in WebIF and WebDAV?

labkode commented 9 years ago

@moscicki @dragotin I like the fact of having listing permissions and read/download permissions. All storages I know from local filesystems (w bit on dir or r bit on file) to object storages (list a buck or read an object) make clear this separation, so this permission requirement could be managed at the storage level without having to use an external component (DB).

This concept could be extended also for share permissions to create new enterprise workflows. This is somehow related to https://github.com/owncloud/core/issues/4579

This listing/read permissions are similar to the directory listing feature of Apache or Nginx.

moscicki commented 9 years ago

@dragotin: suppose that you mount storage on external server. The read permission there may be removed for a file or subdirectory, yet the parent directory listing comes with this file listed. Doesn't it?