)]}'
{"keystone/token/providers/common.py":[{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"7764d940643d8afdb26b3fe150f64590ac55c5b7","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            (group_ids, project_id) or (group_ids, domain_id) pairs."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"        \"\"\""},{"line_number":261,"context_line":"        def check_roles(roles, user_id, project_id, domain_id):"},{"line_number":262,"context_line":"            # User was granted roles so simply exit this function."},{"line_number":263,"context_line":"            if roles:"},{"line_number":264,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_63003f03","line":261,"updated":"2015-07-31 15:12:01.000000000","message":"I can\u0027t understand the need for a function here, can you please explain why not to do all this in-place?","commit_id":"a5dd56090b64195d460b4d5ec1e0108ea8a32bab"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"0900771e02e3507f1233cba77ebfc564c270e4aa","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            (group_ids, project_id) or (group_ids, domain_id) pairs."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"        \"\"\""},{"line_number":261,"context_line":"        def check_roles(roles, user_id, project_id, domain_id):"},{"line_number":262,"context_line":"            # User was granted roles so simply exit this function."},{"line_number":263,"context_line":"            if roles:"},{"line_number":264,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_b87ddeb3","line":261,"in_reply_to":"3a50d1a3_63003f03","updated":"2015-08-03 06:39:23.000000000","message":"it\u0027s a logical split, so the main flow of the populate_roles_for_groups() is like:\n\n- get roles\n- check roles\nassign roles to token_data\n\ninstead of also adding substeps for setting errors messages and raising exceptions in the populate_roles_for_groups() flow.  I did it more for a cleaner outline of what the main function was for.","commit_id":"a5dd56090b64195d460b4d5ec1e0108ea8a32bab"}]}
