)]}'
{"keystone/identity/backends/ldap/core.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"42be06dcf776ffd8bff3f05462b9664838d7a351","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        return values"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"    def update(self, id, values):"},{"line_number":419,"context_line":"        if \u0027id\u0027 in values and values[\u0027id\u0027] !\u003d id:"},{"line_number":420,"context_line":"            raise exception.ValidationError(\u0027Cannot change user ID\u0027)"},{"line_number":421,"context_line":"        try:"},{"line_number":422,"context_line":"            old_obj \u003d self.get(id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Fias%3D","line":419,"updated":"2013-01-16 20:32:52.000000000","message":"or:\n\n  if values.get(\u0027id\u0027, id) !\u003d id:","commit_id":"19a76baf812a5f353c37b2102cf4b9767d61425e"},{"author":{"_account_id":708,"name":"Yuriy Taraday","email":"yuriy@taraday.nl","username":"yorik-sar"},"change_message_id":"8d04e1537c794bede611bdcf41929a6a27312896","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        return values"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"    def update(self, id, values):"},{"line_number":419,"context_line":"        if \u0027id\u0027 in values and values[\u0027id\u0027] !\u003d id:"},{"line_number":420,"context_line":"            raise exception.ValidationError(\u0027Cannot change user ID\u0027)"},{"line_number":421,"context_line":"        try:"},{"line_number":422,"context_line":"            old_obj \u003d self.get(id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FiTM%3D","line":419,"in_reply_to":"AAAAM3%2F%2Fias%3D","updated":"2013-01-16 21:25:38.000000000","message":"I prefer this form just for conformance with later ifs.","commit_id":"19a76baf812a5f353c37b2102cf4b9767d61425e"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"42be06dcf776ffd8bff3f05462b9664838d7a351","unresolved":false,"context_lines":[{"line_number":429,"context_line":"            if old_obj[\u0027tenant_id\u0027]:"},{"line_number":430,"context_line":"                self.tenant_api.remove_user(old_obj[\u0027tenant_id\u0027], id)"},{"line_number":431,"context_line":"            if values[\u0027tenant_id\u0027]:"},{"line_number":432,"context_line":"                self.tenant_api.add_user(values[\u0027tenant_id\u0027], id)"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"        values \u003d utils.hash_ldap_user_password(values)"},{"line_number":435,"context_line":"        if self.enabled_mask:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Fiaw%3D","line":432,"updated":"2013-01-16 20:32:52.000000000","message":"I think the TenantApi implements this behavior as:\n\n  super(TenantApi, self).update(id, values, old_obj)\n\nwould that not work here as well?","commit_id":"19a76baf812a5f353c37b2102cf4b9767d61425e"},{"author":{"_account_id":708,"name":"Yuriy Taraday","email":"yuriy@taraday.nl","username":"yorik-sar"},"change_message_id":"8d04e1537c794bede611bdcf41929a6a27312896","unresolved":false,"context_lines":[{"line_number":429,"context_line":"            if old_obj[\u0027tenant_id\u0027]:"},{"line_number":430,"context_line":"                self.tenant_api.remove_user(old_obj[\u0027tenant_id\u0027], id)"},{"line_number":431,"context_line":"            if values[\u0027tenant_id\u0027]:"},{"line_number":432,"context_line":"                self.tenant_api.add_user(values[\u0027tenant_id\u0027], id)"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"        values \u003d utils.hash_ldap_user_password(values)"},{"line_number":435,"context_line":"        if self.enabled_mask:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FiTU%3D","line":432,"in_reply_to":"AAAAM3%2F%2Fiaw%3D","updated":"2013-01-16 21:25:38.000000000","message":"No. User is being removed from one tenant and added to another one.","commit_id":"19a76baf812a5f353c37b2102cf4b9767d61425e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"05d3175204923cc4c8d52742a57ff337d3eca4db","unresolved":false,"context_lines":[{"line_number":428,"context_line":"            if old_obj[\u0027tenant_id\u0027]:"},{"line_number":429,"context_line":"                self.project_api.remove_user(old_obj[\u0027tenant_id\u0027], id)"},{"line_number":430,"context_line":"            if values[\u0027tenant_id\u0027]:"},{"line_number":431,"context_line":"                self.project_api.add_user(values[\u0027tenant_id\u0027], id)"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"        values \u003d utils.hash_ldap_user_password(values)"},{"line_number":434,"context_line":"        if self.enabled_mask:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FDqc%3D","line":431,"updated":"2013-02-08 17:49:46.000000000","message":"it took me a little while to figure out what this was doing, would it be helpful to add a comment like \"# an empty new tenant_id means remove the user from the project\"?","commit_id":"46246384a7c6e984c633656b29e174a6b3321921"}]}
