def METHOD_NAME(self, algo, hash, user=None):
    """
    Return the first file that the user has access to given its hash and its
    associated hashsum algorithm name.
    :param algo: Algorithm the given hash is encoded with.
    :param hash: Hash of the file to find.
    :param user: User to test access against.
     Default (none) is the current user.
    :return: A file document.
    """
    self._validateAlgo(algo)
    query = {algo: hash}
    fileModel = FileModel()
    cursor = fileModel.find(query)
    if not user:
        user = self.getCurrentUser()
    for file in cursor:
        if fileModel.hasAccess(file, user, AccessType.READ):
            return file
    return None