{"action":"created","issue":{"url":"https://api.github.com/repos/openshift/origin-web-console/issues/562","repository_url":"https://api.github.com/repos/openshift/origin-web-console","labels_url":"https://api.github.com/repos/openshift/origin-web-console/issues/562/labels{/name}","comments_url":"https://api.github.com/repos/openshift/origin-web-console/issues/562/comments","events_url":"https://api.github.com/repos/openshift/origin-web-console/issues/562/events","html_url":"https://github.com/openshift/origin-web-console/pull/562","id":178108708,"number":562,"title":"Project Membership","user":{"login":"benjaminapetersen","id":280512,"avatar_url":"https://avatars.githubusercontent.com/u/280512?v=3","gravatar_id":"","url":"https://api.github.com/users/benjaminapetersen","html_url":"https://github.com/benjaminapetersen","followers_url":"https://api.github.com/users/benjaminapetersen/followers","following_url":"https://api.github.com/users/benjaminapetersen/following{/other_user}","gists_url":"https://api.github.com/users/benjaminapetersen/gists{/gist_id}","starred_url":"https://api.github.com/users/benjaminapetersen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benjaminapetersen/subscriptions","organizations_url":"https://api.github.com/users/benjaminapetersen/orgs","repos_url":"https://api.github.com/users/benjaminapetersen/repos","events_url":"https://api.github.com/users/benjaminapetersen/events{/privacy}","received_events_url":"https://api.github.com/users/benjaminapetersen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":96,"created_at":"2016-09-20T16:23:57Z","updated_at":"2016-10-21T01:07:21Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/openshift/origin-web-console/pulls/562","html_url":"https://github.com/openshift/origin-web-console/pull/562","diff_url":"https://github.com/openshift/origin-web-console/pull/562.diff","patch_url":"https://github.com/openshift/origin-web-console/pull/562.patch"},"body":"@ajacobs21e @jwforres @spadgett @enj \r\n\r\nTasks:\r\n- [x] On remove, ensure a user/group/etc in two different `rolebindings` for the same role is removed from both `rolebindings`. \r\n- [x]  On add, if there are two `rolebindings` for the same role, only add to one of the `rolebindings`.\r\n- [x] On add, check for duplicates,do not add a user/group/etc to a `rolebinding` if already present in the specified `rolebinding`\r\n- [x] On delete, if all subjects are removed from the `rolebinding`, delete the `rolebinding`\r\n- [x] Limit the # of roles a user can see by default, but provide checkbox to show all if desired\r\n- [x] work with @enj on a `end-user` type of annotation to show/hide roles (for above checkbox task)\r\n- [x] be sure to use the `description` annotation if present\r\n- [x] handle both clusterRoles & local roles (namespaced)\r\n\r\nPotential additional tasks (nice to have if they make sense):\r\n- [x] ~~Show/hide the membership menu item based on the user's ability to manage rolebindings?~~ Future\r\n- [x] Show/hide the \"edit\" functionality of the membership page based on the user's ability to manage rolebindings?\r\n- [x] ~~For non-admin users, it may be nice to show a list of \"what can I do\" for the project, since they will not be able to see the `rolebindings`, and showing them `local roles` & `clusterroles` that they cannot interact with is not helpful~~ Future perhaps\r\n- [x]  ~~On add, if user/group/etc is already a part of another role, can offer to update that role if it is sensible (ie, if in `view` and is added to `admin`, is not necessary for.~~ Not currently a \"weight\" or ranking available via api for roles\r\n- [x] ~~create a new group, add users to group, assign group to a role?~~ nope. cluster admin only\r\n\r\nPrototype UI screenshots:\r\n\r\nFirst view hides many of the roles to keep the picker sane:\r\n![screen shot 2016-09-20 at 10 43 09 am](https://cloud.githubusercontent.com/assets/280512/18679135/51b82560-7f2c-11e6-8996-c6e94f38a126.png)\r\nSecond view shows everything, it is reasonable someone will want to interact with these at some point:\r\n![screen shot 2016-09-20 at 10 43 32 am](https://cloud.githubusercontent.com/assets/280512/18679134/51b13386-7f2c-11e6-93a4-7f2248694c24.png)\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/openshift/origin-web-console/issues/comments/255268579","html_url":"https://github.com/openshift/origin-web-console/pull/562#issuecomment-255268579","issue_url":"https://api.github.com/repos/openshift/origin-web-console/issues/562","id":255268579,"user":{"login":"openshift-bot","id":1779249,"avatar_url":"https://avatars.githubusercontent.com/u/1779249?v=3","gravatar_id":"","url":"https://api.github.com/users/openshift-bot","html_url":"https://github.com/openshift-bot","followers_url":"https://api.github.com/users/openshift-bot/followers","following_url":"https://api.github.com/users/openshift-bot/following{/other_user}","gists_url":"https://api.github.com/users/openshift-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/openshift-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openshift-bot/subscriptions","organizations_url":"https://api.github.com/users/openshift-bot/orgs","repos_url":"https://api.github.com/users/openshift-bot/repos","events_url":"https://api.github.com/users/openshift-bot/events{/privacy}","received_events_url":"https://api.github.com/users/openshift-bot/received_events","type":"User","site_admin":false},"created_at":"2016-10-21T01:07:21Z","updated_at":"2016-10-21T01:07:21Z","body":"Origin Web Console Test Results: Running (https://ci.openshift.redhat.com/jenkins/job/test_pull_requests_origin_web_console/549/) (Base Commit: 798e6f813035b6b848df16515f120cc9b77a9ddf)"}}
{"actor":{"display_login":"openshift-bot"}}