)]}'
{"keystone/auth/plugins/mapped.py":[{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"573e82e68b24fed265119d2f1beebd94aef6bc03","unresolved":false,"context_lines":[{"line_number":237,"context_line":"            unique_id, display_name \u003d ("},{"line_number":238,"context_line":"                get_user_unique_id_and_display_name(request, mapped_properties)"},{"line_number":239,"context_line":"            )"},{"line_number":240,"context_line":"            email \u003d get_email_info(request, mapped_properties)"},{"line_number":241,"context_line":"            user \u003d identity_api.shadow_federated_user(identity_provider,"},{"line_number":242,"context_line":"                                                      protocol, unique_id,"},{"line_number":243,"context_line":"                                                      display_name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_b93db2de","line":240,"range":{"start_line":240,"start_character":12,"end_line":240,"end_character":62},"updated":"2018-03-20 21:19:44.000000000","message":"We should be adding any extra mapped_properties, not just email if we want to include extras.","commit_id":"b4f7417813c1f603aab59d32e4249008d312f3c4"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"3fc7d69255fb292931bbd5b7584c09871eafb8cd","unresolved":false,"context_lines":[{"line_number":237,"context_line":"            unique_id, display_name \u003d ("},{"line_number":238,"context_line":"                get_user_unique_id_and_display_name(request, mapped_properties)"},{"line_number":239,"context_line":"            )"},{"line_number":240,"context_line":"            email \u003d get_email_info(request, mapped_properties)"},{"line_number":241,"context_line":"            user \u003d identity_api.shadow_federated_user(identity_provider,"},{"line_number":242,"context_line":"                                                      protocol, unique_id,"},{"line_number":243,"context_line":"                                                      display_name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_de20834c","line":240,"range":{"start_line":240,"start_character":12,"end_line":240,"end_character":62},"in_reply_to":"df7087c5_b93db2de","updated":"2018-03-21 04:10:23.000000000","message":"make sense.","commit_id":"b4f7417813c1f603aab59d32e4249008d312f3c4"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"26c942ce63ca4870fd016f53040292c93de63dc1","unresolved":false,"context_lines":[{"line_number":377,"context_line":"    return (user[\u0027id\u0027], user[\u0027name\u0027])"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"def get_email_info(request, mapped_properties):"},{"line_number":381,"context_line":"    \"\"\"Setup federated user email."},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"    Set email info for federated user if it exists."},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"    :param request: current request object"},{"line_number":386,"context_line":"    :param mapped_properties: Properties issued by a RuleProcessor."},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    \"\"\""},{"line_number":389,"context_line":"    user \u003d mapped_properties[\u0027user\u0027]"},{"line_number":390,"context_line":"    email \u003d user.get(\u0027email\u0027)"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    return email"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff6b8bd7_a2dcd018","line":392,"range":{"start_line":380,"start_character":0,"end_line":392,"end_character":16},"updated":"2018-03-06 08:40:14.000000000","message":"not sure it\u0027s worth to create a new function. How about just:\nemail \u003d mapped_properties[\u0027user\u0027].get(\u0027email\u0027)","commit_id":"b4f7417813c1f603aab59d32e4249008d312f3c4"}],"keystone/identity/core.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ee205deda9d08e4efb8eabd9701d9cbeebb30c92","unresolved":false,"context_lines":[{"line_number":1443,"context_line":"            }"},{"line_number":1444,"context_line":"            user_dict \u003d ("},{"line_number":1445,"context_line":"                PROVIDERS.shadow_users_api.create_federated_user("},{"line_number":1446,"context_line":"                    idp[\u0027domain_id\u0027], federated_dict, email\u003demail"},{"line_number":1447,"context_line":"                )"},{"line_number":1448,"context_line":"            )"},{"line_number":1449,"context_line":"        PROVIDERS.shadow_users_api.set_last_active_at(user_dict[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_3bc76d15","line":1446,"range":{"start_line":1446,"start_character":54,"end_line":1446,"end_character":65},"updated":"2018-03-26 18:16:30.000000000","message":"Why can\u0027t this be included in federated_dict?","commit_id":"475ea454ee06d4b3cf4d423aa26b2432e5928767"}],"keystone/identity/shadow_backends/base.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ee205deda9d08e4efb8eabd9701d9cbeebb30c92","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        \"\"\"Create a new user with the federated identity."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        :param domain_id: The domain ID of the IdP used for the federated user"},{"line_number":31,"context_line":"        :param dict federated_dict: Reference to the federated user"},{"line_number":32,"context_line":"        :param email: Federated user\u0027s email"},{"line_number":33,"context_line":"        :returns dict: Containing the user reference"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_1bd629c7","line":31,"range":{"start_line":31,"start_character":20,"end_line":31,"end_character":34},"updated":"2018-03-26 18:16:30.000000000","message":"We already have a dictionary for federated attributes. Email could probably be handled in that dictionary instead of having a specific kwarg for email.","commit_id":"475ea454ee06d4b3cf4d423aa26b2432e5928767"}],"keystone/tests/unit/test_shadow_users.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"44f8550808f168ceb6aff88d6be481433d7c949b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            \u0027unique_id\u0027: uuid.uuid4().hex,"},{"line_number":48,"context_line":"            \u0027display_name\u0027: uuid.uuid4().hex"},{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":"        self.email \u003d uuid.uuid4().hex"},{"line_number":51,"context_line":"        PROVIDERS.federation_api.create_idp(self.idp[\u0027id\u0027], self.idp)"},{"line_number":52,"context_line":"        PROVIDERS.federation_api.create_mapping("},{"line_number":53,"context_line":"            self.mapping[\u0027id\u0027], self.mapping"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_8e897427","line":50,"updated":"2018-03-21 09:17:06.000000000","message":"You could add this as a property of self.federated_user instead of its own variable","commit_id":"b4f7417813c1f603aab59d32e4249008d312f3c4"},{"author":{"_account_id":17430,"name":"yangweiwei","email":"yangweiwei@cmss.chinamobile.com","username":"yangweiwei"},"change_message_id":"410f92b2a959b72b61b101db10d576cc3e108b85","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            \u0027unique_id\u0027: uuid.uuid4().hex,"},{"line_number":48,"context_line":"            \u0027display_name\u0027: uuid.uuid4().hex"},{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":"        self.email \u003d uuid.uuid4().hex"},{"line_number":51,"context_line":"        PROVIDERS.federation_api.create_idp(self.idp[\u0027id\u0027], self.idp)"},{"line_number":52,"context_line":"        PROVIDERS.federation_api.create_mapping("},{"line_number":53,"context_line":"            self.mapping[\u0027id\u0027], self.mapping"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_2e50685e","line":50,"in_reply_to":"df7087c5_8e897427","updated":"2018-03-21 09:22:13.000000000","message":"Done","commit_id":"b4f7417813c1f603aab59d32e4249008d312f3c4"}]}
