diff --git a/seahub/api2/endpoints/admin/libraries.py b/seahub/api2/endpoints/admin/libraries.py index db1477a0d5..d9969c01ec 100644 --- a/seahub/api2/endpoints/admin/libraries.py +++ b/seahub/api2/endpoints/admin/libraries.py @@ -9,7 +9,6 @@ from rest_framework import status from django.template.defaultfilters import filesizeformat from django.utils.translation import ugettext as _ -import seaserv from seaserv import ccnet_api, seafile_api, seafserv_threaded_rpc from seahub.views import get_system_default_repo_id @@ -18,6 +17,11 @@ from seahub.api2.authentication import TokenAuthentication from seahub.api2.throttling import UserRateThrottle from seahub.api2.utils import api_error +try: + from seahub.settings import MULTI_TENANCY +except ImportError: + MULTI_TENANCY = False + logger = logging.getLogger(__name__) def get_repo_info(repo): @@ -170,18 +174,19 @@ class AdminLibrary(APIView): error_msg = 'User %s not found.' % new_owner return api_error(status.HTTP_404_NOT_FOUND, error_msg) - try: - if seafserv_threaded_rpc.get_org_id_by_repo_id(repo_id) > 0: - error_msg = 'Can not transfer organization library.' - return api_error(status.HTTP_403_FORBIDDEN, error_msg) + if MULTI_TENANCY: + try: + if seafserv_threaded_rpc.get_org_id_by_repo_id(repo_id) > 0: + error_msg = 'Can not transfer organization library.' + return api_error(status.HTTP_403_FORBIDDEN, error_msg) - if ccnet_api.get_orgs_by_user(new_owner): - error_msg = 'Can not transfer library to organization user %s' % new_owner - return api_error(status.HTTP_403_FORBIDDEN, error_msg) - except Exception as e: - logger.error(e) - error_msg = 'Internal Server Error' - return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) + if ccnet_api.get_orgs_by_user(new_owner): + error_msg = 'Can not transfer library to organization user %s' % new_owner + return api_error(status.HTTP_403_FORBIDDEN, error_msg) + except Exception as e: + logger.error(e) + error_msg = 'Internal Server Error' + return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) repo_owner = seafile_api.get_repo_owner(repo_id) @@ -225,8 +230,7 @@ class AdminLibrary(APIView): if repo_id != pub_repo.id: continue - seaserv.seafserv_threaded_rpc.set_inner_pub_repo( - repo_id, pub_repo.permission) + seafile_api.add_inner_pub_repo(repo_id, pub_repo.permission) break diff --git a/seahub/views/sysadmin.py b/seahub/views/sysadmin.py index 6ae19b362c..f5e76f5b63 100644 --- a/seahub/views/sysadmin.py +++ b/seahub/views/sysadmin.py @@ -1523,18 +1523,19 @@ def sys_repo_transfer(request): messages.error(request, _(u'Failed to transfer, user %s not found') % new_owner) return HttpResponseRedirect(next) - try: - if seafserv_threaded_rpc.get_org_id_by_repo_id(repo_id) > 0: - messages.error(request, _(u'Can not transfer organization library')) - return HttpResponseRedirect(next) + if MULTI_TENANCY: + try: + if seafserv_threaded_rpc.get_org_id_by_repo_id(repo_id) > 0: + messages.error(request, _(u'Can not transfer organization library')) + return HttpResponseRedirect(next) - if ccnet_api.get_orgs_by_user(new_owner): - messages.error(request, _(u'Can not transfer library to organization user %s') % new_owner) + if ccnet_api.get_orgs_by_user(new_owner): + messages.error(request, _(u'Can not transfer library to organization user %s') % new_owner) + return HttpResponseRedirect(next) + except Exception as e: + logger.error(e) + messages.error(request, 'Internal Server Error') return HttpResponseRedirect(next) - except Exception as e: - logger.error(e) - messages.error(request, 'Internal Server Error') - return HttpResponseRedirect(next) repo_owner = seafile_api.get_repo_owner(repo_id) @@ -1578,8 +1579,7 @@ def sys_repo_transfer(request): if repo_id != pub_repo.id: continue - seaserv.seafserv_threaded_rpc.set_inner_pub_repo( - repo_id, pub_repo.permission) + seafile_api.add_inner_pub_repo(repo_id, pub_repo.permission) break