{"action":"created","issue":{"url":"https://api.github.com/repos/collective/pas.plugins.authomatic/issues/12","labels_url":"https://api.github.com/repos/collective/pas.plugins.authomatic/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/collective/pas.plugins.authomatic/issues/12/comments","events_url":"https://api.github.com/repos/collective/pas.plugins.authomatic/issues/12/events","html_url":"https://github.com/collective/pas.plugins.authomatic/pull/12","id":116501321,"number":12,"title":"WIP: allow mutiple providers for one user","user":{"login":"jensens","id":157140,"avatar_url":"https://avatars.githubusercontent.com/u/157140?v=3","gravatar_id":"","url":"https://api.github.com/users/jensens","html_url":"https://github.com/jensens","followers_url":"https://api.github.com/users/jensens/followers","following_url":"https://api.github.com/users/jensens/following{/other_user}","gists_url":"https://api.github.com/users/jensens/gists{/gist_id}","starred_url":"https://api.github.com/users/jensens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jensens/subscriptions","organizations_url":"https://api.github.com/users/jensens/orgs","repos_url":"https://api.github.com/users/jensens/repos","events_url":"https://api.github.com/users/jensens/events{/privacy}","received_events_url":"https://api.github.com/users/jensens/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/collective/pas.plugins.authomatic/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-11-12T08:24:39Z","updated_at":"2015-11-13T06:17:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/collective/pas.plugins.authomatic/pulls/12","html_url":"https://github.com/collective/pas.plugins.authomatic/pull/12","diff_url":"https://github.com/collective/pas.plugins.authomatic/pull/12.diff","patch_url":"https://github.com/collective/pas.plugins.authomatic/pull/12.patch"},"body":"This PR changes the way users are store massively and will break installations of 1.0a1.\r\n\r\nIt enables:\r\n- more than one identity per user\r\n- adding identities to classic Plone Users\r\n- choosing how the login/userid is created in configuration. \r\n  Default: uuid4, available: userid of first provider used, loginname of first provider used. \r\n  If a uuid/name/id is already in use it appends and increases a counter. \r\n  Using named utilities for the identifier factory custom methods are possible.\r\n- Collecting propertysheet data from multiple connected providers\r\n\r\nTodo:\r\n- [ ] solve ``Credentials`` deserialize problem.\r\n- [ ] add a view to add identities to an existing user.\r\n- [ ] security check (secret stored on ``UserIdentities`` class)\r\n- [ ] OAuth2 refresh\r\n- [ ] fix tests and write more tests\r\n"},"comment":{"url":"https://api.github.com/repos/collective/pas.plugins.authomatic/issues/comments/156336736","html_url":"https://github.com/collective/pas.plugins.authomatic/pull/12#issuecomment-156336736","issue_url":"https://api.github.com/repos/collective/pas.plugins.authomatic/issues/12","id":156336736,"user":{"login":"davisagli","id":49014,"avatar_url":"https://avatars.githubusercontent.com/u/49014?v=3","gravatar_id":"","url":"https://api.github.com/users/davisagli","html_url":"https://github.com/davisagli","followers_url":"https://api.github.com/users/davisagli/followers","following_url":"https://api.github.com/users/davisagli/following{/other_user}","gists_url":"https://api.github.com/users/davisagli/gists{/gist_id}","starred_url":"https://api.github.com/users/davisagli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davisagli/subscriptions","organizations_url":"https://api.github.com/users/davisagli/orgs","repos_url":"https://api.github.com/users/davisagli/repos","events_url":"https://api.github.com/users/davisagli/events{/privacy}","received_events_url":"https://api.github.com/users/davisagli/received_events","type":"User","site_admin":false},"created_at":"2015-11-13T06:17:51Z","updated_at":"2015-11-13T06:17:51Z","body":"I like the direction this is going!\r\n\r\nKeep in mind that plone.app.users already makes use of IUserIdGenerator and ILoginNameGenerator utilities (https://github.com/plone/plone.app.users/blob/master/plone/app/users/browser/interfaces.py#L20) so please consider whether the ones you're adding here duplicate that functionality."}}