{"action":"created","issue":{"url":"https://api.github.com/repos/ManageIQ/manageiq/issues/15276","repository_url":"https://api.github.com/repos/ManageIQ/manageiq","labels_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/15276/labels{/name}","comments_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/15276/comments","events_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/15276/events","html_url":"https://github.com/ManageIQ/manageiq/pull/15276","id":232970807,"number":15276,"title":"[WIP] [POC] Share Sweeping (do not merge)","user":{"login":"imtayadeway","id":1710874,"avatar_url":"https://avatars1.githubusercontent.com/u/1710874?v=3","gravatar_id":"","url":"https://api.github.com/users/imtayadeway","html_url":"https://github.com/imtayadeway","followers_url":"https://api.github.com/users/imtayadeway/followers","following_url":"https://api.github.com/users/imtayadeway/following{/other_user}","gists_url":"https://api.github.com/users/imtayadeway/gists{/gist_id}","starred_url":"https://api.github.com/users/imtayadeway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imtayadeway/subscriptions","organizations_url":"https://api.github.com/users/imtayadeway/orgs","repos_url":"https://api.github.com/users/imtayadeway/repos","events_url":"https://api.github.com/users/imtayadeway/events{/privacy}","received_events_url":"https://api.github.com/users/imtayadeway/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"gtanzillo","id":76593,"avatar_url":"https://avatars0.githubusercontent.com/u/76593?v=3","gravatar_id":"","url":"https://api.github.com/users/gtanzillo","html_url":"https://github.com/gtanzillo","followers_url":"https://api.github.com/users/gtanzillo/followers","following_url":"https://api.github.com/users/gtanzillo/following{/other_user}","gists_url":"https://api.github.com/users/gtanzillo/gists{/gist_id}","starred_url":"https://api.github.com/users/gtanzillo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gtanzillo/subscriptions","organizations_url":"https://api.github.com/users/gtanzillo/orgs","repos_url":"https://api.github.com/users/gtanzillo/repos","events_url":"https://api.github.com/users/gtanzillo/events{/privacy}","received_events_url":"https://api.github.com/users/gtanzillo/received_events","type":"User","site_admin":false},"assignees":[{"login":"gtanzillo","id":76593,"avatar_url":"https://avatars0.githubusercontent.com/u/76593?v=3","gravatar_id":"","url":"https://api.github.com/users/gtanzillo","html_url":"https://github.com/gtanzillo","followers_url":"https://api.github.com/users/gtanzillo/followers","following_url":"https://api.github.com/users/gtanzillo/following{/other_user}","gists_url":"https://api.github.com/users/gtanzillo/gists{/gist_id}","starred_url":"https://api.github.com/users/gtanzillo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gtanzillo/subscriptions","organizations_url":"https://api.github.com/users/gtanzillo/orgs","repos_url":"https://api.github.com/users/gtanzillo/repos","events_url":"https://api.github.com/users/gtanzillo/events{/privacy}","received_events_url":"https://api.github.com/users/gtanzillo/received_events","type":"User","site_admin":false}],"milestone":null,"comments":3,"created_at":"2017-06-01T18:35:43Z","updated_at":"2017-06-01T18:53:26Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ManageIQ/manageiq/pulls/15276","html_url":"https://github.com/ManageIQ/manageiq/pull/15276","diff_url":"https://github.com/ManageIQ/manageiq/pull/15276.diff","patch_url":"https://github.com/ManageIQ/manageiq/pull/15276.patch"},"body":"Currently we are faced with having to validate all shares on retrieval. Ideally shares would become destroyed/disabled when they become invalid. Implementing this will be a difficult task, owing to the sheer number of different ways that a share can become invalidated.\r\n\r\nHere I've begun to go down the dark path of implementing a callback-based solution - triggering a sweeper to run any time an object or relationship that might affect RBAC changes. I don't especially love this approach because:\r\n\r\n1. It's hard to reason about\r\n2. It's hard to test\r\n3. Callbacks can be circumvented if you use the wrong methods\r\n\r\nBut I thought I'd open this PR to aid discussion.\r\n\r\n/cc @gtanzillo @chrisarcand @jrafanie \r\n@miq-bot assign @gtanzillo "},"comment":{"url":"https://api.github.com/repos/ManageIQ/manageiq/issues/comments/305586221","html_url":"https://github.com/ManageIQ/manageiq/pull/15276#issuecomment-305586221","issue_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/15276","id":305586221,"user":{"login":"Fryguy","id":52120,"avatar_url":"https://avatars0.githubusercontent.com/u/52120?v=3","gravatar_id":"","url":"https://api.github.com/users/Fryguy","html_url":"https://github.com/Fryguy","followers_url":"https://api.github.com/users/Fryguy/followers","following_url":"https://api.github.com/users/Fryguy/following{/other_user}","gists_url":"https://api.github.com/users/Fryguy/gists{/gist_id}","starred_url":"https://api.github.com/users/Fryguy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Fryguy/subscriptions","organizations_url":"https://api.github.com/users/Fryguy/orgs","repos_url":"https://api.github.com/users/Fryguy/repos","events_url":"https://api.github.com/users/Fryguy/events{/privacy}","received_events_url":"https://api.github.com/users/Fryguy/received_events","type":"User","site_admin":false},"created_at":"2017-06-01T18:53:26Z","updated_at":"2017-06-01T18:53:26Z","body":"@imtayadeway If you're making a PR to not be merged, just mark as WIP...I went ahead and did it for you\r\n"}}
{"actor":{"display_login":"Fryguy"}}