)]}'
{"etc/policy.json":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"5dda74983fe1a74584827f147cd98859ef21f905","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    \"token_subject\": \"user_id:%(target.token.user_id)s\","},{"line_number":8,"context_line":"    \"admin_or_token_subject\": \"rule:admin_required or rule:token_subject\","},{"line_number":9,"context_line":"    \"trustor\": \"user_id:%(target.trust.trustor_user_id)s\","},{"line_number":10,"context_line":"    \"admin_or_trustor\": \"rule:admin_required or rule:trustor\","},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    \"default\": \"rule:admin_required\","},{"line_number":13,"context_line":""}],"source_content_type":"application/json","patch_set":1,"id":"7aaa499b_cf71a2e2","line":10,"updated":"2015-04-11 08:36:25.000000000","message":"I think we need to have an \"or rule:trustee\" here to match the current conditions","commit_id":"2100af8a7f2ba21723239b568b1bbcde53ccf91b"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"97b271818fb2baacc6afd0af76bd9eb3b259d7f8","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    \"token_subject\": \"user_id:%(target.token.user_id)s\","},{"line_number":8,"context_line":"    \"admin_or_token_subject\": \"rule:admin_required or rule:token_subject\","},{"line_number":9,"context_line":"    \"trustor\": \"user_id:%(target.trust.trustor_user_id)s\","},{"line_number":10,"context_line":"    \"admin_or_trustor\": \"rule:admin_required or rule:trustor\","},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    \"default\": \"rule:admin_required\","},{"line_number":13,"context_line":""}],"source_content_type":"application/json","patch_set":1,"id":"7aaa499b_7ce7bce4","line":10,"in_reply_to":"7aaa499b_75525cdf","updated":"2015-04-13 22:27:54.000000000","message":"Done","commit_id":"2100af8a7f2ba21723239b568b1bbcde53ccf91b"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"b3dd11705cab7dce2192ea5d791eed0a9b4952a7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    \"token_subject\": \"user_id:%(target.token.user_id)s\","},{"line_number":8,"context_line":"    \"admin_or_token_subject\": \"rule:admin_required or rule:token_subject\","},{"line_number":9,"context_line":"    \"trustor\": \"user_id:%(target.trust.trustor_user_id)s\","},{"line_number":10,"context_line":"    \"admin_or_trustor\": \"rule:admin_required or rule:trustor\","},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    \"default\": \"rule:admin_required\","},{"line_number":13,"context_line":""}],"source_content_type":"application/json","patch_set":1,"id":"7aaa499b_75525cdf","line":10,"in_reply_to":"7aaa499b_cf71a2e2","updated":"2015-04-11 23:16:32.000000000","message":"I assumed that owner supposed to mean the user that created the trust.\n\nBut I do the use case when the trustee might want need access to it too.","commit_id":"2100af8a7f2ba21723239b568b1bbcde53ccf91b"}],"etc/policy.v3cloudsample.json":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"5dda74983fe1a74584827f147cd98859ef21f905","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    \"identity:revoke_token\": \"rule:admin_or_owner\","},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    \"identity:create_trust\": \"user_id:%(trust.trustor_user_id)s\","},{"line_number":110,"context_line":"    \"identity:get_trust\": \"rule:admin_or_cloud_admin or rule:trustor\","},{"line_number":111,"context_line":"    \"identity:list_trusts\": \"\","},{"line_number":112,"context_line":"    \"identity:list_roles_for_trust\": \"\","},{"line_number":113,"context_line":"    \"identity:get_role_for_trust\": \"\","}],"source_content_type":"application/json","patch_set":1,"id":"7aaa499b_6f816e8f","line":110,"updated":"2015-04-11 08:36:25.000000000","message":"or rule:trustee","commit_id":"2100af8a7f2ba21723239b568b1bbcde53ccf91b"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"97b271818fb2baacc6afd0af76bd9eb3b259d7f8","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    \"identity:revoke_token\": \"rule:admin_or_owner\","},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    \"identity:create_trust\": \"user_id:%(trust.trustor_user_id)s\","},{"line_number":110,"context_line":"    \"identity:get_trust\": \"rule:admin_or_cloud_admin or rule:trustor\","},{"line_number":111,"context_line":"    \"identity:list_trusts\": \"\","},{"line_number":112,"context_line":"    \"identity:list_roles_for_trust\": \"\","},{"line_number":113,"context_line":"    \"identity:get_role_for_trust\": \"\","}],"source_content_type":"application/json","patch_set":1,"id":"7aaa499b_5cec00c7","line":110,"in_reply_to":"7aaa499b_6f816e8f","updated":"2015-04-13 22:27:54.000000000","message":"Done","commit_id":"2100af8a7f2ba21723239b568b1bbcde53ccf91b"}],"keystone/tests/unit/test_auth.py":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"fdc69ead918c55bf3eacb7423e15d89fe753570f","unresolved":false,"context_lines":[{"line_number":880,"context_line":"        for role in new_trust[\u0027roles\u0027]:"},{"line_number":881,"context_line":"            self.assertIn(role[\u0027id\u0027], role_ids)"},{"line_number":882,"context_line":""},{"line_number":883,"context_line":"        # check if trustee have access to get trust"},{"line_number":884,"context_line":"        unscoped_token \u003d self.get_unscoped_token(self.trustee[\u0027name\u0027],"},{"line_number":885,"context_line":"                                                 \u0027two2\u0027)"},{"line_number":886,"context_line":"        context \u003d {\u0027token_id\u0027: unscoped_token[\u0027access\u0027][\u0027token\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aaa499b_34e588db","line":883,"updated":"2015-04-15 13:13:29.000000000","message":"nit: s/have/has/","commit_id":"1e412d2f01654934a5ce29b33db028eade983b75"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"cc4902cb27c5fc58c6c2ca822bc8ddfa530bd5d0","unresolved":false,"context_lines":[{"line_number":880,"context_line":"        for role in new_trust[\u0027roles\u0027]:"},{"line_number":881,"context_line":"            self.assertIn(role[\u0027id\u0027], role_ids)"},{"line_number":882,"context_line":""},{"line_number":883,"context_line":"        # check if trustee have access to get trust"},{"line_number":884,"context_line":"        unscoped_token \u003d self.get_unscoped_token(self.trustee[\u0027name\u0027],"},{"line_number":885,"context_line":"                                                 \u0027two2\u0027)"},{"line_number":886,"context_line":"        context \u003d {\u0027token_id\u0027: unscoped_token[\u0027access\u0027][\u0027token\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"5aa745d1_e386c664","line":883,"in_reply_to":"7aaa499b_34e588db","updated":"2015-04-15 19:23:04.000000000","message":"Done","commit_id":"1e412d2f01654934a5ce29b33db028eade983b75"}],"keystone/trust/controllers.py":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"5dda74983fe1a74584827f147cd98859ef21f905","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        trust \u003d self.trust_api.get_trust(trust_id)"},{"line_number":81,"context_line":"        if not trust:"},{"line_number":82,"context_line":"            raise exception.TrustNotFound(trust_id\u003dtrust_id)"},{"line_number":83,"context_line":"        _trustor_trustee_only(trust, user_id)"},{"line_number":84,"context_line":"        self._fill_in_roles(context, trust,"},{"line_number":85,"context_line":"                            self.role_api.list_roles())"},{"line_number":86,"context_line":"        return TrustV3.wrap_member(context, trust)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_0f4f8a93","line":83,"updated":"2015-04-11 08:36:25.000000000","message":"so the only problem is that this test now duplicates the settings in the policy file....and if an operator changes the policy file, that won\u0027t have any effect...I\u0027d say we have to either move it all to the policy file (which I think we now can, since we added the support for checking the target of an API call), or keep it as is.","commit_id":"2100af8a7f2ba21723239b568b1bbcde53ccf91b"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"b3dd11705cab7dce2192ea5d791eed0a9b4952a7","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        trust \u003d self.trust_api.get_trust(trust_id)"},{"line_number":81,"context_line":"        if not trust:"},{"line_number":82,"context_line":"            raise exception.TrustNotFound(trust_id\u003dtrust_id)"},{"line_number":83,"context_line":"        _trustor_trustee_only(trust, user_id)"},{"line_number":84,"context_line":"        self._fill_in_roles(context, trust,"},{"line_number":85,"context_line":"                            self.role_api.list_roles())"},{"line_number":86,"context_line":"        return TrustV3.wrap_member(context, trust)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_1558b8f9","line":83,"in_reply_to":"7aaa499b_0f4f8a93","updated":"2015-04-11 23:16:32.000000000","message":"ah this is why you mentioned I had to add the trustee, good catch","commit_id":"2100af8a7f2ba21723239b568b1bbcde53ccf91b"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"97b271818fb2baacc6afd0af76bd9eb3b259d7f8","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        trust \u003d self.trust_api.get_trust(trust_id)"},{"line_number":81,"context_line":"        if not trust:"},{"line_number":82,"context_line":"            raise exception.TrustNotFound(trust_id\u003dtrust_id)"},{"line_number":83,"context_line":"        _trustor_trustee_only(trust, user_id)"},{"line_number":84,"context_line":"        self._fill_in_roles(context, trust,"},{"line_number":85,"context_line":"                            self.role_api.list_roles())"},{"line_number":86,"context_line":"        return TrustV3.wrap_member(context, trust)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_1ccf9857","line":83,"in_reply_to":"7aaa499b_1558b8f9","updated":"2015-04-13 22:27:54.000000000","message":"Done","commit_id":"2100af8a7f2ba21723239b568b1bbcde53ccf91b"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"5dda74983fe1a74584827f147cd98859ef21f905","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        if not trust:"},{"line_number":278,"context_line":"            raise exception.TrustNotFound(trust_id\u003dtrust_id)"},{"line_number":279,"context_line":"        user_id \u003d self._get_user_id(context)"},{"line_number":280,"context_line":"        _trustor_trustee_only(trust, user_id)"},{"line_number":281,"context_line":"        return {\u0027roles\u0027: trust[\u0027roles\u0027],"},{"line_number":282,"context_line":"                \u0027links\u0027: trust[\u0027roles_links\u0027]}"},{"line_number":283,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_cf48828a","line":280,"updated":"2015-04-11 08:36:25.000000000","message":"If we are going to go down this route, then I don\u0027t see wh we couldn\u0027t handle this the same way...","commit_id":"2100af8a7f2ba21723239b568b1bbcde53ccf91b"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"97b271818fb2baacc6afd0af76bd9eb3b259d7f8","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        if not trust:"},{"line_number":278,"context_line":"            raise exception.TrustNotFound(trust_id\u003dtrust_id)"},{"line_number":279,"context_line":"        user_id \u003d self._get_user_id(context)"},{"line_number":280,"context_line":"        _trustor_trustee_only(trust, user_id)"},{"line_number":281,"context_line":"        return {\u0027roles\u0027: trust[\u0027roles\u0027],"},{"line_number":282,"context_line":"                \u0027links\u0027: trust[\u0027roles_links\u0027]}"},{"line_number":283,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_7cfe9c6c","line":280,"in_reply_to":"7aaa499b_cf48828a","updated":"2015-04-13 22:27:54.000000000","message":"Remove checking if trust is empty (it is already done in _get_trust() and access checks.","commit_id":"2100af8a7f2ba21723239b568b1bbcde53ccf91b"}]}
