import AccessControl

class ObjectResult:
    
    def __init__(self,objectId,version,weight=0,repository=None):
	"""shadow class to make sims look like search res"""
	if version == 'latest':
            ob=repository.catalog(objectId=objectId,version=version)
	    if ob:
                self = ob
        else:
	    self = repository.getRhaptosObject(objectId,version)

        self.matched={}
        self.fields={}
        self.weight=weight

AccessControl.allow_class(ObjectResult)
        )
        return self.zip_filename

    # forbidden methods
    # _write = write
    # write = None
    # writepy = None

    def writeobj(self, obj, arcname=None):
        # Check if this user has access to this object.
        if not AccessControl.getSecurityManager().checkPermission("View", obj):
            raise "Unauthorized", "not authorized to View %s" % (obj.absolute_url())

        if hasattr(obj, "_original"):
            fsname = obj._original._get_fsname(obj._original.filename)
        elif hasattr(obj, "_get_fsname"):
            fsname = obj._get_fsname(obj.filename)
        else:
            raise Exception, "Can not determine filename for object."

        self.write(filename=fsname, arcname=arcname)


def ZipFile(contents=None, filename=None):
    return _ZipFile(contents=contents, filename=filename)


if not testing:
    Globals.InitializeClass(_ZipFile)
    AccessControl.allow_class(_ZipFile)
import AccessControl


class ObjectResult:
    def __init__(self, objectId, version, weight=0, repository=None):
        """shadow class to make sims look like search res"""
        if version == 'latest':
            ob = repository.catalog(objectId=objectId, version=version)
            if ob:
                self = ob
        else:
            self = repository.getRhaptosObject(objectId, version)

        self.matched = {}
        self.fields = {}
        self.weight = weight


AccessControl.allow_class(ObjectResult)