{"action":"created","comment":{"url":"https://api.github.com/repos/mozilla-services/cliquet/pulls/comments/34023318","id":34023318,"diff_hunk":"@@ -79,6 +79,23 @@ def object_permission_principals(self, object_id, permission):\n         return self._decode_set(members)\n \n     @wrap_redis_error\n+    def principals_accessible_objects(self, principals, permission,","path":"cliquet/permission/redis.py","position":4,"original_position":4,"commit_id":"f72251a045fd4c8b71b5c6056f48e1f35d95fc81","original_commit_id":"f72251a045fd4c8b71b5c6056f48e1f35d95fc81","user":{"login":"Natim","id":229453,"avatar_url":"https://avatars.githubusercontent.com/u/229453?v=3","gravatar_id":"","url":"https://api.github.com/users/Natim","html_url":"https://github.com/Natim","followers_url":"https://api.github.com/users/Natim/followers","following_url":"https://api.github.com/users/Natim/following{/other_user}","gists_url":"https://api.github.com/users/Natim/gists{/gist_id}","starred_url":"https://api.github.com/users/Natim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Natim/subscriptions","organizations_url":"https://api.github.com/users/Natim/orgs","repos_url":"https://api.github.com/users/Natim/repos","events_url":"https://api.github.com/users/Natim/events{/privacy}","received_events_url":"https://api.github.com/users/Natim/received_events","type":"User","site_admin":false},"body":"We should also pass the ``get_bound_permissions=None`` callback to get the permission inheritance.","created_at":"2015-07-07T09:42:30Z","updated_at":"2015-07-07T09:42:30Z","html_url":"https://github.com/mozilla-services/cliquet/pull/355#discussion_r34023318","pull_request_url":"https://api.github.com/repos/mozilla-services/cliquet/pulls/355","_links":{"self":{"href":"https://api.github.com/repos/mozilla-services/cliquet/pulls/comments/34023318"},"html":{"href":"https://github.com/mozilla-services/cliquet/pull/355#discussion_r34023318"},"pull_request":{"href":"https://api.github.com/repos/mozilla-services/cliquet/pulls/355"}}},"pull_request":{"url":"https://api.github.com/repos/mozilla-services/cliquet/pulls/355","id":39206338,"html_url":"https://github.com/mozilla-services/cliquet/pull/355","diff_url":"https://github.com/mozilla-services/cliquet/pull/355.diff","patch_url":"https://github.com/mozilla-services/cliquet/pull/355.patch","issue_url":"https://api.github.com/repos/mozilla-services/cliquet/issues/355","number":355,"state":"open","locked":false,"title":"[WIP] Filter collection records for guests (ref #354)","user":{"login":"leplatrem","id":546692,"avatar_url":"https://avatars.githubusercontent.com/u/546692?v=3","gravatar_id":"","url":"https://api.github.com/users/leplatrem","html_url":"https://github.com/leplatrem","followers_url":"https://api.github.com/users/leplatrem/followers","following_url":"https://api.github.com/users/leplatrem/following{/other_user}","gists_url":"https://api.github.com/users/leplatrem/gists{/gist_id}","starred_url":"https://api.github.com/users/leplatrem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leplatrem/subscriptions","organizations_url":"https://api.github.com/users/leplatrem/orgs","repos_url":"https://api.github.com/users/leplatrem/repos","events_url":"https://api.github.com/users/leplatrem/events{/privacy}","received_events_url":"https://api.github.com/users/leplatrem/received_events","type":"User","site_admin":false},"body":"I decided to follow the first strategy described in #354. Even though the one I prefer is the number 5. But for me hacking some code is a good way to start thinking about it.\r\n\r\n* [x] Add a IN filter in storage\r\n* [x] Query the permissions backend to obtain the list of object ids\r\n* [x] Add some hack in authorization to let guest list the collections\r\n* [ ] Make sure normal resources are not affected (**currently open door**), should be only ProtectedResources\r\n* [x] Filter by permissions (by collection name)\r\n* [ ] Think about parent_id etc.\r\n* [ ] Add some functional tests to make sure use cases described in #354 are covered\r\n\r\nI take reviews for:\r\n* vetos against this strategy (*i.e. give the feature but does not scale*)\r\n* alternative solutions in the authorization code :)\r\n","created_at":"2015-07-04T11:02:51Z","updated_at":"2015-07-07T09:42:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2c7c155dd1afff8e82013af62f4488361c44665c","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mozilla-services/cliquet/pulls/355/commits","review_comments_url":"https://api.github.com/repos/mozilla-services/cliquet/pulls/355/comments","review_comment_url":"https://api.github.com/repos/mozilla-services/cliquet/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mozilla-services/cliquet/issues/355/comments","statuses_url":"https://api.github.com/repos/mozilla-services/cliquet/statuses/f72251a045fd4c8b71b5c6056f48e1f35d95fc81","head":{"label":"mozilla-services:354-filter-collection","ref":"354-filter-collection","sha":"f72251a045fd4c8b71b5c6056f48e1f35d95fc81","user":{"login":"mozilla-services","id":1066228,"avatar_url":"https://avatars.githubusercontent.com/u/1066228?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla-services","html_url":"https://github.com/mozilla-services","followers_url":"https://api.github.com/users/mozilla-services/followers","following_url":"https://api.github.com/users/mozilla-services/following{/other_user}","gists_url":"https://api.github.com/users/mozilla-services/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla-services/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla-services/subscriptions","organizations_url":"https://api.github.com/users/mozilla-services/orgs","repos_url":"https://api.github.com/users/mozilla-services/repos","events_url":"https://api.github.com/users/mozilla-services/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla-services/received_events","type":"Organization","site_admin":false},"repo":{"id":30921526,"name":"cliquet","full_name":"mozilla-services/cliquet","owner":{"login":"mozilla-services","id":1066228,"avatar_url":"https://avatars.githubusercontent.com/u/1066228?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla-services","html_url":"https://github.com/mozilla-services","followers_url":"https://api.github.com/users/mozilla-services/followers","following_url":"https://api.github.com/users/mozilla-services/following{/other_user}","gists_url":"https://api.github.com/users/mozilla-services/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla-services/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla-services/subscriptions","organizations_url":"https://api.github.com/users/mozilla-services/orgs","repos_url":"https://api.github.com/users/mozilla-services/repos","events_url":"https://api.github.com/users/mozilla-services/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla-services/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mozilla-services/cliquet","description":"micro services API toolkit","fork":false,"url":"https://api.github.com/repos/mozilla-services/cliquet","forks_url":"https://api.github.com/repos/mozilla-services/cliquet/forks","keys_url":"https://api.github.com/repos/mozilla-services/cliquet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mozilla-services/cliquet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mozilla-services/cliquet/teams","hooks_url":"https://api.github.com/repos/mozilla-services/cliquet/hooks","issue_events_url":"https://api.github.com/repos/mozilla-services/cliquet/issues/events{/number}","events_url":"https://api.github.com/repos/mozilla-services/cliquet/events","assignees_url":"https://api.github.com/repos/mozilla-services/cliquet/assignees{/user}","branches_url":"https://api.github.com/repos/mozilla-services/cliquet/branches{/branch}","tags_url":"https://api.github.com/repos/mozilla-services/cliquet/tags","blobs_url":"https://api.github.com/repos/mozilla-services/cliquet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mozilla-services/cliquet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mozilla-services/cliquet/git/refs{/sha}","trees_url":"https://api.github.com/repos/mozilla-services/cliquet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mozilla-services/cliquet/statuses/{sha}","languages_url":"https://api.github.com/repos/mozilla-services/cliquet/languages","stargazers_url":"https://api.github.com/repos/mozilla-services/cliquet/stargazers","contributors_url":"https://api.github.com/repos/mozilla-services/cliquet/contributors","subscribers_url":"https://api.github.com/repos/mozilla-services/cliquet/subscribers","subscription_url":"https://api.github.com/repos/mozilla-services/cliquet/subscription","commits_url":"https://api.github.com/repos/mozilla-services/cliquet/commits{/sha}","git_commits_url":"https://api.github.com/repos/mozilla-services/cliquet/git/commits{/sha}","comments_url":"https://api.github.com/repos/mozilla-services/cliquet/comments{/number}","issue_comment_url":"https://api.github.com/repos/mozilla-services/cliquet/issues/comments{/number}","contents_url":"https://api.github.com/repos/mozilla-services/cliquet/contents/{+path}","compare_url":"https://api.github.com/repos/mozilla-services/cliquet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mozilla-services/cliquet/merges","archive_url":"https://api.github.com/repos/mozilla-services/cliquet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mozilla-services/cliquet/downloads","issues_url":"https://api.github.com/repos/mozilla-services/cliquet/issues{/number}","pulls_url":"https://api.github.com/repos/mozilla-services/cliquet/pulls{/number}","milestones_url":"https://api.github.com/repos/mozilla-services/cliquet/milestones{/number}","notifications_url":"https://api.github.com/repos/mozilla-services/cliquet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mozilla-services/cliquet/labels{/name}","releases_url":"https://api.github.com/repos/mozilla-services/cliquet/releases{/id}","created_at":"2015-02-17T14:53:58Z","updated_at":"2015-07-02T11:05:05Z","pushed_at":"2015-07-06T14:44:53Z","git_url":"git://github.com/mozilla-services/cliquet.git","ssh_url":"git@github.com:mozilla-services/cliquet.git","clone_url":"https://github.com/mozilla-services/cliquet.git","svn_url":"https://github.com/mozilla-services/cliquet","homepage":"http://cliquet.readthedocs.org","size":6323,"stargazers_count":11,"watchers_count":11,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"open_issues_count":50,"forks":9,"open_issues":50,"watchers":11,"default_branch":"master"}},"base":{"label":"mozilla-services:master","ref":"master","sha":"eb15054660534ea6fad4c215665ff6469bab4c8a","user":{"login":"mozilla-services","id":1066228,"avatar_url":"https://avatars.githubusercontent.com/u/1066228?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla-services","html_url":"https://github.com/mozilla-services","followers_url":"https://api.github.com/users/mozilla-services/followers","following_url":"https://api.github.com/users/mozilla-services/following{/other_user}","gists_url":"https://api.github.com/users/mozilla-services/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla-services/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla-services/subscriptions","organizations_url":"https://api.github.com/users/mozilla-services/orgs","repos_url":"https://api.github.com/users/mozilla-services/repos","events_url":"https://api.github.com/users/mozilla-services/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla-services/received_events","type":"Organization","site_admin":false},"repo":{"id":30921526,"name":"cliquet","full_name":"mozilla-services/cliquet","owner":{"login":"mozilla-services","id":1066228,"avatar_url":"https://avatars.githubusercontent.com/u/1066228?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla-services","html_url":"https://github.com/mozilla-services","followers_url":"https://api.github.com/users/mozilla-services/followers","following_url":"https://api.github.com/users/mozilla-services/following{/other_user}","gists_url":"https://api.github.com/users/mozilla-services/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla-services/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla-services/subscriptions","organizations_url":"https://api.github.com/users/mozilla-services/orgs","repos_url":"https://api.github.com/users/mozilla-services/repos","events_url":"https://api.github.com/users/mozilla-services/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla-services/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mozilla-services/cliquet","description":"micro services API toolkit","fork":false,"url":"https://api.github.com/repos/mozilla-services/cliquet","forks_url":"https://api.github.com/repos/mozilla-services/cliquet/forks","keys_url":"https://api.github.com/repos/mozilla-services/cliquet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mozilla-services/cliquet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mozilla-services/cliquet/teams","hooks_url":"https://api.github.com/repos/mozilla-services/cliquet/hooks","issue_events_url":"https://api.github.com/repos/mozilla-services/cliquet/issues/events{/number}","events_url":"https://api.github.com/repos/mozilla-services/cliquet/events","assignees_url":"https://api.github.com/repos/mozilla-services/cliquet/assignees{/user}","branches_url":"https://api.github.com/repos/mozilla-services/cliquet/branches{/branch}","tags_url":"https://api.github.com/repos/mozilla-services/cliquet/tags","blobs_url":"https://api.github.com/repos/mozilla-services/cliquet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mozilla-services/cliquet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mozilla-services/cliquet/git/refs{/sha}","trees_url":"https://api.github.com/repos/mozilla-services/cliquet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mozilla-services/cliquet/statuses/{sha}","languages_url":"https://api.github.com/repos/mozilla-services/cliquet/languages","stargazers_url":"https://api.github.com/repos/mozilla-services/cliquet/stargazers","contributors_url":"https://api.github.com/repos/mozilla-services/cliquet/contributors","subscribers_url":"https://api.github.com/repos/mozilla-services/cliquet/subscribers","subscription_url":"https://api.github.com/repos/mozilla-services/cliquet/subscription","commits_url":"https://api.github.com/repos/mozilla-services/cliquet/commits{/sha}","git_commits_url":"https://api.github.com/repos/mozilla-services/cliquet/git/commits{/sha}","comments_url":"https://api.github.com/repos/mozilla-services/cliquet/comments{/number}","issue_comment_url":"https://api.github.com/repos/mozilla-services/cliquet/issues/comments{/number}","contents_url":"https://api.github.com/repos/mozilla-services/cliquet/contents/{+path}","compare_url":"https://api.github.com/repos/mozilla-services/cliquet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mozilla-services/cliquet/merges","archive_url":"https://api.github.com/repos/mozilla-services/cliquet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mozilla-services/cliquet/downloads","issues_url":"https://api.github.com/repos/mozilla-services/cliquet/issues{/number}","pulls_url":"https://api.github.com/repos/mozilla-services/cliquet/pulls{/number}","milestones_url":"https://api.github.com/repos/mozilla-services/cliquet/milestones{/number}","notifications_url":"https://api.github.com/repos/mozilla-services/cliquet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mozilla-services/cliquet/labels{/name}","releases_url":"https://api.github.com/repos/mozilla-services/cliquet/releases{/id}","created_at":"2015-02-17T14:53:58Z","updated_at":"2015-07-02T11:05:05Z","pushed_at":"2015-07-06T14:44:53Z","git_url":"git://github.com/mozilla-services/cliquet.git","ssh_url":"git@github.com:mozilla-services/cliquet.git","clone_url":"https://github.com/mozilla-services/cliquet.git","svn_url":"https://github.com/mozilla-services/cliquet","homepage":"http://cliquet.readthedocs.org","size":6323,"stargazers_count":11,"watchers_count":11,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"open_issues_count":50,"forks":9,"open_issues":50,"watchers":11,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mozilla-services/cliquet/pulls/355"},"html":{"href":"https://github.com/mozilla-services/cliquet/pull/355"},"issue":{"href":"https://api.github.com/repos/mozilla-services/cliquet/issues/355"},"comments":{"href":"https://api.github.com/repos/mozilla-services/cliquet/issues/355/comments"},"review_comments":{"href":"https://api.github.com/repos/mozilla-services/cliquet/pulls/355/comments"},"review_comment":{"href":"https://api.github.com/repos/mozilla-services/cliquet/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mozilla-services/cliquet/pulls/355/commits"},"statuses":{"href":"https://api.github.com/repos/mozilla-services/cliquet/statuses/f72251a045fd4c8b71b5c6056f48e1f35d95fc81"}}}}