mirror of
https://github.com/haiwen/seahub.git
synced 2025-08-05 17:14:28 +00:00
fix transfer share lonks
This commit is contained in:
parent
b99c923f8d
commit
755f9fbbc6
@ -19,7 +19,7 @@ from seahub.signals import repo_deleted
|
|||||||
from seahub.views import get_system_default_repo_id
|
from seahub.views import get_system_default_repo_id
|
||||||
from seahub.admin_log.signals import admin_operation
|
from seahub.admin_log.signals import admin_operation
|
||||||
from seahub.admin_log.models import REPO_CREATE, REPO_DELETE, REPO_TRANSFER
|
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
|
from seahub.base.templatetags.seahub_tags import email2nickname, email2contact_email
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -339,6 +339,15 @@ class AdminLibrary(APIView):
|
|||||||
seafile_api.set_group_repo(repo_id, shared_group_id,
|
seafile_api.set_group_repo(repo_id, shared_group_id,
|
||||||
new_owner, shared_group.perm)
|
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
|
# check if current repo is pub-repo
|
||||||
# if YES, reshare current repo to public
|
# if YES, reshare current repo to public
|
||||||
for pub_repo in pub_repos:
|
for pub_repo in pub_repos:
|
||||||
|
@ -2,6 +2,7 @@ import json
|
|||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from seahub.test_utils import BaseTestCase
|
from seahub.test_utils import BaseTestCase
|
||||||
from tests.common.utils import randstring
|
from tests.common.utils import randstring
|
||||||
|
from seahub.share.models import FileShare, UploadLinkShare
|
||||||
|
|
||||||
class AdminLibrariesTest(BaseTestCase):
|
class AdminLibrariesTest(BaseTestCase):
|
||||||
|
|
||||||
@ -123,6 +124,11 @@ class AdminLibraryTest(BaseTestCase):
|
|||||||
self.repo_id= self.repo.repo_id
|
self.repo_id= self.repo.repo_id
|
||||||
|
|
||||||
self.library_url = reverse('api-v2.1-admin-library', args=[self.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):
|
def test_can_get(self):
|
||||||
|
|
||||||
@ -187,3 +193,27 @@ class AdminLibraryTest(BaseTestCase):
|
|||||||
self.login_as(self.user)
|
self.login_as(self.user)
|
||||||
resp = self.client.delete(self.library_url)
|
resp = self.client.delete(self.library_url)
|
||||||
self.assertEqual(403, resp.status_code)
|
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