~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to lib/fileservice_lib/action.py

  • Committer: mattgiuca
  • Date: 2008-06-13 09:13:30 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:763
Zip file uploading now works.
(Patch submitted by wagrant, modified and approved by mgiuca).

2 bugs fixed: Paths were being created as filesystem-relative which should
have been jail-relative. Zip was being passed the string contents of the file,
when it should have been passed the file object.

common/zip.py: Now accepts an absolute path, not a URL path.
    (Doesn't munge the path).
    This is so it can be called from inside or outside the jail;
    the caller decides which filesystem it is relative to.
fileservice_lib/action.py:
    1. Now passes the absolute path within the jail.
    2. Now passes the field "file" not "data" (file object, not string).
        Static Typing: Sometimes It Is Good

Show diffs side-by-side

added added

removed removed

Lines of Context:
355
355
    for datum in data:
356
356
        # Each of the uploaded files
357
357
        filepath = os.path.join(path, datum.filename)
358
 
        filedata = datum.value
 
358
        filedata = datum.file
359
359
 
360
360
        if unpack and datum.filename.lower().endswith(".zip"):
361
361
            # A zip file - unpack it instead of just copying
363
363
            # Note: Just unzip into the current directory (ignore the
364
364
            # filename)
365
365
            try:
366
 
                zip.unzip(path, filedata)
 
366
                # First get the entire path (within jail)
 
367
                _, _, abspath = studpath.url_to_jailpaths(path)
 
368
                abspath = os.path.join(os.sep, abspath)
 
369
                zip.unzip(abspath, filedata)
367
370
            except (OSError, IOError):
368
371
                goterror = True
369
372
        else: