def get_acl_groups_by_object(self, object, permission):
        """
        return list of groups that have access to object on "permission" permission
        """
        ct = ContentType.objects.get_for_model(object)
        acl_groups_permissions = cache.get(ACL_GROUPS_PERMISSIONS_CACHE)
        if acl_groups_permissions is None:
            acl_groups_permissions = self.cache_acl_groups(object)
        else:
            try:
                acl_groups_permissions[ct.pk][object.pk]
            except __HOLE__:
                acl_groups_permissions = self.cache_acl_groups(object)
        try:
            return acl_groups_permissions[ct.pk][object.id][permission]
        except:
            return []
dataset/ETHPy150Open zorna/zorna/zorna/acl/models.py/ACLPermissionManager.get_acl_groups_by_object