grupoarc / grouphug

Decentralized activity streams and more
Other
1 stars 0 forks source link

ACL Design #28

Open pjz opened 8 years ago

pjz commented 8 years ago

ACLs need to be designed. So far the only ACL we have is global, and works like this:

Which isn't exactly fine grained, nor user centric. So, some questions:

pjz commented 8 years ago

_group_ is not particularly humane. /group/<groupname> is fine.

Rooms are fully versioned, so their metadata is/should be too.

Use a meta key on the Room object. Then we can use meteor-autoform as an editor.

pjz commented 8 years ago

URL for metadata? /room/<roomname>/meta ? /meta/<roomname> ? ?section=meta ?

jbone commented 8 years ago

I like the first.

A “thing” (room…?) should have a list of owners. It can be a mixed list of users and groups. An owner can edit metadata. Thoughts?

jb

On Sep 30, 2015, at 11:07 AM, Paul Jimenez notifications@github.com wrote:

URL for metadata? /room//meta ? /meta/ ? ?section=meta ?

— Reply to this email directly or view it on GitHub.

pjz commented 8 years ago

/room/<roomname>/meta is fine, though it precludes later allowing slashes into room names (which may be fine, just something to be aware of).

I agree that permissions should be applicable to a mixed list of users and groups. I'm not sure a simple 'owner' permission model is enough, though. There's now two pieces: the room and the metadata. If the room is the fundamental unit, then there's read/write/delete/revert on the room. Metadata then would also have read/write perms.

Maybe:

meta: {
    perms: {
        room: [ "All:read", "authors:write", "janitors:write,delete,revert" ],
        meta: [ "admins,PJ:read,write", "auditors:read" ]
    }
}
pjz commented 8 years ago

Autoforms look kind of heavyweight, as they require attaching a schema to an entire Collection. json-editor looks a lot more adaptable.

pjz commented 8 years ago

Metadata editing works as of https://github.com/grupoarc/grouphug/commit/946983508c7b643338d91fb00ed578360387ec07

pjz commented 8 years ago

Parts left to do:

pjz commented 8 years ago

Does /groups/* have history?

pjz commented 8 years ago

As discussed, /groups/groupname will be a shortcut (internal 'redirect') for /room/__group__groupname, that will provide easier access.