)]}'
{"horizon/dashboards/admin/projects/workflows.py":[{"author":{"_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},"change_message_id":"92a1906765655cd3422c531edcd567acf96b2964","unresolved":false,"context_lines":[{"line_number":298,"context_line":"                                                     tenant_id\u003dproject_id)"},{"line_number":299,"context_line":"            users_to_modify \u003d len(project_members)"},{"line_number":300,"context_line":"            for user in project_members:"},{"line_number":301,"context_line":"                current_roles \u003d [role for role in"},{"line_number":302,"context_line":"                                 api.roles_for_user(self.request,"},{"line_number":303,"context_line":"                                                    user.id,"},{"line_number":304,"context_line":"                                                    project_id)]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FJEk%3D","line":301,"updated":"2012-10-11 19:57:53.000000000","message":"If you just want to convert this to a list, you can call \"list()\" on it... but isn\u0027t this already a list? I\u0027m confused what this is doing.","commit_id":"18d00c448c917aea670141e21a71b8528933ed25"},{"author":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"change_message_id":"f30d8e5c034f388e30d812951d8e8781350dc3ba","unresolved":false,"context_lines":[{"line_number":298,"context_line":"                                                     tenant_id\u003dproject_id)"},{"line_number":299,"context_line":"            users_to_modify \u003d len(project_members)"},{"line_number":300,"context_line":"            for user in project_members:"},{"line_number":301,"context_line":"                current_roles \u003d [role for role in"},{"line_number":302,"context_line":"                                 api.roles_for_user(self.request,"},{"line_number":303,"context_line":"                                                    user.id,"},{"line_number":304,"context_line":"                                                    project_id)]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FIqs%3D","line":301,"in_reply_to":"AAAALH%2F%2FJEk%3D","updated":"2012-10-12 14:17:21.000000000","message":"Actually this was the reason to rewrite the unit tests. The \u0027current_roles\u0027 list is used as a placeholder below, and each existing role is being popped from the list, while the remaining are being deleted. The unit test however operates with in-memory variables, so popping from this list here modifies the global TESTDATA.roles list. That\u0027s the reason to create a new list here to modify it, instead of using the result from api.roles_for_user()... Although this affects the unit tests for now, it might be dangerous to pop from the response, as if a caching is applied in keystone client, this could accidentally delete some roles ..","commit_id":"18d00c448c917aea670141e21a71b8528933ed25"}],"openstack_dashboard/dashboards/admin/projects/workflows.py":[{"author":{"_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},"change_message_id":"135d66ecb525a548f984e88d9a4646ba369d5b0b","unresolved":false,"context_lines":[{"line_number":322,"context_line":"                        project_id \u003d\u003d request.user.tenant_id and \\"},{"line_number":323,"context_line":"                        any(x.name \u003d\u003d \u0027admin\u0027 for x in current_roles):"},{"line_number":324,"context_line":"                    # Cannot remove \"admin\" role on current(admin) project"},{"line_number":325,"context_line":"                    msg \u003d _(\"You cannot delete your own \u0027admin\u0027 role on the \""},{"line_number":326,"context_line":"                            \"current project. Login into another project or \""},{"line_number":327,"context_line":"                            \"use the CLI tools instead.\")"},{"line_number":328,"context_line":"                    messages.warning(request, msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2FINY%3D","line":325,"updated":"2012-10-12 22:46:24.000000000","message":"For grammar and clarity let\u0027s change the text to:\n\nYou cannot remove the \"admin\" role from the project you are currently logged into. Please switch to another project with admin permissions or remove the role manually via the CLI.","commit_id":"fd3ab1bc67fca23aa4ac86e30d60c0965c302d26"}]}
