1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-03 16:10:26 +00:00

update repo commit dir field

This commit is contained in:
sniper-py
2019-06-05 11:11:00 +08:00
parent 9860fe63d7
commit 7dbdae81db
2 changed files with 19 additions and 14 deletions

View File

@@ -15,6 +15,7 @@ from seahub.api2.authentication import TokenAuthentication
from seahub.api2.utils import api_error from seahub.api2.utils import api_error
from seahub.views import check_folder_permission from seahub.views import check_folder_permission
from seaserv import seafile_api from seaserv import seafile_api
from seahub.utils import normalize_dir_path
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -24,20 +25,21 @@ class RepoCommitDirView(APIView):
permission_classes = (IsAuthenticated,) permission_classes = (IsAuthenticated,)
throttle_classes = (UserRateThrottle,) throttle_classes = (UserRateThrottle,)
def _get_item_info(self, item, path): def _get_item_info(self, dirent, path):
item_info = { # # seahub/seahub/api2/views get_dir_file_recursively
'parent_dir': path, entry = {}
'name': item.obj_name, if stat.S_ISDIR(dirent.mode):
} entry['type'] = 'dir'
if stat.S_ISDIR(item.mode):
item_info['type'] = 'dir'
else: else:
item_info['type'] = 'file' entry['type'] = 'file'
item_info['size'] = item.size entry['size'] = dirent.size
return item_info entry['parent_dir'] = path
entry['obj_id'] = dirent.obj_id
entry['name'] = dirent.obj_name
return entry
def get(self, request, repo_id, commit_id, format=None): def get(self, request, repo_id, commit_id, format=None):
""" List dir by commit """ List dir by commit
@@ -49,6 +51,7 @@ class RepoCommitDirView(APIView):
# argument check # argument check
path = request.GET.get('path', '/') path = request.GET.get('path', '/')
path = normalize_dir_path(path)
# resource check # resource check
repo = seafile_api.get_repo(repo_id) repo = seafile_api.get_repo(repo_id)

View File

@@ -5,7 +5,7 @@ from django.core.urlresolvers import reverse
from seaserv import seafile_api from seaserv import seafile_api
from seahub.test_utils import BaseTestCase from seahub.test_utils import BaseTestCase
from seahub.utils import normalize_dir_path
from tests.common.utils import randstring from tests.common.utils import randstring
@@ -61,7 +61,7 @@ class RepoCommitDirTest(BaseTestCase):
assert json_resp['dirent_list'][0] assert json_resp['dirent_list'][0]
assert json_resp['dirent_list'][0]['type'] == 'file' assert json_resp['dirent_list'][0]['type'] == 'file'
assert json_resp['dirent_list'][0]['name'] == self.inner_file_name assert json_resp['dirent_list'][0]['name'] == self.inner_file_name
assert json_resp['dirent_list'][0]['parent_dir'] == self.folder_path assert json_resp['dirent_list'][0]['parent_dir'] == normalize_dir_path(self.folder_path)
assert json_resp['dirent_list'][0]['size'] == 0 assert json_resp['dirent_list'][0]['size'] == 0
# test can get without path # test can get without path
@@ -74,11 +74,13 @@ class RepoCommitDirTest(BaseTestCase):
assert json_resp['dirent_list'][0]['type'] == 'dir' assert json_resp['dirent_list'][0]['type'] == 'dir'
assert json_resp['dirent_list'][0]['name'] == self.folder_name assert json_resp['dirent_list'][0]['name'] == self.folder_name
assert json_resp['dirent_list'][0]['parent_dir'] == '/' assert json_resp['dirent_list'][0]['parent_dir'] == '/'
assert json_resp['dirent_list'][0].get('size') is None assert json_resp['dirent_list'][0]['obj_id']
assert json_resp['dirent_list'][1] assert json_resp['dirent_list'][1]
assert json_resp['dirent_list'][1]['type'] == 'file' assert json_resp['dirent_list'][1]['type'] == 'file'
assert json_resp['dirent_list'][1]['name'] == self.file_name assert json_resp['dirent_list'][1]['name'] == self.file_name
assert json_resp['dirent_list'][1]['parent_dir'] == '/' assert json_resp['dirent_list'][1]['parent_dir'] == '/'
assert json_resp['dirent_list'][0]['obj_id']
assert json_resp['dirent_list'][1]['size'] == 0 assert json_resp['dirent_list'][1]['size'] == 0
# test_can_not_get_with_invalid_path_parameter # test_can_not_get_with_invalid_path_parameter