mirror of
https://github.com/haiwen/seahub.git
synced 2025-04-28 03:10:45 +00:00
Merge pull request #2068 from haiwen/fix-transfer-share-links
fix transfer share links
This commit is contained in:
commit
12963cb7ef
@ -19,7 +19,7 @@ from seahub.signals import repo_deleted
|
||||
from seahub.views import get_system_default_repo_id
|
||||
from seahub.admin_log.signals import admin_operation
|
||||
from seahub.admin_log.models import REPO_CREATE, REPO_DELETE, REPO_TRANSFER
|
||||
|
||||
from seahub.share.models import FileShare, UploadLinkShare
|
||||
from seahub.base.templatetags.seahub_tags import email2nickname, email2contact_email
|
||||
|
||||
try:
|
||||
@ -339,6 +339,15 @@ class AdminLibrary(APIView):
|
||||
seafile_api.set_group_repo(repo_id, shared_group_id,
|
||||
new_owner, shared_group.perm)
|
||||
|
||||
# reshare repo to links
|
||||
try:
|
||||
UploadLinkShare.objects.filter(username=repo_owner, repo_id=repo_id).update(username=new_owner)
|
||||
FileShare.objects.filter(username=repo_owner, repo_id=repo_id).update(username=new_owner)
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
error_msg = 'Internal Server Error'
|
||||
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)
|
||||
|
||||
# check if current repo is pub-repo
|
||||
# if YES, reshare current repo to public
|
||||
for pub_repo in pub_repos:
|
||||
|
@ -2,6 +2,7 @@ import json
|
||||
from django.core.urlresolvers import reverse
|
||||
from seahub.test_utils import BaseTestCase
|
||||
from tests.common.utils import randstring
|
||||
from seahub.share.models import FileShare, UploadLinkShare
|
||||
|
||||
class AdminLibrariesTest(BaseTestCase):
|
||||
|
||||
@ -123,6 +124,11 @@ class AdminLibraryTest(BaseTestCase):
|
||||
self.repo_id= self.repo.repo_id
|
||||
|
||||
self.library_url = reverse('api-v2.1-admin-library', args=[self.repo_id])
|
||||
self.fs_share = FileShare.objects.create_dir_link(self.user.username,
|
||||
self.repo_id, self.folder, None, None)
|
||||
|
||||
self.fs_upload = UploadLinkShare.objects.create_upload_link_share(self.user.username,
|
||||
self.repo_id, self.folder, None, None)
|
||||
|
||||
def test_can_get(self):
|
||||
|
||||
@ -187,3 +193,27 @@ class AdminLibraryTest(BaseTestCase):
|
||||
self.login_as(self.user)
|
||||
resp = self.client.delete(self.library_url)
|
||||
self.assertEqual(403, resp.status_code)
|
||||
|
||||
def test_reshare_to_share_links_after_transfer_repo(self):
|
||||
self.login_as(self.admin)
|
||||
|
||||
assert len(UploadLinkShare.objects.all()) == 1
|
||||
|
||||
data = 'owner=%s' % self.admin_name
|
||||
resp = self.client.put(self.library_url, data, 'application/x-www-form-urlencoded')
|
||||
|
||||
self.assertEqual(200, resp.status_code)
|
||||
json_resp = json.loads(resp.content)
|
||||
assert json_resp['owner'] == self.admin_name
|
||||
|
||||
def test_reshare_to_upload_links_after_transfer_repo(self):
|
||||
self.login_as(self.admin)
|
||||
|
||||
assert len(UploadLinkShare.objects.all()) == 1
|
||||
|
||||
data = 'owner=%s' % self.admin_name
|
||||
resp = self.client.put(self.library_url, data, 'application/x-www-form-urlencoded')
|
||||
|
||||
self.assertEqual(200, resp.status_code)
|
||||
json_resp = json.loads(resp.content)
|
||||
assert json_resp['owner'] == self.admin_name
|
||||
|
Loading…
Reference in New Issue
Block a user