)]}'
{"horizon/base.py":[{"author":{"_account_id":17172,"name":"Kenji Ishii","email":"ken-ishii@sx.jp.nec.com","username":"kenji-ishii"},"change_message_id":"e7d2d1cb46349fbb3405bca9d76d4c62372e36eb","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        for rules in self.policy_rules:"},{"line_number":162,"context_line":"            if isinstance(rules, list):"},{"line_number":163,"context_line":"                access \u003d True"},{"line_number":164,"context_line":"                for rule in rules:"},{"line_number":165,"context_line":"                    if policy_check((rule,), request) is False:"},{"line_number":166,"context_line":"                        access \u003d False"},{"line_number":167,"context_line":"                if access is True:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afc51ec_fdd38336","line":164,"updated":"2016-03-14 04:43:30.000000000","message":"if type is list, it means AND condition but current implementation seems OR condition.","commit_id":"53a1e3c0955115b3637ce79b8fbd883a344f70aa"},{"author":{"_account_id":15637,"name":"Dmitry Ratushnyy","email":"d.ratushnyy@gmail.com","username":"dratushnyy"},"change_message_id":"b23b71dd6e3b89a6bf80568c9d94654e85c99ae4","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        for rules in self.policy_rules:"},{"line_number":162,"context_line":"            if isinstance(rules, list):"},{"line_number":163,"context_line":"                access \u003d True"},{"line_number":164,"context_line":"                for rule in rules:"},{"line_number":165,"context_line":"                    if policy_check((rule,), request) is False:"},{"line_number":166,"context_line":"                        access \u003d False"},{"line_number":167,"context_line":"                if access is True:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afc51ec_4169d48a","line":164,"in_reply_to":"3afc51ec_fdd38336","updated":"2016-03-14 15:49:26.000000000","message":"No, it is AND","commit_id":"53a1e3c0955115b3637ce79b8fbd883a344f70aa"}],"horizon/test/tests/base.py":[{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"b55a0a151d55c30bbbef17b398cb9b7b8ca10465","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        self.assertTrue(dogs.can_access(context))"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"class OrPolicyHorizonTests(test.TestCase):"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"    def setUp(self):"},{"line_number":565,"context_line":"        super(OrPolicyHorizonTests, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_de5ec7e8","line":562,"updated":"2015-04-30 15:46:48.000000000","message":"Seems like a lot of duplicate code. Thinking the base class should be made more versatile, may be beyond the scope of this patch though.","commit_id":"b669ae7e74143d0b077ee194af93eda254f7c6bf"}]}
