{"action":"created","issue":{"url":"https://api.github.com/repos/owncloud/customgroups/issues/3","repository_url":"https://api.github.com/repos/owncloud/customgroups","labels_url":"https://api.github.com/repos/owncloud/customgroups/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/owncloud/customgroups/issues/3/comments","events_url":"https://api.github.com/repos/owncloud/customgroups/issues/3/events","html_url":"https://github.com/owncloud/customgroups/issues/3","id":193303790,"number":3,"title":"Webdav API for groups management","user":{"login":"PVince81","id":277525,"avatar_url":"https://avatars.githubusercontent.com/u/277525?v=3","gravatar_id":"","url":"https://api.github.com/users/PVince81","html_url":"https://github.com/PVince81","followers_url":"https://api.github.com/users/PVince81/followers","following_url":"https://api.github.com/users/PVince81/following{/other_user}","gists_url":"https://api.github.com/users/PVince81/gists{/gist_id}","starred_url":"https://api.github.com/users/PVince81/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PVince81/subscriptions","organizations_url":"https://api.github.com/users/PVince81/orgs","repos_url":"https://api.github.com/users/PVince81/repos","events_url":"https://api.github.com/users/PVince81/events{/privacy}","received_events_url":"https://api.github.com/users/PVince81/received_events","type":"User","site_admin":false},"labels":[{"id":490944891,"url":"https://api.github.com/repos/owncloud/customgroups/labels/enhancement","name":"enhancement","color":"02e10c","default":true}],"state":"open","locked":false,"assignee":{"login":"PVince81","id":277525,"avatar_url":"https://avatars.githubusercontent.com/u/277525?v=3","gravatar_id":"","url":"https://api.github.com/users/PVince81","html_url":"https://github.com/PVince81","followers_url":"https://api.github.com/users/PVince81/followers","following_url":"https://api.github.com/users/PVince81/following{/other_user}","gists_url":"https://api.github.com/users/PVince81/gists{/gist_id}","starred_url":"https://api.github.com/users/PVince81/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PVince81/subscriptions","organizations_url":"https://api.github.com/users/PVince81/orgs","repos_url":"https://api.github.com/users/PVince81/repos","events_url":"https://api.github.com/users/PVince81/events{/privacy}","received_events_url":"https://api.github.com/users/PVince81/received_events","type":"User","site_admin":false},"assignees":[{"login":"PVince81","id":277525,"avatar_url":"https://avatars.githubusercontent.com/u/277525?v=3","gravatar_id":"","url":"https://api.github.com/users/PVince81","html_url":"https://github.com/PVince81","followers_url":"https://api.github.com/users/PVince81/followers","following_url":"https://api.github.com/users/PVince81/following{/other_user}","gists_url":"https://api.github.com/users/PVince81/gists{/gist_id}","starred_url":"https://api.github.com/users/PVince81/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PVince81/subscriptions","organizations_url":"https://api.github.com/users/PVince81/orgs","repos_url":"https://api.github.com/users/PVince81/repos","events_url":"https://api.github.com/users/PVince81/events{/privacy}","received_events_url":"https://api.github.com/users/PVince81/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/owncloud/customgroups/milestones/1","html_url":"https://github.com/owncloud/customgroups/milestone/1","labels_url":"https://api.github.com/repos/owncloud/customgroups/milestones/1/labels","id":2163982,"number":1,"title":"10.0","description":"","creator":{"login":"PVince81","id":277525,"avatar_url":"https://avatars.githubusercontent.com/u/277525?v=3","gravatar_id":"","url":"https://api.github.com/users/PVince81","html_url":"https://github.com/PVince81","followers_url":"https://api.github.com/users/PVince81/followers","following_url":"https://api.github.com/users/PVince81/following{/other_user}","gists_url":"https://api.github.com/users/PVince81/gists{/gist_id}","starred_url":"https://api.github.com/users/PVince81/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PVince81/subscriptions","organizations_url":"https://api.github.com/users/PVince81/orgs","repos_url":"https://api.github.com/users/PVince81/repos","events_url":"https://api.github.com/users/PVince81/events{/privacy}","received_events_url":"https://api.github.com/users/PVince81/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":4,"state":"open","created_at":"2016-11-29T16:02:59Z","updated_at":"2016-12-14T11:57:20Z","due_on":null,"closed_at":null},"comments":15,"created_at":"2016-12-03T17:52:41Z","updated_at":"2016-12-15T15:07:44Z","closed_at":null,"body":"- [x] custom groups\r\n    - [x] list groups PROPFIND http://localhost/owncloud/remote.php/dav/customgroups/`CustomGroupsCollection`\r\n        - [x] child node `CustomGroupNode`, name is the custom group URI\r\n        - [x] property `oc:display-name`: group display name\r\n    - [x] rename custom group: PROPPATCH oc:display-name on http://localhost/owncloud/remote.php/dav/customgroups/$customGroupUri\r\n        - [x] only group admin can rename\r\n    - [x] delete group: DELETE http://localhost/owncloud/remote.php/dav/customgroups/$customGroupUri\r\n        - [x] only group admin can delete\r\n    - [x] create group: MKCOL http://localhost/owncloud/remote.php/dav/customgroups/$customGroupUri\r\n        - [x] throws MethodNotAllowed if already exists\r\n        - [x] creator automatically becomes group admin and member\r\n- [x] memberships:\r\n    - [x] list members PROPFIND http://localhost/owncloud/remote.php/dav/customgroups/$numericGroupId/\r\n        - [x] child node \"CustomGroupMember\" name is user id\r\n        - [x] property `oc:is-admin` whether this member is also a group admin\r\n        - ~~property `oc:display-name` is user's display name, for convenience~~ => would need a PHP-level join anyway...\r\n        - [x] only members can list members, others get 403 when listing collection contents\r\n    - [x] add member: PUT http://localhost/owncloud/remote.php/dav/customgroups/$numericGroupId/$userId\r\n        - [x] only group admin can add members\r\n    - [x] remove member: DELETE http://localhost/owncloud/remote.php/dav/customgroups/$customGroupUri/$userId\r\n        - [x] only group admin can remove members\r\n        - [x] group admin cannot remove self if no other admin exists in the group\r\n        - [x] a group member can remove themselves with the same API call to leave the group\r\n    - [x] change admin role of a member: PROPPATCH http://localhost/owncloud/remote.php/dav/customgroups/$customGroupUri/$userId of the `oc:is-admin` property\r\n- [x] list group memberships of a given user: REPORT http://localhost/owncloud/remote.php/dav/customgroups/ with `oc:user-id` set to the user id (`CustomGroupsPlugin`)\r\n    - [ ] child node is `CustomGroupNode`\r\n- [x] list group admins of a given user: REPORT http://localhost/owncloud/remote.php/dav/customgroups/ with `oc:owner` set to the user id and `oc:can-admin` set to 1 (`CustomGroupsPlugin`)\r\n    - [ ] child node is `CustomGroupNode`\r\n- [ ] regular admins can do the same as group admins\r\n\r\n@DeepDiver1975 feedback welcome\r\n"},"comment":{"url":"https://api.github.com/repos/owncloud/customgroups/issues/comments/267350350","html_url":"https://github.com/owncloud/customgroups/issues/3#issuecomment-267350350","issue_url":"https://api.github.com/repos/owncloud/customgroups/issues/3","id":267350350,"user":{"login":"PVince81","id":277525,"avatar_url":"https://avatars.githubusercontent.com/u/277525?v=3","gravatar_id":"","url":"https://api.github.com/users/PVince81","html_url":"https://github.com/PVince81","followers_url":"https://api.github.com/users/PVince81/followers","following_url":"https://api.github.com/users/PVince81/following{/other_user}","gists_url":"https://api.github.com/users/PVince81/gists{/gist_id}","starred_url":"https://api.github.com/users/PVince81/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PVince81/subscriptions","organizations_url":"https://api.github.com/users/PVince81/orgs","repos_url":"https://api.github.com/users/PVince81/repos","events_url":"https://api.github.com/users/PVince81/events{/privacy}","received_events_url":"https://api.github.com/users/PVince81/received_events","type":"User","site_admin":false},"created_at":"2016-12-15T15:07:44Z","updated_at":"2016-12-15T15:07:44Z","body":"- [ ] introduce new level for \"users\" and \"groups\"\r\n- [ ] pagination with REPORT"}}
{"actor":{"display_login":"PVince81"}}