)]}'
{"keystone/logic/service.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"ebc4e493343bff5f31b243a54e84da92c22b9e8d","unresolved":false,"context_lines":[{"line_number":455,"context_line":"            if ((role_ref.role_id \u003d\u003d role)"},{"line_number":456,"context_line":"                    and role_ref.tenant_id is None):"},{"line_number":457,"context_line":"                return True"},{"line_number":458,"context_line":"        return False"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    # pylint: disable\u003dW0613"},{"line_number":461,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAADH%2F%2F%2Fe0%3D","side":"PARENT","line":458,"updated":"2011-12-30 15:33:33.000000000","message":"Simpler and clearer:\n\nglobal_roles \u003d self.grant_manager.list_global_roles_for_user(user.id)\nmatches \u003d [rolegrant for rolegrant in global_roles\n        if rolegrant.role_id \u003d\u003d role]\nreturn bool(matches)","commit_id":"96e9a6ab1b03fc2c1e9bf2f64055f92f2b639397"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8ea920e6e0971b4eacefe6e59bd967bb7a0aa805","unresolved":false,"context_lines":[{"line_number":455,"context_line":"            if ((role_ref.role_id \u003d\u003d role)"},{"line_number":456,"context_line":"                    and role_ref.tenant_id is None):"},{"line_number":457,"context_line":"                return True"},{"line_number":458,"context_line":"        return False"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    # pylint: disable\u003dW0613"},{"line_number":461,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAADH%2F%2F%2FVM%3D","side":"PARENT","line":458,"in_reply_to":"AAAADH%2F%2F%2Fck%3D","updated":"2011-12-30 20:07:22.000000000","message":"Perhaps, but it is just as likely to be the last. :)\nThe list comprehension will only grab the one match if there is one; there won\u0027t ever be more than one, will there?","commit_id":"96e9a6ab1b03fc2c1e9bf2f64055f92f2b639397"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"b57db9ff49ea57a7d02d3e399e17268d42e1f548","unresolved":false,"context_lines":[{"line_number":455,"context_line":"            if ((role_ref.role_id \u003d\u003d role)"},{"line_number":456,"context_line":"                    and role_ref.tenant_id is None):"},{"line_number":457,"context_line":"                return True"},{"line_number":458,"context_line":"        return False"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    # pylint: disable\u003dW0613"},{"line_number":461,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAADH%2F%2F%2Fck%3D","side":"PARENT","line":458,"in_reply_to":"AAAADH%2F%2F%2Fe0%3D","updated":"2011-12-30 16:17:03.000000000","message":"What if I have 50 roles and the first one is a match? Wouldn\u0027t the existing code finish and exit faster?\n\nWe\u0027re not interested in the whole list here, we just want to find a first existence...","commit_id":"96e9a6ab1b03fc2c1e9bf2f64055f92f2b639397"}],"keystone/middleware/quantum_auth_token.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"ebc4e493343bff5f31b243a54e84da92c22b9e8d","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        #first_group \u003d token_info[\u0027auth\u0027][\u0027user\u0027][\u0027groups\u0027][\u0027group\u0027][0]"},{"line_number":385,"context_line":"        roles \u003d []"},{"line_number":386,"context_line":"        rolegrants \u003d token_info[\"access\"][\"user\"][\"roles\"]"},{"line_number":387,"context_line":"        if rolegrants !\u003d None:"},{"line_number":388,"context_line":"            for rolegrant in rolegrants:"},{"line_number":389,"context_line":"                roles.append(rolegrant[\"id\"])"},{"line_number":390,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAADH%2F%2F%2Fe8%3D","line":387,"updated":"2011-12-30 15:33:33.000000000","message":"Change to:\n\nif rolegrants is not None:","commit_id":"c4693f938fb2a26d3026b09cbe0548d8778df276"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"b57db9ff49ea57a7d02d3e399e17268d42e1f548","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        #first_group \u003d token_info[\u0027auth\u0027][\u0027user\u0027][\u0027groups\u0027][\u0027group\u0027][0]"},{"line_number":385,"context_line":"        roles \u003d []"},{"line_number":386,"context_line":"        rolegrants \u003d token_info[\"access\"][\"user\"][\"roles\"]"},{"line_number":387,"context_line":"        if rolegrants !\u003d None:"},{"line_number":388,"context_line":"            for rolegrant in rolegrants:"},{"line_number":389,"context_line":"                roles.append(rolegrant[\"id\"])"},{"line_number":390,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAADH%2F%2F%2Fcc%3D","line":387,"in_reply_to":"AAAADH%2F%2F%2Fe8%3D","updated":"2011-12-30 16:17:03.000000000","message":"Done","commit_id":"c4693f938fb2a26d3026b09cbe0548d8778df276"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"ebc4e493343bff5f31b243a54e84da92c22b9e8d","unresolved":false,"context_lines":[{"line_number":386,"context_line":"        rolegrants \u003d token_info[\"access\"][\"user\"][\"roles\"]"},{"line_number":387,"context_line":"        if rolegrants !\u003d None:"},{"line_number":388,"context_line":"            for rolegrant in rolegrants:"},{"line_number":389,"context_line":"                roles.append(rolegrant[\"id\"])"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        token_info \u003d json.loads(data)"},{"line_number":392,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAADH%2F%2F%2Fe4%3D","line":389,"updated":"2011-12-30 15:33:33.000000000","message":"Could just use a list comprehension for this loop:\n\nroles \u003d [rolegrant[\"id\"] for rolegrant in rolegrants]","commit_id":"c4693f938fb2a26d3026b09cbe0548d8778df276"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"b57db9ff49ea57a7d02d3e399e17268d42e1f548","unresolved":false,"context_lines":[{"line_number":386,"context_line":"        rolegrants \u003d token_info[\"access\"][\"user\"][\"roles\"]"},{"line_number":387,"context_line":"        if rolegrants !\u003d None:"},{"line_number":388,"context_line":"            for rolegrant in rolegrants:"},{"line_number":389,"context_line":"                roles.append(rolegrant[\"id\"])"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        token_info \u003d json.loads(data)"},{"line_number":392,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAADH%2F%2F%2FcY%3D","line":389,"in_reply_to":"AAAADH%2F%2F%2Fe4%3D","updated":"2011-12-30 16:17:03.000000000","message":"Done","commit_id":"c4693f938fb2a26d3026b09cbe0548d8778df276"}]}
