)]}'
{"keystone/assignment/backends/ldap.py":[{"author":{"_account_id":8533,"name":"Marcos Fermín Lobo","email":"lobo@lukos.org","username":"mlobo"},"change_message_id":"a22ba3464132f2465b9bfcb38bfdf1d38ff87807","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.group \u003d ldap_identity.GroupApi(CONF)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.project \u003d ProjectApi(CONF)"},{"line_number":52,"context_line":"        self.role \u003d RoleApi(CONF, self.user)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def get_project(self, tenant_id):"},{"line_number":55,"context_line":"        return self._set_default_domain(self.project.get(tenant_id))"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_ccb4cad3","line":52,"updated":"2014-09-08 13:09:02.000000000","message":"I think self.user should be in ProjectApi call, because you are using this object inside ProjectApi class, not in RoleApi class.\n\nself.project \u003d ProjectApi(CONF, self.user)\nself.role \u003d RoleApi(CONF)\tself.role \u003d RoleApi(CONF)","commit_id":"59145c40d25ea9ec1074ace4b875958153c46633"},{"author":{"_account_id":8533,"name":"Marcos Fermín Lobo","email":"lobo@lukos.org","username":"mlobo"},"change_message_id":"1978786bcef1b6efeaaee04dc5a9d25e5e2f0931","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.group \u003d ldap_identity.GroupApi(CONF)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.project \u003d ProjectApi(CONF)"},{"line_number":52,"context_line":"        self.role \u003d RoleApi(CONF, self.user)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def get_project(self, tenant_id):"},{"line_number":55,"context_line":"        return self._set_default_domain(self.project.get(tenant_id))"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_427b3e29","line":52,"in_reply_to":"fa98f980_ae94dbe8","updated":"2014-09-08 15:09:31.000000000","message":"Upss, sorry, my fault","commit_id":"59145c40d25ea9ec1074ace4b875958153c46633"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a53a4bbe8be61990430551282921498a54e11e1e","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.group \u003d ldap_identity.GroupApi(CONF)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.project \u003d ProjectApi(CONF)"},{"line_number":52,"context_line":"        self.role \u003d RoleApi(CONF, self.user)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def get_project(self, tenant_id):"},{"line_number":55,"context_line":"        return self._set_default_domain(self.project.get(tenant_id))"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_ae94dbe8","line":52,"in_reply_to":"fa98f980_ccb4cad3","updated":"2014-09-08 13:51:33.000000000","message":"UserApi is used in RoleApi and not in ProjectApi.","commit_id":"59145c40d25ea9ec1074ace4b875958153c46633"},{"author":{"_account_id":8533,"name":"Marcos Fermín Lobo","email":"lobo@lukos.org","username":"mlobo"},"change_message_id":"916f2a98996dfe9c18677e062471b0c81a97817c","unresolved":false,"context_lines":[{"line_number":521,"context_line":"        super(RoleApi, self).__init__(conf)"},{"line_number":522,"context_line":"        self.member_attribute \u003d (getattr(conf.ldap, \u0027role_member_attribute\u0027)"},{"line_number":523,"context_line":"                                 or self.DEFAULT_MEMBER_ATTRIBUTE)"},{"line_number":524,"context_line":"        self._user_api \u003d user_api"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    def get(self, role_id, role_filter\u003dNone):"},{"line_number":527,"context_line":"        model \u003d super(RoleApi, self).get(role_id, role_filter)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_ec498e33","line":524,"updated":"2014-09-08 13:00:37.000000000","message":"Reading several comments in other patches, I was understanding that is not a good idea to mix assignment API with Identity API.\n\nHas changed or I\u0027m missing something?","commit_id":"59145c40d25ea9ec1074ace4b875958153c46633"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a53a4bbe8be61990430551282921498a54e11e1e","unresolved":false,"context_lines":[{"line_number":521,"context_line":"        super(RoleApi, self).__init__(conf)"},{"line_number":522,"context_line":"        self.member_attribute \u003d (getattr(conf.ldap, \u0027role_member_attribute\u0027)"},{"line_number":523,"context_line":"                                 or self.DEFAULT_MEMBER_ATTRIBUTE)"},{"line_number":524,"context_line":"        self._user_api \u003d user_api"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    def get(self, role_id, role_filter\u003dNone):"},{"line_number":527,"context_line":"        model \u003d super(RoleApi, self).get(role_id, role_filter)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_ee3a63e6","line":524,"in_reply_to":"fa98f980_ec498e33","updated":"2014-09-08 13:51:33.000000000","message":"You\u0027re not missing anything. The LDAP assignment backend is poorly done and makes calls to identity API when it shouldn\u0027t. There\u0027s a comment at line 289 \"LDAP assignments only supports LDAP identity.\" which is the only reason we get away with this.\n\nIf I have time I\u0027ll propose a change that makes this a requirement -- the server shouldn\u0027t start if you have LDAP assignment and non-LDAP identity.","commit_id":"59145c40d25ea9ec1074ace4b875958153c46633"}],"keystone/identity/backends/ldap.py":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"50e4eee30648bf8d83e1cdcd35c9771670904bb6","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        return identity.filter_user(common_ldap.filter_entity(user))"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def is_user(self, dn):"},{"line_number":269,"context_line":"        \"\"\"Returns True iff the entry is a user.\"\"\""},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        # NOTE(blk-u): It\u0027s easy to check if the DN is under the User tree,"},{"line_number":272,"context_line":"        # but may not be accurate. A more accurate test would be to fetch the"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_b1a44109","line":269,"updated":"2014-09-08 12:21:13.000000000","message":"nit: s/iff/if/","commit_id":"031d6db4e2f6425f129dd4f129af84d057437124"}]}
