{"action":"created","issue":{"url":"https://api.github.com/repos/metabase/metabase/issues/3088","repository_url":"https://api.github.com/repos/metabase/metabase","labels_url":"https://api.github.com/repos/metabase/metabase/issues/3088/labels{/name}","comments_url":"https://api.github.com/repos/metabase/metabase/issues/3088/comments","events_url":"https://api.github.com/repos/metabase/metabase/issues/3088/events","html_url":"https://github.com/metabase/metabase/pull/3088","id":168760795,"number":3088,"title":"Permissions v1 [WIP]","user":{"login":"camsaul","id":1455846,"avatar_url":"https://avatars.githubusercontent.com/u/1455846?v=3","gravatar_id":"","url":"https://api.github.com/users/camsaul","html_url":"https://github.com/camsaul","followers_url":"https://api.github.com/users/camsaul/followers","following_url":"https://api.github.com/users/camsaul/following{/other_user}","gists_url":"https://api.github.com/users/camsaul/gists{/gist_id}","starred_url":"https://api.github.com/users/camsaul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/camsaul/subscriptions","organizations_url":"https://api.github.com/users/camsaul/orgs","repos_url":"https://api.github.com/users/camsaul/repos","events_url":"https://api.github.com/users/camsaul/events{/privacy}","received_events_url":"https://api.github.com/users/camsaul/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/metabase/metabase/labels/In%20Progress","name":"In Progress","color":"fef2c0"},{"url":"https://api.github.com/repos/metabase/metabase/labels/New%20Feature","name":"New Feature","color":"9CED51"},{"url":"https://api.github.com/repos/metabase/metabase/labels/Security","name":"Security","color":"B11623"}],"state":"open","locked":false,"assignee":{"login":"camsaul","id":1455846,"avatar_url":"https://avatars.githubusercontent.com/u/1455846?v=3","gravatar_id":"","url":"https://api.github.com/users/camsaul","html_url":"https://github.com/camsaul","followers_url":"https://api.github.com/users/camsaul/followers","following_url":"https://api.github.com/users/camsaul/following{/other_user}","gists_url":"https://api.github.com/users/camsaul/gists{/gist_id}","starred_url":"https://api.github.com/users/camsaul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/camsaul/subscriptions","organizations_url":"https://api.github.com/users/camsaul/orgs","repos_url":"https://api.github.com/users/camsaul/repos","events_url":"https://api.github.com/users/camsaul/events{/privacy}","received_events_url":"https://api.github.com/users/camsaul/received_events","type":"User","site_admin":false},"assignees":[{"login":"camsaul","id":1455846,"avatar_url":"https://avatars.githubusercontent.com/u/1455846?v=3","gravatar_id":"","url":"https://api.github.com/users/camsaul","html_url":"https://github.com/camsaul","followers_url":"https://api.github.com/users/camsaul/followers","following_url":"https://api.github.com/users/camsaul/following{/other_user}","gists_url":"https://api.github.com/users/camsaul/gists{/gist_id}","starred_url":"https://api.github.com/users/camsaul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/camsaul/subscriptions","organizations_url":"https://api.github.com/users/camsaul/orgs","repos_url":"https://api.github.com/users/camsaul/repos","events_url":"https://api.github.com/users/camsaul/events{/privacy}","received_events_url":"https://api.github.com/users/camsaul/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/metabase/metabase/milestones/22","html_url":"https://github.com/metabase/metabase/milestones/0.20.0","labels_url":"https://api.github.com/repos/metabase/metabase/milestones/22/labels","id":1866379,"number":22,"title":"0.20.0","description":"Code complete: August 26th\r\nRelease date: Sept 7th","creator":{"login":"salsakran","id":107439,"avatar_url":"https://avatars.githubusercontent.com/u/107439?v=3","gravatar_id":"","url":"https://api.github.com/users/salsakran","html_url":"https://github.com/salsakran","followers_url":"https://api.github.com/users/salsakran/followers","following_url":"https://api.github.com/users/salsakran/following{/other_user}","gists_url":"https://api.github.com/users/salsakran/gists{/gist_id}","starred_url":"https://api.github.com/users/salsakran/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/salsakran/subscriptions","organizations_url":"https://api.github.com/users/salsakran/orgs","repos_url":"https://api.github.com/users/salsakran/repos","events_url":"https://api.github.com/users/salsakran/events{/privacy}","received_events_url":"https://api.github.com/users/salsakran/received_events","type":"User","site_admin":false},"open_issues":38,"closed_issues":8,"state":"open","created_at":"2016-07-05T23:55:43Z","updated_at":"2016-08-18T02:49:28Z","due_on":"2016-08-26T00:00:00Z","closed_at":null},"comments":2,"created_at":"2016-08-01T22:53:49Z","updated_at":"2016-08-18T21:50:04Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/metabase/metabase/pulls/3088","html_url":"https://github.com/metabase/metabase/pull/3088","diff_url":"https://github.com/metabase/metabase/pull/3088.diff","patch_url":"https://github.com/metabase/metabase/pull/3088.patch"},"body":"WIP branch for permissions #3087\r\n\r\n### Sexy :lock_with_ink_pen: \r\n\r\n![screen shot 2016-08-17 at 5 14 38 pm](https://cloud.githubusercontent.com/assets/1455846/17757731/2181a8a6-649e-11e6-9c63-185b10170e44.png)\r\n\r\n![screen shot 2016-08-17 at 5 15 17 pm](https://cloud.githubusercontent.com/assets/1455846/17757745/3ad0cc92-649e-11e6-86d8-2ced14892f5b.png)\r\n\r\n![screen shot 2016-08-17 at 5 15 49 pm](https://cloud.githubusercontent.com/assets/1455846/17757756/4de97658-649e-11e6-8812-0331ee35b2cd.png)\r\n\r\n![screen shot 2016-08-17 at 5 35 55 pm](https://cloud.githubusercontent.com/assets/1455846/17758085/1dafb90e-64a1-11e6-81b9-f86b9337cee1.png)\r\n\r\n![screen shot 2016-08-17 at 6 07 36 pm](https://cloud.githubusercontent.com/assets/1455846/17758587/88fc773e-64a5-11e6-9ae6-98bd2c0c5f52.png)\r\n\r\n![screen shot 2016-08-17 at 5 41 51 pm](https://cloud.githubusercontent.com/assets/1455846/17758165/f6e37fc6-64a1-11e6-90cf-355ea09bde60.png)\r\n\r\n![screen shot 2016-08-17 at 7 51 17 pm](https://cloud.githubusercontent.com/assets/1455846/17760364/0666eb06-64b4-11e6-9bd2-b86b52cc6b7e.png)\r\n\r\n![screen shot 2016-08-17 at 7 40 39 pm](https://cloud.githubusercontent.com/assets/1455846/17760175/8a3cbcdc-64b2-11e6-8bcf-dde3e1da70bb.png)\r\n\r\n### TODO\r\n\r\n###### Frontend - General\r\n-  [x] use new endpoint for running cards\r\n-  [ ] If you edit members and then switch groups members aren't updated !\r\n-  [ ] General wonkiness with enabling certain tables for a schema and then going back to schema detail\r\n-  [ ] don't show existing group members in auto-complete when adding user to a group\r\n-  [ ] Don't show \"Permissions for this database\" for the Admin group\r\n-  [ ] Implement userland designs for what it looks like when there's a card on a dashboard/pulse that a user doesn't have access to, etc.  \r\n-  [ ] switching groups in group detail with add user open leaves add user open (this is probably undesirable...)\r\n-  [ ] If you switch groups in schema detail page it takes you back to the DB page (this is probably not what we want, but what if the group isn't allowed to edit that schema?)\r\n-  [ ] special UI tweaks for DBs with 0 or 1 schemas\r\n\r\n###### Frontend - CSS\r\n\r\n-  [ ] GroupsList should show red X on hover\r\n-  [ ] users in GroupDetail should show red X on hover\r\n-  [ ] auto-complete boxes are off-center\r\n-  [ ] create a group button should be right-aligned\r\n-  [ ] should we keep border around input boxes when focused for add user / create group?\r\n-  [ ] DBs list leaves me listless (needs styling)\r\n-  [ ] Show table icon next to tables in schema details?\r\n\r\n###### Backend\r\n-  [x] check permissions for native queries -- don't let someone run if perms are missing\r\n-  [x] don't let permissionless peeps save native query cards\r\n-  [ ] Permissions checking for pulses: \r\n    1.  You cannot create or edit a pulse if you don't have permissions for any of the cards in it (nor can you preview those cards)\r\n    2.  Once you make a pulse it is your responsibility to choose who gets to see them; we don't enforce permissions when sending out the pulses\r\n-  [ ] check that a db/schema/table exists before letting some create permissions for it?\r\n-  [ ] more backend tests\r\n\r\n###### Etc. (These can be done as separate PRs, I think)\r\n\r\n-  [ ] Users who have created artifacts should [receive an email](https://www.dropbox.com/s/z29g0nn74bo3a82/permissions-email.png?dl=0) to notify them in the event that a change to their permissions results in them no longer being able to access an artifact they've created (separate PR?)\r\n-  [ ] remove the \"Role\" setting from the people  page?\r\n-  [ ] Ideally the card list endpoint should be able to filter out cards you don't permissions for. This is a bit complicated but for things like creating pulses it would be ideal if people don't even see cards they're not allowed to  #906 \r\n"},"comment":{"url":"https://api.github.com/repos/metabase/metabase/issues/comments/240868181","html_url":"https://github.com/metabase/metabase/pull/3088#issuecomment-240868181","issue_url":"https://api.github.com/repos/metabase/metabase/issues/3088","id":240868181,"user":{"login":"tlrobinson","id":18193,"avatar_url":"https://avatars.githubusercontent.com/u/18193?v=3","gravatar_id":"","url":"https://api.github.com/users/tlrobinson","html_url":"https://github.com/tlrobinson","followers_url":"https://api.github.com/users/tlrobinson/followers","following_url":"https://api.github.com/users/tlrobinson/following{/other_user}","gists_url":"https://api.github.com/users/tlrobinson/gists{/gist_id}","starred_url":"https://api.github.com/users/tlrobinson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tlrobinson/subscriptions","organizations_url":"https://api.github.com/users/tlrobinson/orgs","repos_url":"https://api.github.com/users/tlrobinson/repos","events_url":"https://api.github.com/users/tlrobinson/events{/privacy}","received_events_url":"https://api.github.com/users/tlrobinson/received_events","type":"User","site_admin":false},"created_at":"2016-08-18T21:50:04Z","updated_at":"2016-08-18T21:50:04Z","body":"That (and in generally permissions checks) should probably be a backend thing so we don't leak card names etc to users who don't have permission to see them."}}
{"actor":{"display_login":"tlrobinson"}}