def get_grants(bucket_name, include_owner=True, **conn): acl = get_bucket_acl(Bucket=bucket_name, **conn) grantees = {} grantee_ref = {} for grant in acl['Grants']: grantee = grant['Grantee'] display_name = grantee.get('DisplayName') if display_name == 'None' or display_name == 'null': logger.info("Received a bad display name: %s", display_name) # Make the grantee based on the canonical ID -- if it's a canonical user: if grantee["Type"] == "CanonicalUser": gname = grantee["ID"] if display_name: grantee_ref[gname] = display_name # If it's a Group, then use the "URI" else: gname = grantee["URI"] if gname in grantees: grantees[gname].append(grant['Permission']) grantees[gname] = sorted(grantees[gname]) else: grantees[gname] = [grant['Permission']] if include_owner: return grantees, grantee_ref, {"ID": acl["Owner"]["ID"]} return grantees, grantee_ref
def get_grants(bucket_name, include_owner=False, **conn): acl = get_bucket_acl(Bucket=bucket_name, **conn) grantees = {} for grant in acl['Grants']: grantee = grant['Grantee'] display_name = grantee.get('DisplayName') if display_name == 'None' or display_name == 'null': logger.info("Received a bad display name: %s", display_name) if display_name is None: gname = grantee.get('URI') else: gname = grantee['DisplayName'] if gname in grantees: grantees[gname].append(grant['Permission']) grantees[gname] = sorted(grantees[gname]) else: grantees[gname] = [grant['Permission']] if include_owner: return grantees, acl["Owner"] return grantees