{"action":"created","issue":{"url":"https://api.github.com/repos/IQSS/dataverse/issues/1151","labels_url":"https://api.github.com/repos/IQSS/dataverse/issues/1151/labels{/name}","comments_url":"https://api.github.com/repos/IQSS/dataverse/issues/1151/comments","events_url":"https://api.github.com/repos/IQSS/dataverse/issues/1151/events","html_url":"https://github.com/IQSS/dataverse/issues/1151","id":49574177,"number":1151,"title":"Stop using @pete and @uma (strings) in role assignments rather than @2 and @3 (database IDs)","user":{"login":"pdurbin","id":21006,"avatar_url":"https://avatars.githubusercontent.com/u/21006?v=3","gravatar_id":"","url":"https://api.github.com/users/pdurbin","html_url":"https://github.com/pdurbin","followers_url":"https://api.github.com/users/pdurbin/followers","following_url":"https://api.github.com/users/pdurbin/following{/other_user}","gists_url":"https://api.github.com/users/pdurbin/gists{/gist_id}","starred_url":"https://api.github.com/users/pdurbin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pdurbin/subscriptions","organizations_url":"https://api.github.com/users/pdurbin/orgs","repos_url":"https://api.github.com/users/pdurbin/repos","events_url":"https://api.github.com/users/pdurbin/events{/privacy}","received_events_url":"https://api.github.com/users/pdurbin/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/IQSS/dataverse/labels/Component:%20High-level","name":"Component: High-level","color":"c7def8"},{"url":"https://api.github.com/repos/IQSS/dataverse/labels/Status:%20Design","name":"Status: Design","color":"66ff66"},{"url":"https://api.github.com/repos/IQSS/dataverse/labels/Type:%20Suggestion","name":"Type: Suggestion","color":"fef2c0"}],"state":"open","locked":false,"assignee":{"login":"scolapasta","id":4268292,"avatar_url":"https://avatars.githubusercontent.com/u/4268292?v=3","gravatar_id":"","url":"https://api.github.com/users/scolapasta","html_url":"https://github.com/scolapasta","followers_url":"https://api.github.com/users/scolapasta/followers","following_url":"https://api.github.com/users/scolapasta/following{/other_user}","gists_url":"https://api.github.com/users/scolapasta/gists{/gist_id}","starred_url":"https://api.github.com/users/scolapasta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scolapasta/subscriptions","organizations_url":"https://api.github.com/users/scolapasta/orgs","repos_url":"https://api.github.com/users/scolapasta/repos","events_url":"https://api.github.com/users/scolapasta/events{/privacy}","received_events_url":"https://api.github.com/users/scolapasta/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/IQSS/dataverse/milestones/1","labels_url":"https://api.github.com/repos/IQSS/dataverse/milestones/1/labels","id":715293,"number":1,"title":"In Review - Dataverse 4.0","description":"Features and bugs for 4.0 that need to be reviewed and assigned a milestone, a priority, and a developer.","creator":{"login":"eaquigley","id":5922904,"avatar_url":"https://avatars.githubusercontent.com/u/5922904?v=3","gravatar_id":"","url":"https://api.github.com/users/eaquigley","html_url":"https://github.com/eaquigley","followers_url":"https://api.github.com/users/eaquigley/followers","following_url":"https://api.github.com/users/eaquigley/following{/other_user}","gists_url":"https://api.github.com/users/eaquigley/gists{/gist_id}","starred_url":"https://api.github.com/users/eaquigley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eaquigley/subscriptions","organizations_url":"https://api.github.com/users/eaquigley/orgs","repos_url":"https://api.github.com/users/eaquigley/repos","events_url":"https://api.github.com/users/eaquigley/events{/privacy}","received_events_url":"https://api.github.com/users/eaquigley/received_events","type":"User","site_admin":false},"open_issues":16,"closed_issues":0,"state":"open","created_at":"2014-07-09T15:34:35Z","updated_at":"2015-01-28T18:43:07Z","due_on":"2015-02-02T05:00:00Z","closed_at":null},"comments":10,"created_at":"2014-11-20T16:09:35Z","updated_at":"2015-01-30T22:07:08Z","closed_at":null,"body":"The more I stare at the role assignment table (screenshot attached) the more I'm completely freaked out by the use of strings in role assignments rather than id numbers.\r\n\r\nWhen I assign a role to Pete it gets persisted as \"@pete\" rather than \"@2\".\r\n\r\nI'm fine with the use of @ for users and some other symbol (&) for groups.\r\n\r\nBut what if pete wants to change his username?\r\n\r\nWhy should I have to do extra database lookups to figure out the database id of the authenticated user? Why can't I just have the authenticated user's database id right there in front of me while I'm looking at the role assignment table?\r\n\r\nHere are some more examples with `@admin`, `@finch`, and `@spruce`:\r\n\r\n![brittle](https://cloud.githubusercontent.com/assets/21006/5127931/7fefcdb2-70a5-11e4-9f28-f26f146b45e8.png)\r\n"},"comment":{"url":"https://api.github.com/repos/IQSS/dataverse/issues/comments/72278701","html_url":"https://github.com/IQSS/dataverse/issues/1151#issuecomment-72278701","issue_url":"https://api.github.com/repos/IQSS/dataverse/issues/1151","id":72278701,"user":{"login":"michbarsinai","id":1938468,"avatar_url":"https://avatars.githubusercontent.com/u/1938468?v=3","gravatar_id":"","url":"https://api.github.com/users/michbarsinai","html_url":"https://github.com/michbarsinai","followers_url":"https://api.github.com/users/michbarsinai/followers","following_url":"https://api.github.com/users/michbarsinai/following{/other_user}","gists_url":"https://api.github.com/users/michbarsinai/gists{/gist_id}","starred_url":"https://api.github.com/users/michbarsinai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michbarsinai/subscriptions","organizations_url":"https://api.github.com/users/michbarsinai/orgs","repos_url":"https://api.github.com/users/michbarsinai/repos","events_url":"https://api.github.com/users/michbarsinai/events{/privacy}","received_events_url":"https://api.github.com/users/michbarsinai/received_events","type":"User","site_admin":false},"created_at":"2015-01-30T22:07:08Z","updated_at":"2015-01-30T22:07:08Z","body":"Part of this was answered by email. \r\n\r\nThe rest - good enough means human readable, memorable, and based on the user data. Actual algorithm needs to be approved by Liz, who asked for this explicitly. It may require a some UI. \r\n\r\nAs for:\r\n> the identifier should be unique for the persistentuserid column in the authenticateduserlookup table\r\n\r\nNo. The pair (idprovider id, persistent user ID) has to be unique. authenticateduserlookup can have duplicate values. \r\n\r\n\r\n\r\nSent from my iPhone\r\n\r\n> On 30 בינו׳ 2015, at 16:38, Philip Durbin <notifications@github.com> wrote:\r\n> \r\n> The shib provider has all the information it needs to automatically create an OK identifier.\r\n> \r\n> @michbarsinai is sounds like you'd like to have the Shibboleth code refactored to store an \"OK identifier\". I believe your definition of OK is this:\r\n> \r\n> the identifier should be a String\r\n> the identifier should be unique for the useridentifier column in the authenticateduser table\r\n> the identifier should be unique for the persistentuserid column in the authenticateduserlookup table\r\n> the identifier should never change\r\n> Does that sound right? There's already a ticket to refactor the Shibboleth code at #963\r\n> \r\n> This will take time to implement, of course.\r\n> \r\n> By the way, what is actually leaking beyond the lookup process right into the bowels of the system at the level of assigning permissions (roles) in the current design is the overloaded concept of a username/useridentifer.\r\n> \r\n> Every other system has a clean separation between username and useridentifier. My Twitter username is \"philipdurbin\" but my Twitter useridentifer is 18326200. My GitHub username is \"pdurbin\" but my GitHub useridentifier is 21006. I'm sure in Twitter and GitHub when permissions are assigned they are not assigned to \"philipdurbin\" or \"pdurbin\" in their respective systems. Rather, permissions are most likely assigned to numbers. I continue to object to the current design, which is why I opened this ticket in the first place.\r\n> \r\n> —\r\n> Reply to this email directly or view it on GitHub.\r\n> "}}