예제 #1
0
def delete_attachfile(request, pagename, aname, log=False):
    try:
        fpath, exists = check_attachfile(request, pagename, aname)
        if not exists:
            return False

        os.unlink(fpath)

        if log:
            _addLogEntry(request, 'ATTDEL', pagename, aname)
    except:
        return False

    return True
예제 #2
0
def delete_attachfile(request, pagename, aname, log=False):
    try:
        fpath, exists = check_attachfile(request, pagename, aname)
        if not exists:
            return False

        os.unlink(fpath)

        if log:
            _addLogEntry(request, 'ATTDEL', pagename, aname)
    except:
        return False

    return True
예제 #3
0
def save_attachfile(request, pagename, content, aname, 
                    overwrite=False, log=False):
    try:
        fpath, exists = check_attachfile(request, pagename, aname)
        if not overwrite and exists:
            return False

        # Save the data to a file under the desired name
        stream = open(fpath, 'wb')
        stream.write(content)
        stream.close()

        if log:
            _addLogEntry(request, 'ATTNEW', pagename, aname)
    except:
        return False

    return True
예제 #4
0
    def package(self):
        """ Calls collectpackage() with the arguments specified. """
        _ = self.request.getText
        form = self.request.form

        # Get new name from form and normalize.
        pagelist = form.get('pagelist', [u''])[0]
        packagename = form.get('packagename', [u''])[0]
        include_attachments = form.get('include_attachments', [False])[0]

        if not form.get('submit', [None])[0]:
            self.request.theme.add_msg(self.makeform(), "dialog")
            raise ActionError

        target = wikiutil.taintfilename(packagename)

        if not target:
            self.request.theme.add_msg(self.makeform(_('Invalid filename "%s"!') % wikiutil.escape(packagename)), "error")
            raise ActionError

        # get directory, and possibly create it
        attach_dir = Page(self.request, self.page.page_name).getPagePath("attachments", check_create=1)
        fpath = os.path.join(attach_dir, target).encode(config.charset)
        if os.path.exists(fpath):
            self.request.theme.add_msg(_("Attachment '%(target)s' (remote name '%(filename)s') already exists.") % {
                'target': wikiutil.escape(target), 'filename': wikiutil.escape(target)}, "error")
            raise ActionError

        # Generate a package
        output = open(fpath, "wb")
        package = self.collectpackage(unpackLine(pagelist, ","), output, target, include_attachments)

        if package:
            self.request.theme.add_msg(self.makeform(), "dialog")
            raise ActionError

        _addLogEntry(self.request, 'ATTNEW', self.pagename, target)

        self.request.theme.add_msg(_("Created the package %s containing the pages %s.") % (wikiutil.escape(target), wikiutil.escape(pagelist)))
        raise ActionError
예제 #5
0
def save_attachfile(request,
                    pagename,
                    content,
                    aname,
                    overwrite=False,
                    log=False):
    try:
        fpath, exists = check_attachfile(request, pagename, aname)
        if not overwrite and exists:
            return False

        # Save the data to a file under the desired name
        stream = open(fpath, 'wb')
        stream.write(content)
        stream.close()

        if log:
            _addLogEntry(request, 'ATTNEW', pagename, aname)
    except:
        return False

    return True