From 4f1ae25128ab12db055ed247d8724294c5a98ff2 Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Tue, 1 Apr 2014 13:00:26 -0400 Subject: [PATCH] Make sure the TAR import system handles TAR paths with local directory references --- auth/auth_context.py | 3 ++- initdb.py | 6 ++++++ static/js/app.js | 21 +++++++++++++++++++-- test/data/test.db | Bin 536576 -> 536576 bytes 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/auth/auth_context.py b/auth/auth_context.py index 2aad14685..b97ffa02d 100644 --- a/auth/auth_context.py +++ b/auth/auth_context.py @@ -20,7 +20,8 @@ def get_authenticated_user(): set_authenticated_user(loaded) user = loaded - logger.debug('Returning authenticated user: %s', user.username) + if user: + logger.debug('Returning authenticated user: %s', user.username) return user diff --git a/initdb.py b/initdb.py index 0f6696b7d..fdb3f8e01 100644 --- a/initdb.py +++ b/initdb.py @@ -355,6 +355,12 @@ def populate_database(): build2.uuid = 'deadpork-dead-pork-dead-porkdeadpork' build2.save() + build3 = model.create_repository_build(building, token, job_config, + 'f49d07f9-93da-474d-ad5f-c852107c3892', + 'build-name', trigger) + build3.uuid = 'deadduck-dead-duck-dead-duckdeadduck' + build3.save() + org = model.create_organization('buynlarge', 'quay@devtable.com', new_user_1) org.stripe_id = TEST_STRIPE_ID diff --git a/static/js/app.js b/static/js/app.js index 302ffeaea..57a012a44 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -225,6 +225,19 @@ quayApp = angular.module('quay', ['ngRoute', 'chieffancypants.loadingBar', 'angu }; dataFileService.tryAsTarGz_ = function(buf, success, failure) { + var collapsePath = function(originalPath) { + // Tar files can contain entries of the form './', so we need to collapse + // those paths down. + var parts = originalPath.split('/'); + for (var i = parts.length - 1; i >= 0; i--) { + var part = parts[i]; + if (part == '.') { + parts.splice(i, 1); + } + } + return parts.join('/'); + }; + var gunzip = new Zlib.Gunzip(buf); var plain = gunzip.decompress(); @@ -239,9 +252,13 @@ quayApp = angular.module('quay', ['ngRoute', 'chieffancypants.loadingBar', 'angu var files = []; for (var i = 0; i < handler.files.length; ++i) { var currentFile = handler.files[i]; + var path = collapsePath(currentFile.filename); + + if (path == '') { continue; } + files.push({ - 'name': dataFileService.getName_(currentFile.filename), - 'path': currentFile.filename, + 'name': dataFileService.getName_(path), + 'path': path, 'canRead': true, 'toBlob': (function(currentFile) { return function() { diff --git a/test/data/test.db b/test/data/test.db index 38f50c490f72f993dcc9c52e7ebfbbd5e6fd9cfa..af529991cb856f0d98193c9fe3ed4a0bbf456a3a 100644 GIT binary patch delta 5482 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