def delete_view(request): try: data = json.loads(request.body) for path in data['paths']: full_path = os.path.join(settings.MEDIA_ROOT, drop_path_base(path)) verify_path(full_path) delete_any(full_path) except Exception, e: logging.exception('Error in delete_view') return HttpResponse(unicode(e))
def paste_view(request): from shutil import move data = request.session.get('clipboard', {}) paths = data.get('paths', []) if not paths: return HttpResponse('Your clipboard is empty.') mode = data.get('mode', 'copy') method = copy_any if mode == 'copy' else move try: target_dir = os.path.join(settings.MEDIA_ROOT, get_path(request)) for path in paths: source_path = os.path.join(settings.MEDIA_ROOT, drop_path_base(path)) verify_path(source_path) file_name = [part for part in path.split('/') if part][-1] target_path = os.path.join(target_dir, file_name) while os.path.exists(target_path): file_name = '_' + file_name target_path = os.path.join(target_dir, file_name) verify_path(target_path) method(source_path, target_path) except Exception, e: logging.exception('Error in paste_view') return HttpResponse(unicode(e))