)]}'
{"keystone/common/policies/base.py":[{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"5aeff3922dccd3ffef31913ba96cab001ef3c7ad","unresolved":false,"context_lines":[{"line_number":30,"context_line":"RULE_SERVICE_OR_ADMIN \u003d \u0027rule:service_or_admin\u0027"},{"line_number":31,"context_line":"RULE_TRUST_OWNER \u003d \u0027user_id:%(trust.trustor_user_id)s\u0027"},{"line_number":32,"context_line":"READER_ROLE \u003d \u0027role:reader\u0027"},{"line_number":33,"context_line":"MEMBER_ROLE \u003d \u0027role:member\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"rules \u003d ["},{"line_number":36,"context_line":"    policy.RuleDefault("}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_5734f5f9","line":33,"updated":"2018-10-02 02:05:02.000000000","message":"Here we don\u0027t need \u0027role:member and system_scope\u003dall\u0027 ?","commit_id":"903a56152ff59ffde3dec782d7a9918cb2d97268"}],"keystone/common/policies/domain.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"f126e7538bd0de7198b4865f1f1bf885d5f28a62","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                     \u0027method\u0027: \u0027POST\u0027}]),"},{"line_number":73,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":74,"context_line":"        name\u003dbase.IDENTITY % \u0027update_domain\u0027,"},{"line_number":75,"context_line":"        check_str\u003dbase.MEMBER_ROLE,"},{"line_number":76,"context_line":"        scope_types\u003d[\u0027system\u0027],"},{"line_number":77,"context_line":"        description\u003d\u0027Update domain.\u0027,"},{"line_number":78,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/domains/{domain_id}\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_35a17ca9","line":75,"updated":"2018-09-27 20:03:08.000000000","message":"I don\u0027t think it is right that a domain member could update the domain. THis should be a Domain admin.","commit_id":"3e07e849c3f6040971a06ecc7388e7b600f013c2"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"edc86fc66e8062b8bc5b01cb93c6eb9d61912f68","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                     \u0027method\u0027: \u0027POST\u0027}]),"},{"line_number":73,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":74,"context_line":"        name\u003dbase.IDENTITY % \u0027update_domain\u0027,"},{"line_number":75,"context_line":"        check_str\u003dbase.MEMBER_ROLE,"},{"line_number":76,"context_line":"        scope_types\u003d[\u0027system\u0027],"},{"line_number":77,"context_line":"        description\u003d\u0027Update domain.\u0027,"},{"line_number":78,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/domains/{domain_id}\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_352bbcea","line":75,"in_reply_to":"3f79a3b5_35a17ca9","updated":"2018-09-27 20:08:48.000000000","message":"This is a system member, see scope types below.","commit_id":"3e07e849c3f6040971a06ecc7388e7b600f013c2"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c0eb96111675ca2718bd6afa5b54e235fcaea784","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                     \u0027method\u0027: \u0027POST\u0027}]),"},{"line_number":73,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":74,"context_line":"        name\u003dbase.IDENTITY % \u0027update_domain\u0027,"},{"line_number":75,"context_line":"        check_str\u003dbase.MEMBER_ROLE,"},{"line_number":76,"context_line":"        scope_types\u003d[\u0027system\u0027],"},{"line_number":77,"context_line":"        description\u003d\u0027Update domain.\u0027,"},{"line_number":78,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/domains/{domain_id}\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_1ad1f22e","line":75,"range":{"start_line":75,"start_character":8,"end_line":75,"end_character":35},"updated":"2018-12-05 19:02:14.000000000","message":"As determined in IRC, this isn\u0027t really member functionality. Let\u0027s keep this as admin only for now, but isolated to system-admins.","commit_id":"c7f74e6e37a3c501ccf25026e3ff62c99a1ca691"}],"keystone/tests/unit/protection/v3/test_domains.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"f126e7538bd0de7198b4865f1f1bf885d5f28a62","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            r \u003d c.get(\u0027/v3/domains/%s\u0027 % domain[\u0027id\u0027], headers\u003dself.headers)"},{"line_number":250,"context_line":"            self.assertEqual(domain[\u0027id\u0027], r.json[\u0027domain\u0027][\u0027id\u0027])"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def test_user_can_update_a_domain(self):"},{"line_number":253,"context_line":"        domain \u003d PROVIDERS.resource_api.create_domain("},{"line_number":254,"context_line":"            uuid.uuid4().hex, unit.new_domain_ref()"},{"line_number":255,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_55743836","line":252,"updated":"2018-09-27 20:03:08.000000000","message":"This would allow nay domain member to modify the name or description of the domain.  I think those are admin operations.","commit_id":"3e07e849c3f6040971a06ecc7388e7b600f013c2"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"edc86fc66e8062b8bc5b01cb93c6eb9d61912f68","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            r \u003d c.get(\u0027/v3/domains/%s\u0027 % domain[\u0027id\u0027], headers\u003dself.headers)"},{"line_number":250,"context_line":"            self.assertEqual(domain[\u0027id\u0027], r.json[\u0027domain\u0027][\u0027id\u0027])"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def test_user_can_update_a_domain(self):"},{"line_number":253,"context_line":"        domain \u003d PROVIDERS.resource_api.create_domain("},{"line_number":254,"context_line":"            uuid.uuid4().hex, unit.new_domain_ref()"},{"line_number":255,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_b536ec4e","line":252,"in_reply_to":"3f79a3b5_55743836","updated":"2018-09-27 20:08:48.000000000","message":"This is specific to a system member. See my follow-on patch:\n\nhttps://review.openstack.org/#/c/605851/","commit_id":"3e07e849c3f6040971a06ecc7388e7b600f013c2"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"18f447881505bdd98d9782e8e1af97d157bc9222","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            r \u003d c.get(\u0027/v3/domains/%s\u0027 % domain[\u0027id\u0027], headers\u003dself.headers)"},{"line_number":250,"context_line":"            self.assertEqual(domain[\u0027id\u0027], r.json[\u0027domain\u0027][\u0027id\u0027])"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def test_user_can_update_a_domain(self):"},{"line_number":253,"context_line":"        domain \u003d PROVIDERS.resource_api.create_domain("},{"line_number":254,"context_line":"            uuid.uuid4().hex, unit.new_domain_ref()"},{"line_number":255,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_fc5c1d4d","line":252,"updated":"2018-10-01 02:42:32.000000000","message":"what if in case when user tries to update a domain he is not authorized to? Can we add a test case for this?","commit_id":"903a56152ff59ffde3dec782d7a9918cb2d97268"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"951d59a99416510ceb7c9afbead177fd79793cb1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3f79a3b5_3e7e7b6d","updated":"2018-10-19 00:14:06.000000000","message":"Common tests can be extracted to a base class (_not_ a mixin). But it\u0027s def. ok as is.","commit_id":"4e568eddc9620a2d17bbd007b6e35bb5e1e1a871"}]}
