)]}'
{"keystone/assignment/backends/sql.py":[{"author":{"_account_id":24269,"name":"chenaidong1","email":"chen.aidong@zte.com.cn","username":"chenaidong1"},"change_message_id":"00735d0c5c2b3765d4924d2a5e822863e53af06f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    GROUP_PROJECT \u003d \u0027GroupProject\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def calculate_type(cls, user_id, group_id, project_id, domain_id):"},{"line_number":33,"context_line":"        if user_id:"},{"line_number":34,"context_line":"            if project_id:"},{"line_number":35,"context_line":"                return cls.USER_PROJECT"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_a7b3cae8","line":32,"range":{"start_line":32,"start_character":8,"end_line":32,"end_character":22},"updated":"2017-08-30 05:27:31.000000000","message":"If \"project_id\" and \"domain_id\" is None, \"is_global\" is false, the error result will be returned. Therefore I suggest to add parameter \"is_global\".\n\n    def calculate_type(cls, user_id, group_id, project_id, \n                       domain_id, is_global):\n        if user_id:\n            if project_id:\n                return cls.USER_PROJECT\n            if domain_id:\n                return cls.USER_DOMAIN\n            if is_global    \n                return cls.USER_GLOBAL\n        if group_id:\n            if project_id:\n                return cls.GROUP_PROJECT\n            if domain_id:\n                return cls.GROUP_DOMAIN\n            if is_global       \n                return cls.GROUP_GLOBAL\n        # Invalid parameters combination\n        raise exception.AssignmentTypeCalculationError(**locals())","commit_id":"3b6d52b773a2b30fbe1c9c24e9920701311ef97b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b1e554c822a445de5153f2bb9ea045a4d7635dd2","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    GROUP_PROJECT \u003d \u0027GroupProject\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def calculate_type(cls, user_id, group_id, project_id, domain_id):"},{"line_number":33,"context_line":"        if user_id:"},{"line_number":34,"context_line":"            if project_id:"},{"line_number":35,"context_line":"                return cls.USER_PROJECT"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_1cf2ac9b","line":32,"in_reply_to":"7f287b81_8a433542","updated":"2017-09-01 15:51:15.000000000","message":"Done","commit_id":"3b6d52b773a2b30fbe1c9c24e9920701311ef97b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b1e554c822a445de5153f2bb9ea045a4d7635dd2","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    GROUP_PROJECT \u003d \u0027GroupProject\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def calculate_type(cls, user_id, group_id, project_id, domain_id):"},{"line_number":33,"context_line":"        if user_id:"},{"line_number":34,"context_line":"            if project_id:"},{"line_number":35,"context_line":"                return cls.USER_PROJECT"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_fceec0b2","line":32,"in_reply_to":"7f287b81_a7b3cae8","updated":"2017-09-01 15:51:15.000000000","message":"Done","commit_id":"3b6d52b773a2b30fbe1c9c24e9920701311ef97b"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"edf57db61145f39ee9de55e6a21be811097544ad","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    GROUP_PROJECT \u003d \u0027GroupProject\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def calculate_type(cls, user_id, group_id, project_id, domain_id):"},{"line_number":33,"context_line":"        if user_id:"},{"line_number":34,"context_line":"            if project_id:"},{"line_number":35,"context_line":"                return cls.USER_PROJECT"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_8a433542","line":32,"range":{"start_line":32,"start_character":8,"end_line":32,"end_character":22},"in_reply_to":"7f287b81_a7b3cae8","updated":"2017-08-30 06:09:59.000000000","message":"That would be a nice improvement.","commit_id":"3b6d52b773a2b30fbe1c9c24e9920701311ef97b"},{"author":{"_account_id":11589,"name":"Harry Rybacki","email":"hrybacki@redhat.com","username":"hrybacki"},"change_message_id":"844110625c1494ed7e9eacf46602c0b7017335eb","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        \"\"\"Return a list of role assignment types based on provided entities."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        If one of user or group (the \"actor\") as well as one of project or"},{"line_number":178,"context_line":"        domain (the \"target\") are provided, the list will contain the role"},{"line_number":179,"context_line":"        assignment type for that specific pair of actor and target."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        If only an actor or target is provided, the list will contain the"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_7af690d9","line":178,"updated":"2017-08-30 14:28:32.000000000","message":"docstring needs to be updated accordingly","commit_id":"3b6d52b773a2b30fbe1c9c24e9920701311ef97b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b1e554c822a445de5153f2bb9ea045a4d7635dd2","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        \"\"\"Return a list of role assignment types based on provided entities."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        If one of user or group (the \"actor\") as well as one of project or"},{"line_number":178,"context_line":"        domain (the \"target\") are provided, the list will contain the role"},{"line_number":179,"context_line":"        assignment type for that specific pair of actor and target."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        If only an actor or target is provided, the list will contain the"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_5c0cb441","line":178,"in_reply_to":"7f287b81_7af690d9","updated":"2017-09-01 15:51:15.000000000","message":"Good catch, thanks!","commit_id":"3b6d52b773a2b30fbe1c9c24e9920701311ef97b"}]}
