)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"efa173da590223b9cf33b3d3bd57611ae446f303","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Vishakha Agarwal \u003cagarwalvishakha18@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-10-01 11:38:48 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adresses LDAP case-sensitive issue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"keystone was not able to find any users while"},{"line_number":10,"context_line":"the LDAP user name attribute was configured to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3f79a3b5_0345f114","line":7,"updated":"2018-10-01 13:10:47.000000000","message":"Please fix this typo","commit_id":"ae78cec14f271edc8253bbb16b9012ca0b1f44d9"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"efa173da590223b9cf33b3d3bd57611ae446f303","unresolved":false,"context_lines":[{"line_number":13,"context_line":"not supposed to be case-sensitive, so either"},{"line_number":14,"context_line":"should work."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This patch adresses the above problem by making"},{"line_number":17,"context_line":"both the attributes into lower case. Also updated"},{"line_number":18,"context_line":"the ldap_result example supporting python3."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3f79a3b5_23534de0","line":16,"updated":"2018-10-01 13:10:47.000000000","message":"2 d\u0027s in address","commit_id":"ae78cec14f271edc8253bbb16b9012ca0b1f44d9"}],"keystone/identity/backends/ldap/common.py":[{"author":{"_account_id":24005,"name":"prashkre","email":"prashkre@in.ibm.com","username":"prashkre"},"change_message_id":"b773f337c2e3b89cbd350f46c794a2c834764824","unresolved":false,"context_lines":[{"line_number":1407,"context_line":"        # ldap_result \u003d [{\u0027uid\u0027: [\u0027fake_id1\u0027]}, , \u0027accountname\u0027: [\"name\"]}]"},{"line_number":1408,"context_line":"        # doing lower case on both user_name_attribute and ldap users"},{"line_number":1409,"context_line":"        # attribute"},{"line_number":1410,"context_line":"        attr.lower()"},{"line_number":1411,"context_line":"        result \u003d []"},{"line_number":1412,"context_line":"        # consider attr \u003d \"cn\" and"},{"line_number":1413,"context_line":"        # ldap_result \u003d [{\u0027uid\u0027: [\u0027fake_id1\u0027]},"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_bcbadabc","line":1410,"updated":"2018-09-21 09:34:17.000000000","message":"This doesn\u0027t alter the string value being refereed by attr. attr.lower() creates a new lower case string but attr still points to old string value. This should be attr \u003d attr.lower() or it can be removed if the same is implemented at line 1423.","commit_id":"b6ff1e96e606d021d6088eb377b557a5405a87ef"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"f0b45c142654eb1087da1eaeb31b3bc28bef0750","unresolved":false,"context_lines":[{"line_number":1407,"context_line":"        # ldap_result \u003d [{\u0027uid\u0027: [\u0027fake_id1\u0027]}, , \u0027accountname\u0027: [\"name\"]}]"},{"line_number":1408,"context_line":"        # doing lower case on both user_name_attribute and ldap users"},{"line_number":1409,"context_line":"        # attribute"},{"line_number":1410,"context_line":"        attr.lower()"},{"line_number":1411,"context_line":"        result \u003d []"},{"line_number":1412,"context_line":"        # consider attr \u003d \"cn\" and"},{"line_number":1413,"context_line":"        # ldap_result \u003d [{\u0027uid\u0027: [\u0027fake_id1\u0027]},"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_e56d1667","line":1410,"in_reply_to":"3f79a3b5_bcbadabc","updated":"2018-09-21 09:57:47.000000000","message":"Done","commit_id":"b6ff1e96e606d021d6088eb377b557a5405a87ef"},{"author":{"_account_id":24005,"name":"prashkre","email":"prashkre@in.ibm.com","username":"prashkre"},"change_message_id":"b773f337c2e3b89cbd350f46c794a2c834764824","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"        for obj in ldap_result:"},{"line_number":1419,"context_line":"            # ignore ldap object(user/group entry) which has no attr set"},{"line_number":1420,"context_line":"            # in it or whose value is empty list."},{"line_number":1421,"context_line":"            for key in obj[1].keys():"},{"line_number":1422,"context_line":"                key.lower()"},{"line_number":1423,"context_line":"            ldap_result_attribute \u003d obj[1].get(attr)"},{"line_number":1424,"context_line":"            if ldap_result_attribute:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_1c3e6e28","line":1421,"updated":"2018-09-21 09:34:17.000000000","message":"Again, it doesn\u0027t have any impact on the existing functionality. Lets keep the ldap_result intact, create temp dict something like ldap_res_low_keys_dict \u003d  {k.lower(): v for k, v in obj[1].items()} and get the attribute values \u003e\u003e ldap_result_attr_vals \u003d ldap_res_low_keys.get(attr) as commented at line 1423.","commit_id":"b6ff1e96e606d021d6088eb377b557a5405a87ef"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"f0b45c142654eb1087da1eaeb31b3bc28bef0750","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"        for obj in ldap_result:"},{"line_number":1419,"context_line":"            # ignore ldap object(user/group entry) which has no attr set"},{"line_number":1420,"context_line":"            # in it or whose value is empty list."},{"line_number":1421,"context_line":"            for key in obj[1].keys():"},{"line_number":1422,"context_line":"                key.lower()"},{"line_number":1423,"context_line":"            ldap_result_attribute \u003d obj[1].get(attr)"},{"line_number":1424,"context_line":"            if ldap_result_attribute:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_6597c63a","line":1421,"in_reply_to":"3f79a3b5_1c3e6e28","updated":"2018-09-21 09:57:47.000000000","message":"Done","commit_id":"b6ff1e96e606d021d6088eb377b557a5405a87ef"},{"author":{"_account_id":24005,"name":"prashkre","email":"prashkre@in.ibm.com","username":"prashkre"},"change_message_id":"b773f337c2e3b89cbd350f46c794a2c834764824","unresolved":false,"context_lines":[{"line_number":1420,"context_line":"            # in it or whose value is empty list."},{"line_number":1421,"context_line":"            for key in obj[1].keys():"},{"line_number":1422,"context_line":"                key.lower()"},{"line_number":1423,"context_line":"            ldap_result_attribute \u003d obj[1].get(attr)"},{"line_number":1424,"context_line":"            if ldap_result_attribute:"},{"line_number":1425,"context_line":"                # ignore ldap object whose attr value has empty strings or"},{"line_number":1426,"context_line":"                # contains only whitespaces."}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_7c6be2ee","line":1423,"updated":"2018-09-21 09:34:17.000000000","message":"ldap_result_attr_vals \u003d ldap_res_low_keys_dict.get(attr.lower())\n\nFor ease of code readability/understanding, my suggestion is to change \"ldap_result_attribute\" to \"ldap_result_attr_vals\"","commit_id":"b6ff1e96e606d021d6088eb377b557a5405a87ef"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"f0b45c142654eb1087da1eaeb31b3bc28bef0750","unresolved":false,"context_lines":[{"line_number":1420,"context_line":"            # in it or whose value is empty list."},{"line_number":1421,"context_line":"            for key in obj[1].keys():"},{"line_number":1422,"context_line":"                key.lower()"},{"line_number":1423,"context_line":"            ldap_result_attribute \u003d obj[1].get(attr)"},{"line_number":1424,"context_line":"            if ldap_result_attribute:"},{"line_number":1425,"context_line":"                # ignore ldap object whose attr value has empty strings or"},{"line_number":1426,"context_line":"                # contains only whitespaces."}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_c5a7baa7","line":1423,"in_reply_to":"3f79a3b5_7c6be2ee","updated":"2018-09-21 09:57:47.000000000","message":"Done","commit_id":"b6ff1e96e606d021d6088eb377b557a5405a87ef"},{"author":{"_account_id":24005,"name":"prashkre","email":"prashkre@in.ibm.com","username":"prashkre"},"change_message_id":"b773f337c2e3b89cbd350f46c794a2c834764824","unresolved":false,"context_lines":[{"line_number":1421,"context_line":"            for key in obj[1].keys():"},{"line_number":1422,"context_line":"                key.lower()"},{"line_number":1423,"context_line":"            ldap_result_attribute \u003d obj[1].get(attr)"},{"line_number":1424,"context_line":"            if ldap_result_attribute:"},{"line_number":1425,"context_line":"                # ignore ldap object whose attr value has empty strings or"},{"line_number":1426,"context_line":"                # contains only whitespaces."},{"line_number":1427,"context_line":"                if ldap_result_attribute[0] and \\"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_4255e0c0","line":1424,"updated":"2018-09-21 09:34:17.000000000","message":"update \"ldap_result_attribute\" to \"ldap_result_attr_vals\" if it is changed at line 1423.","commit_id":"b6ff1e96e606d021d6088eb377b557a5405a87ef"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"f0b45c142654eb1087da1eaeb31b3bc28bef0750","unresolved":false,"context_lines":[{"line_number":1421,"context_line":"            for key in obj[1].keys():"},{"line_number":1422,"context_line":"                key.lower()"},{"line_number":1423,"context_line":"            ldap_result_attribute \u003d obj[1].get(attr)"},{"line_number":1424,"context_line":"            if ldap_result_attribute:"},{"line_number":1425,"context_line":"                # ignore ldap object whose attr value has empty strings or"},{"line_number":1426,"context_line":"                # contains only whitespaces."},{"line_number":1427,"context_line":"                if ldap_result_attribute[0] and \\"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_65b026dd","line":1424,"in_reply_to":"3f79a3b5_4255e0c0","updated":"2018-09-21 09:57:47.000000000","message":"Done","commit_id":"b6ff1e96e606d021d6088eb377b557a5405a87ef"},{"author":{"_account_id":24005,"name":"prashkre","email":"prashkre@in.ibm.com","username":"prashkre"},"change_message_id":"b773f337c2e3b89cbd350f46c794a2c834764824","unresolved":false,"context_lines":[{"line_number":1424,"context_line":"            if ldap_result_attribute:"},{"line_number":1425,"context_line":"                # ignore ldap object whose attr value has empty strings or"},{"line_number":1426,"context_line":"                # contains only whitespaces."},{"line_number":1427,"context_line":"                if ldap_result_attribute[0] and \\"},{"line_number":1428,"context_line":"                        ldap_result_attribute[0].strip():"},{"line_number":1429,"context_line":"                    result.append(obj)"},{"line_number":1430,"context_line":"        # except {\u0027uid\u0027: [\u0027fake_id5\u0027], \u0027cn\u0027: [\"name\"]}, all entries"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_e2450c9c","line":1427,"updated":"2018-09-21 09:34:17.000000000","message":"same as above \u003e\u003e update \"ldap_result_attribute\" to \"ldap_result_attr_vals\" if it is changed at line 1423.","commit_id":"b6ff1e96e606d021d6088eb377b557a5405a87ef"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"f0b45c142654eb1087da1eaeb31b3bc28bef0750","unresolved":false,"context_lines":[{"line_number":1424,"context_line":"            if ldap_result_attribute:"},{"line_number":1425,"context_line":"                # ignore ldap object whose attr value has empty strings or"},{"line_number":1426,"context_line":"                # contains only whitespaces."},{"line_number":1427,"context_line":"                if ldap_result_attribute[0] and \\"},{"line_number":1428,"context_line":"                        ldap_result_attribute[0].strip():"},{"line_number":1429,"context_line":"                    result.append(obj)"},{"line_number":1430,"context_line":"        # except {\u0027uid\u0027: [\u0027fake_id5\u0027], \u0027cn\u0027: [\"name\"]}, all entries"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_e5bbd6ba","line":1427,"in_reply_to":"3f79a3b5_e2450c9c","updated":"2018-09-21 09:57:47.000000000","message":"Done","commit_id":"b6ff1e96e606d021d6088eb377b557a5405a87ef"},{"author":{"_account_id":24005,"name":"prashkre","email":"prashkre@in.ibm.com","username":"prashkre"},"change_message_id":"029b68ac98ff5fcf4acc22bfda74f083fc060bd6","unresolved":false,"context_lines":[{"line_number":1409,"context_line":"        # attribute"},{"line_number":1410,"context_line":"        result \u003d []"},{"line_number":1411,"context_line":"        # consider attr \u003d \"cn\" and"},{"line_number":1412,"context_line":"        # ldap_result \u003d [{\u0027uid\u0027: [\u0027fake_id1\u0027]},"},{"line_number":1413,"context_line":"        #                {\u0027uid\u0027: [\u0027fake_id2\u0027], \u0027cn\u0027: [\u0027     \u0027]},"},{"line_number":1414,"context_line":"        #                {\u0027uid\u0027: [\u0027fake_id3\u0027], \u0027cn\u0027: [\u0027\u0027]},"},{"line_number":1415,"context_line":"        #                {\u0027uid\u0027: [\u0027fake_id4\u0027], \u0027cn\u0027: []},"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_05b1328f","line":1412,"updated":"2018-09-21 10:17:11.000000000","message":"My bad, please update it\n\nldap_result \u003d [(u\u0027cn\u003dfake1,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id1\u0027]}), \n\t\t\t   (u\u0027cn\u003dfake2,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id2\u0027], \u0027cn\u0027: [\u0027     \u0027]},\n\t\t\t   (u\u0027cn\u003dfake3,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id3\u0027], \u0027cn\u0027: [\u0027\u0027]}), \n\t\t\t   (u\u0027cn\u003dfake4,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id4\u0027], \u0027cn\u0027: []}),\n\t\t\t   (u\u0027cn\u003dfake5,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id5\u0027], \u0027cn\u0027: [\"name\"]})]","commit_id":"e481f6575414d8241fd4c476eb1e01225880cc37"},{"author":{"_account_id":24005,"name":"prashkre","email":"prashkre@in.ibm.com","username":"prashkre"},"change_message_id":"029b68ac98ff5fcf4acc22bfda74f083fc060bd6","unresolved":false,"context_lines":[{"line_number":1422,"context_line":"            if ldap_result_attr_vals:"},{"line_number":1423,"context_line":"                # ignore ldap object whose attr value has empty strings or"},{"line_number":1424,"context_line":"                # contains only whitespaces."},{"line_number":1425,"context_line":"                if ldap_result_attr_vals and \\"},{"line_number":1426,"context_line":"                        ldap_result_attr_vals.strip():"},{"line_number":1427,"context_line":"                    result.append(obj)"},{"line_number":1428,"context_line":"        # except {\u0027uid\u0027: [\u0027fake_id5\u0027], \u0027cn\u0027: [\"name\"]}, all entries"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_e54f5689","line":1425,"updated":"2018-09-21 10:17:11.000000000","message":"ldap_result \u003d [(u\u0027cn\u003dfake1,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id1\u0027]}), \n\t\t\t   (u\u0027cn\u003dfake2,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id2\u0027], \u0027cn\u0027: [\u0027     \u0027]},\n\t\t\t   (u\u0027cn\u003dfake3,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id3\u0027], \u0027cn\u0027: [\u0027\u0027]}), \n\t\t\t   (u\u0027cn\u003dfake4,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id4\u0027], \u0027cn\u0027: []}),\n\t\t\t   (u\u0027cn\u003dfake5,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id5\u0027], \u0027cn\u0027: [\"name\"]})]\n\n\nTo account for cases of ldap_result[1], ldap_result[2], you need to update it as\n\nif ldap_result_attr_vals[0] and \\\n                        ldap_result_attr_vals[0].strip():","commit_id":"e481f6575414d8241fd4c476eb1e01225880cc37"},{"author":{"_account_id":24005,"name":"prashkre","email":"prashkre@in.ibm.com","username":"prashkre"},"change_message_id":"edebc5e75c2878f3222f5a9677e64d3f64010bcd","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"        result \u003d []"},{"line_number":1411,"context_line":"        # consider attr \u003d \"cn\" and"},{"line_number":1412,"context_line":"        # ldap_result \u003d [(u\u0027cn\u003dfake1,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id1\u0027]}),"},{"line_number":1413,"context_line":"        #              (u\u0027cn\u003dfake2,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id2\u0027],"},{"line_number":1414,"context_line":"        #               \u0027cn\u0027: [\u0027     \u0027]},"},{"line_number":1415,"context_line":"        #              (u\u0027cn\u003dfake3,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id3\u0027],"},{"line_number":1416,"context_line":"        #               \u0027cn\u0027: [\u0027\u0027]}),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_2b643fe4","line":1413,"updated":"2018-09-21 11:17:08.000000000","message":"For readability, it will be very helpful, if you could provide some visual indentation around brackets as we do in pep8/pycodestyle.","commit_id":"93e5ffbdc6877114e87fdf62c8e03437e924b00b"},{"author":{"_account_id":24005,"name":"prashkre","email":"prashkre@in.ibm.com","username":"prashkre"},"change_message_id":"edebc5e75c2878f3222f5a9677e64d3f64010bcd","unresolved":false,"context_lines":[{"line_number":1425,"context_line":"            ldap_result_attr_vals \u003d ldap_res_low_keys_dict.get(attr.lower())"},{"line_number":1426,"context_line":"            # ignore ldap object whose attr value has empty strings or"},{"line_number":1427,"context_line":"            # contains only whitespaces."},{"line_number":1428,"context_line":"            # ldap_result \u003d [(u\u0027cn\u003dfake1,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id1\u0027]"},{"line_number":1429,"context_line":"            #                 }),"},{"line_number":1430,"context_line":"            #               (u\u0027cn\u003dfake2,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id2\u0027],"},{"line_number":1431,"context_line":"            #                \u0027cn\u0027: [\u0027     \u0027]},"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_285a054f","line":1428,"updated":"2018-09-21 11:17:08.000000000","message":"Remove this duplicate code comment i.e. ldap_result, it already exits in the above code comment. In order to help you in understanding the need for change, I have put it in my previous review comments.","commit_id":"93e5ffbdc6877114e87fdf62c8e03437e924b00b"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"958f9dfb8d187832f4feabb9eb66054390f2ffd5","unresolved":false,"context_lines":[{"line_number":1417,"context_line":"        #                (u\u0027cn\u003dfake4,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id4\u0027],"},{"line_number":1418,"context_line":"        #                \u0027cn\u0027: []}),"},{"line_number":1419,"context_line":"        #                (u\u0027cn\u003dfake5,o\u003dex_domain\u0027, {\u0027uid\u0027: [\u0027fake_id5\u0027],"},{"line_number":1420,"context_line":"        #                \u0027cn\u0027: [\"name\"]})]"},{"line_number":1421,"context_line":"        for obj in ldap_result:"},{"line_number":1422,"context_line":"            # ignore ldap object(user/group entry) which has no attr set"},{"line_number":1423,"context_line":"            # in it or whose value is empty list."}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_ccfbe845","line":1420,"updated":"2018-09-27 19:10:03.000000000","message":"I don\u0027t understand why this example was changed, are you trying to show how it would work for python3?","commit_id":"c44b973b1bc8f675a026cf04aa18d77cf0b2a4cc"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"19a19ca988c95bcca628e5c24d1cf757dc3d4b8d","unresolved":false,"context_lines":[{"line_number":1389,"context_line":"    # that attribute has a value set on ldap. This keeps keystone away"},{"line_number":1390,"context_line":"    # from entities that don\u0027t have attribute value set on ldap."},{"line_number":1391,"context_line":"    # for e.g. In ldap configuration, if user_name_attribute \u003d personName"},{"line_number":1392,"context_line":"    # then it will not ignore ldap users who don\u0027t have \u0027personName\u0027 attribute"},{"line_number":1393,"context_line":"    # value set on user."},{"line_number":1394,"context_line":"    def _filter_ldap_result_by_attr(self, ldap_result, ldap_attr_name):"},{"line_number":1395,"context_line":"        attr \u003d self.attribute_mapping[ldap_attr_name]"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_08d21e5c","line":1392,"range":{"start_line":1392,"start_character":19,"end_line":1392,"end_character":23},"updated":"2018-09-28 09:19:21.000000000","message":"I think this is incorrect, the line `if ldap_result_attr_vals` on 1428, which was formerly `if obj[1].get(attr)` should mean that the obj is only appended to the result list if the attribute (case-insensitively matched) is present in the result.","commit_id":"cd80a5e1753e06c66cd7a914dd8c010a645ef733"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"110a895b485f965867fc0100d50a11a6c28784a5","unresolved":false,"context_lines":[{"line_number":1389,"context_line":"    # that attribute has a value set on ldap. This keeps keystone away"},{"line_number":1390,"context_line":"    # from entities that don\u0027t have attribute value set on ldap."},{"line_number":1391,"context_line":"    # for e.g. In ldap configuration, if user_name_attribute \u003d personName"},{"line_number":1392,"context_line":"    # then it will not ignore ldap users who don\u0027t have \u0027personName\u0027 attribute"},{"line_number":1393,"context_line":"    # value set on user."},{"line_number":1394,"context_line":"    def _filter_ldap_result_by_attr(self, ldap_result, ldap_attr_name):"},{"line_number":1395,"context_line":"        attr \u003d self.attribute_mapping[ldap_attr_name]"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_57cf2a27","line":1392,"range":{"start_line":1392,"start_character":19,"end_line":1392,"end_character":23},"in_reply_to":"3f79a3b5_08d21e5c","updated":"2018-10-01 06:12:09.000000000","message":"Reverted the change","commit_id":"cd80a5e1753e06c66cd7a914dd8c010a645ef733"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6ef3768efa9823192cd3bf3ffe653ed40b9bab35","unresolved":false,"context_lines":[{"line_number":1426,"context_line":"            # ignore ldap object whose attr value has empty strings or"},{"line_number":1427,"context_line":"            # contains only whitespaces."},{"line_number":1428,"context_line":"            if ldap_result_attr_vals:"},{"line_number":1429,"context_line":"                if ldap_result_attr_vals[0] and \\"},{"line_number":1430,"context_line":"                        ldap_result_attr_vals[0].strip():"},{"line_number":1431,"context_line":"                    result.append(obj)"},{"line_number":1432,"context_line":"        # except {\u0027uid\u0027: [\u0027fake_id5\u0027], \u0027cn\u0027: [\"name\"]}, all entries"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_e3523568","line":1429,"updated":"2018-10-01 13:32:17.000000000","message":"NIT: don\u0027t line wrap with \\ use parens instead","commit_id":"b43115af69f24242a1aa3c3b0409fa9ab75e82f2"}],"keystone/tests/unit/test_backend_ldap.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"19a19ca988c95bcca628e5c24d1cf757dc3d4b8d","unresolved":false,"context_lines":[{"line_number":1349,"context_line":"        user_refs \u003d user_api.get_all()"},{"line_number":1350,"context_line":"        # validate that keystone.identity.backends.ldap.common.BaseLdap."},{"line_number":1351,"context_line":"        # _filter_ldap_result_by_attr() method filtered the ldap query results"},{"line_number":1352,"context_line":"        # whose name attribute keys having case sensitive characters."},{"line_number":1353,"context_line":"        self.assertEqual(2, len(user_refs))"},{"line_number":1354,"context_line":""},{"line_number":1355,"context_line":"        self.assertEqual(\u0027junk1\u0027, user_refs[0][\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_28183a1c","line":1352,"range":{"start_line":1352,"start_character":48,"end_line":1352,"end_character":57},"updated":"2018-09-28 09:19:21.000000000","message":"(nit) insensitive","commit_id":"cd80a5e1753e06c66cd7a914dd8c010a645ef733"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"110a895b485f965867fc0100d50a11a6c28784a5","unresolved":false,"context_lines":[{"line_number":1349,"context_line":"        user_refs \u003d user_api.get_all()"},{"line_number":1350,"context_line":"        # validate that keystone.identity.backends.ldap.common.BaseLdap."},{"line_number":1351,"context_line":"        # _filter_ldap_result_by_attr() method filtered the ldap query results"},{"line_number":1352,"context_line":"        # whose name attribute keys having case sensitive characters."},{"line_number":1353,"context_line":"        self.assertEqual(2, len(user_refs))"},{"line_number":1354,"context_line":""},{"line_number":1355,"context_line":"        self.assertEqual(\u0027junk1\u0027, user_refs[0][\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_b7dd5edf","line":1352,"range":{"start_line":1352,"start_character":48,"end_line":1352,"end_character":57},"in_reply_to":"3f79a3b5_28183a1c","updated":"2018-10-01 06:12:09.000000000","message":"Done","commit_id":"cd80a5e1753e06c66cd7a914dd8c010a645ef733"}],"releasenotes/notes/slug-goes-here-7e11213743754999.yaml":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"19a19ca988c95bcca628e5c24d1cf757dc3d4b8d","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    Keystone was not able to find any users while the LDAP user name attribute"},{"line_number":6,"context_line":"    was configured to \"samaccountname\", but could find users when reconfigured"},{"line_number":7,"context_line":"    to use \"sAMAccountName\". LDAP is not supposed to be case-sensitive, so"},{"line_number":8,"context_line":"    either."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_a8244a61","line":8,"updated":"2018-09-28 09:19:21.000000000","message":"Could you rephrase this a little to emphasize the fix rather than the bug? Something like:\n\nLDAP attribute names are now matched case insensitively to comply with LDAP implementations.","commit_id":"cd80a5e1753e06c66cd7a914dd8c010a645ef733"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"110a895b485f965867fc0100d50a11a6c28784a5","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    Keystone was not able to find any users while the LDAP user name attribute"},{"line_number":6,"context_line":"    was configured to \"samaccountname\", but could find users when reconfigured"},{"line_number":7,"context_line":"    to use \"sAMAccountName\". LDAP is not supposed to be case-sensitive, so"},{"line_number":8,"context_line":"    either."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_d7da5ae4","line":8,"in_reply_to":"3f79a3b5_a8244a61","updated":"2018-10-01 06:12:09.000000000","message":"Done","commit_id":"cd80a5e1753e06c66cd7a914dd8c010a645ef733"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"b9aa955fe872ac249849ca347ade56e7d3bd990c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3f79a3b5_94b13548","updated":"2018-10-01 15:34:24.000000000","message":"Ugh I just noticed this file name needs to be fixed, slug-goes-here is not a good file name","commit_id":"361e38fb29c91a7bdf5164e9a0a37004a48da2e7"}]}
