)]}'
{"etc/policy.json":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9ad4b65a274f0da87c6da92585c4f73568897ba","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    \"get_members\": \"\","},{"line_number":25,"context_line":"    \"modify_member\": \"\","},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    \"manage_image_cache\": \"role:admin\","},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    \"get_task\": \"\","},{"line_number":30,"context_line":"    \"get_tasks\": \"\","}],"source_content_type":"application/json","patch_set":3,"id":"5f7c97a3_536709b8","side":"PARENT","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":39},"updated":"2018-05-15 11:23:02.000000000","message":"why was this left into the example policy file but the top two were not?","commit_id":"05e9bdb656d9c120ed3cd6ffc8ae7dbf5614b5e4"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"c87cce3d8a888dbc3d2ec74755cb7f7d83a4126e","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    \"get_members\": \"\","},{"line_number":25,"context_line":"    \"modify_member\": \"\","},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    \"manage_image_cache\": \"role:admin\","},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    \"get_task\": \"\","},{"line_number":30,"context_line":"    \"get_tasks\": \"\","}],"source_content_type":"application/json","patch_set":3,"id":"3f79a3b5_3da79abd","side":"PARENT","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":39},"in_reply_to":"5f7c97a3_536709b8","updated":"2018-10-17 00:00:30.000000000","message":"These patches are going to remove the rules one at a time.   These two are considered the basis for the rest.","commit_id":"05e9bdb656d9c120ed3cd6ffc8ae7dbf5614b5e4"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c9ad4b65a274f0da87c6da92585c4f73568897ba","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    \"get_tasks\": \"\","},{"line_number":31,"context_line":"    \"add_task\": \"\","},{"line_number":32,"context_line":"    \"modify_task\": \"\","},{"line_number":33,"context_line":"    \"tasks_api_access\": \"role:admin\","},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    \"deactivate\": \"\","},{"line_number":36,"context_line":"    \"reactivate\": \"\","}],"source_content_type":"application/json","patch_set":3,"id":"5f7c97a3_130bd1d5","side":"PARENT","line":33,"range":{"start_line":33,"start_character":3,"end_line":33,"end_character":37},"updated":"2018-05-15 11:23:02.000000000","message":"Is there a reason this was not included?","commit_id":"05e9bdb656d9c120ed3cd6ffc8ae7dbf5614b5e4"}],"glance/api/policy.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"bb13881d9de8e98c32fe32bb132262f0fa5865d8","unresolved":false,"context_lines":[{"line_number":68,"context_line":"           :raises: `glance.common.exception.Forbidden`"},{"line_number":69,"context_line":"           :returns: A non-False value if access is allowed."},{"line_number":70,"context_line":"        \"\"\""},{"line_number":71,"context_line":"        return super(Enforcer, self).enforce(action, target,"},{"line_number":72,"context_line":"                                             context.to_policy_values(),"},{"line_number":73,"context_line":"                                             do_raise\u003dTrue,"},{"line_number":74,"context_line":"                                             exc\u003dexception.Forbidden,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_34f1f001","line":71,"range":{"start_line":71,"start_character":37,"end_line":71,"end_character":44},"updated":"2018-10-17 04:02:22.000000000","message":"Just a question out of curiosity: Are you changing to `authorize` for following completion of all policy in code migrations? I can\u0027t remember if that was part of the general governance spec.","commit_id":"080cc2248dfcb119014724f82a0867c2e12b98e1"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"d170d6d9fbbfee41ba95dfd9eab266f4a555cee1","unresolved":false,"context_lines":[{"line_number":68,"context_line":"           :raises: `glance.common.exception.Forbidden`"},{"line_number":69,"context_line":"           :returns: A non-False value if access is allowed."},{"line_number":70,"context_line":"        \"\"\""},{"line_number":71,"context_line":"        return super(Enforcer, self).enforce(action, target,"},{"line_number":72,"context_line":"                                             context.to_policy_values(),"},{"line_number":73,"context_line":"                                             do_raise\u003dTrue,"},{"line_number":74,"context_line":"                                             exc\u003dexception.Forbidden,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_b33592f7","line":71,"range":{"start_line":71,"start_character":37,"end_line":71,"end_character":44},"in_reply_to":"3f79a3b5_1b827800","updated":"2018-11-21 14:18:55.000000000","message":"It would be ideal to move to \"authorize\" once all the policies have been migrated. That would ensure that we\u0027re only calling policies that have been registered, and hopefully that\u0027s caught early in CI.","commit_id":"080cc2248dfcb119014724f82a0867c2e12b98e1"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a2a7ad656e3b2771fa5aeac86e17c37e0aeacae8","unresolved":false,"context_lines":[{"line_number":68,"context_line":"           :raises: `glance.common.exception.Forbidden`"},{"line_number":69,"context_line":"           :returns: A non-False value if access is allowed."},{"line_number":70,"context_line":"        \"\"\""},{"line_number":71,"context_line":"        return super(Enforcer, self).enforce(action, target,"},{"line_number":72,"context_line":"                                             context.to_policy_values(),"},{"line_number":73,"context_line":"                                             do_raise\u003dTrue,"},{"line_number":74,"context_line":"                                             exc\u003dexception.Forbidden,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_1b827800","line":71,"range":{"start_line":71,"start_character":37,"end_line":71,"end_character":44},"in_reply_to":"3f79a3b5_34f1f001","updated":"2018-10-22 20:43:15.000000000","message":"By general governance spec do you mean the community goal [0]? If so, then no it wasn\u0027t detailed in that specification.\n\n[0] https://governance.openstack.org/tc/goals/queens/policy-in-code.html","commit_id":"080cc2248dfcb119014724f82a0867c2e12b98e1"}],"glance/common/policies/__init__.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d19e63710e3a12cb36bc3fb03f35108fd8d245bb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":6,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_c40aa277","line":3,"range":{"start_line":1,"start_character":0,"end_line":3,"end_character":1},"updated":"2017-09-06 18:17:33.000000000","message":"I believe these lines aren\u0027t required anymore.  At least line 2 isn\u0027t.  And I thought I read somewhere that you have to be an employee of the foundation to assert line #1.  Not -1\u0027ing this, though, because when I tried to find an answer, i came across a long inconclusive discussion complaining about people being frustrated by -1s because of copyright notices.  I wish there were an updated FAQ on this; the current one I found is not too helpful: https://wiki.openstack.org/wiki/LegalIssuesFAQ#Copyright_Headers","commit_id":"c9e5a96b49220809b64a3376750a011e037b27c0"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1546fac1ed052c41e7ad423da1db38bea2c8e334","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":6,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_6722d0bb","line":3,"in_reply_to":"7f287b81_c40aa277","updated":"2017-09-06 18:58:44.000000000","message":"Yeah - i\u0027m not sure what to do here either. I typically copy/paste one from anther file in the project (which is probably wrong), but mostly because I\u0027m not aware of a clear process.","commit_id":"c9e5a96b49220809b64a3376750a011e037b27c0"}],"glance/common/policies/base.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"321fbc48f036933acc476be2a498a7aebf60df7a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_3992824d","line":1,"updated":"2018-05-14 17:52:56.000000000","message":"Was this code actually copied from some done by a Foundation employee in 2011?","commit_id":"9820ecb148f173da9386dcea5c67ce5905bfe70e"}]}
