def file_list(request, rel_path): focus_index = request.GET.get('focus', 0) file_list_view = reverse('file_list', current_app='file_server', args=['']) base_dir = get_base_dir(request.user) directory = os.path.normpath(os.path.join(base_dir, rel_path)) #@ReservedAssignment if (not os.path.isdir(directory)): raise Http404 check_read_access(directory, request.user) path = '' if (rel_path): path = rel_path + '/' parent = '' if len(directory) >= len(base_dir): parent = file_list_view + os.path.split(rel_path)[0] dir_content = os.listdir(directory) file_list = [] for f in dir_content: abs_path = os.path.join(directory, f) if os.path.isdir(abs_path): rel_path_to_dir = os.path.join(rel_path, f) public_links = public_link_t.objects.filter(account=request.user, rel_path=rel_path_to_dir, is_directory=True, inode_num=get_inode_num(abs_path)) size = len(os.listdir(abs_path)) file_list.append(file_entry_t(f, public_links, size, True)) for f in dir_content: rel_path_to_file = os.path.join(rel_path, f) abs_path = os.path.join(directory, f) #ctime = get_ctime(abs_path) if os.path.isfile(abs_path): public_links = public_link_t.objects.filter( account=request.user, rel_path=rel_path_to_file, is_directory=False, inode_num=get_inode_num(abs_path)) file_size = os.path.getsize(abs_path) file_list.append(file_entry_t(f, public_links, file_size)) t = loader.get_template('file_server/file_list.html') upload_form = upload_file_form_t(initial={'rel_path':rel_path}) user_profile = get_user_profile(request.user) c = RequestContext(request, { 'file_list': file_list, 'rel_path': rel_path, 'path': path, 'file_list_view': file_list_view, 'parent': parent, 'upload_form': upload_form, 'focus_index': focus_index, 'quota': user_profile }) return HttpResponse(t.render(c))
def public_directory(request, key): public_link = get_object_or_404(public_link_t, key=key, is_directory=True) try: base_dir = get_base_dir(public_link.account) directory = os.path.join(base_dir, public_link.rel_path) if public_link.inode_num != get_inode_num(directory): raise Http404 check_read_access(directory, public_link.account) dir_content = os.listdir(directory) file_list = [] for f in dir_content: rel_path_to_file = os.path.join(directory, f) abs_path = os.path.join(directory, f) if os.path.isfile(abs_path): file_size = os.path.getsize(abs_path) file_list.append(file_entry_t(f, [], file_size)) t = loader.get_template('file_server/public_dir.html') #upload_form = upload_file_form_t(initial={'rel_path':rel_path}) user_profile = get_user_profile(public_link.account) upload_form = None if public_link.write_access: upload_form = upload_file_form_t(initial={'rel_path':key}) public_link.download_count += 1 public_link.save() c = RequestContext(request, { 'file_list': file_list, 'quota': user_profile, 'path' : public_link.rel_path, 'key' : key, 'upload_form' : upload_form }) return HttpResponse(t.render(c)) except IOError: raise Http404