diff --git a/seahub/api2/endpoints/admin/library_dirents.py b/seahub/api2/endpoints/admin/library_dirents.py index c0219e9e4e..61a5d9c9f9 100644 --- a/seahub/api2/endpoints/admin/library_dirents.py +++ b/seahub/api2/endpoints/admin/library_dirents.py @@ -16,9 +16,10 @@ from seaserv import seafile_api from pysearpc import SearpcError from seahub.utils.timeutils import timestamp_to_isoformat_timestr +from seahub.utils.repo import get_repo_owner from seahub.views.sysadmin import can_view_sys_admin_repo from seahub.views.file import send_file_access_msg -from seahub.utils import is_org_context, gen_file_get_url, \ +from seahub.utils import gen_file_get_url, \ check_filename_with_rename, is_valid_dirent_name, \ normalize_dir_path, normalize_file_path from seahub.views import get_system_default_repo_id @@ -82,10 +83,7 @@ class AdminLibraryDirents(APIView): error_msg = 'Folder %s not found.' % parent_dir return api_error(status.HTTP_404_NOT_FOUND, error_msg) - if is_org_context(request): - repo_owner = seafile_api.get_org_repo_owner(repo_id) - else: - repo_owner = seafile_api.get_repo_owner(repo_id) + repo_owner = get_repo_owner(request, repo_id) try: dirs = seafile_api.list_dir_with_perm(repo_id, diff --git a/seahub/utils/repo.py b/seahub/utils/repo.py index a7dbca8810..545cb23eff 100644 --- a/seahub/utils/repo.py +++ b/seahub/utils/repo.py @@ -36,9 +36,15 @@ def get_sub_repo_abbrev_origin_path(repo_name, origin_path): def get_repo_owner(request, repo_id): if is_org_context(request): - return seafile_api.get_org_repo_owner(repo_id) + repo_owner = seafile_api.get_org_repo_owner(repo_id) else: - return seafile_api.get_repo_owner(repo_id) + # for admin panel + # administrator may get org repo's owner + repo_owner = seafile_api.get_repo_owner(repo_id) + if not repo_owner: + repo_owner = seafile_api.get_org_repo_owner(repo_id) + + return repo_owner def is_repo_owner(request, repo_id, username): return username == get_repo_owner(request, repo_id)