mirror of
https://github.com/haiwen/seahub.git
synced 2025-08-22 16:56:57 +00:00
update api of out shared repos/folders
return contact email when get info of out shared repos/folders
This commit is contained in:
parent
8bfba7b0a2
commit
fefb450b76
@ -13,7 +13,7 @@ from seaserv import seafile_api, ccnet_api
|
|||||||
from seahub.api2.utils import api_error
|
from seahub.api2.utils import api_error
|
||||||
from seahub.api2.authentication import TokenAuthentication
|
from seahub.api2.authentication import TokenAuthentication
|
||||||
from seahub.api2.throttling import UserRateThrottle
|
from seahub.api2.throttling import UserRateThrottle
|
||||||
|
from seahub.profile.models import Profile
|
||||||
from seahub.utils import is_org_context
|
from seahub.utils import is_org_context
|
||||||
from seahub.base.templatetags.seahub_tags import email2nickname
|
from seahub.base.templatetags.seahub_tags import email2nickname
|
||||||
|
|
||||||
@ -64,6 +64,7 @@ class SharedFolders(APIView):
|
|||||||
if repo.share_type == 'personal':
|
if repo.share_type == 'personal':
|
||||||
result['user_name'] = email2nickname(repo.user)
|
result['user_name'] = email2nickname(repo.user)
|
||||||
result['user_email'] = repo.user
|
result['user_email'] = repo.user
|
||||||
|
result['contact_email'] = Profile.objects.get_contact_email_by_user(repo.user)
|
||||||
|
|
||||||
if repo.share_type == 'group':
|
if repo.share_type == 'group':
|
||||||
group = ccnet_api.get_group(repo.group_id)
|
group = ccnet_api.get_group(repo.group_id)
|
||||||
|
@ -13,7 +13,7 @@ from seaserv import seafile_api, ccnet_api
|
|||||||
from seahub.api2.utils import api_error
|
from seahub.api2.utils import api_error
|
||||||
from seahub.api2.authentication import TokenAuthentication
|
from seahub.api2.authentication import TokenAuthentication
|
||||||
from seahub.api2.throttling import UserRateThrottle
|
from seahub.api2.throttling import UserRateThrottle
|
||||||
|
from seahub.profile.models import Profile
|
||||||
from seahub.utils import is_org_context, is_valid_username, send_perm_audit_msg
|
from seahub.utils import is_org_context, is_valid_username, send_perm_audit_msg
|
||||||
from seahub.base.templatetags.seahub_tags import email2nickname
|
from seahub.base.templatetags.seahub_tags import email2nickname
|
||||||
|
|
||||||
@ -65,6 +65,7 @@ class SharedRepos(APIView):
|
|||||||
if repo.share_type == 'personal':
|
if repo.share_type == 'personal':
|
||||||
result['user_name'] = email2nickname(repo.user)
|
result['user_name'] = email2nickname(repo.user)
|
||||||
result['user_email'] = repo.user
|
result['user_email'] = repo.user
|
||||||
|
result['contact_email'] = Profile.objects.get_contact_email_by_user(repo.user)
|
||||||
|
|
||||||
if repo.share_type == 'group':
|
if repo.share_type == 'group':
|
||||||
group = ccnet_api.get_group(repo.group_id)
|
group = ccnet_api.get_group(repo.group_id)
|
||||||
|
@ -1554,7 +1554,7 @@
|
|||||||
<td><img src="<%= icon_url %>" title="<%= icon_title %>" alt="<%= icon_title %>" width="24" /></td>
|
<td><img src="<%= icon_url %>" title="<%= icon_title %>" alt="<%= icon_title %>" width="24" /></td>
|
||||||
<td><a href="<%= url %>"><%- name %></a></td>
|
<td><a href="<%= url %>"><%- name %></a></td>
|
||||||
<% if (share_type == 'personal') { %>
|
<% if (share_type == 'personal') { %>
|
||||||
<td title="<%- user_email %>"><%- user_name %></td>
|
<td title="<%- contact_email %>"><%- user_name %></td>
|
||||||
<% } else if (share_type == 'group') { %>
|
<% } else if (share_type == 'group') { %>
|
||||||
<td><%- group_name %></td>
|
<td><%- group_name %></td>
|
||||||
<% } else if (share_type == 'public') { %> {# no 'public' type for 'folder' #}
|
<% } else if (share_type == 'public') { %> {# no 'public' type for 'folder' #}
|
||||||
|
@ -5,7 +5,9 @@ from django.core.urlresolvers import reverse
|
|||||||
|
|
||||||
from seaserv import seafile_api
|
from seaserv import seafile_api
|
||||||
|
|
||||||
|
from seahub.profile.models import Profile
|
||||||
from seahub.test_utils import BaseTestCase
|
from seahub.test_utils import BaseTestCase
|
||||||
|
from tests.common.utils import randstring
|
||||||
|
|
||||||
class SharedFoldersTest(BaseTestCase):
|
class SharedFoldersTest(BaseTestCase):
|
||||||
|
|
||||||
@ -34,21 +36,47 @@ class SharedFoldersTest(BaseTestCase):
|
|||||||
self.admin_user = self.admin.username
|
self.admin_user = self.admin.username
|
||||||
self.url = reverse('api-v2.1-shared-folders')
|
self.url = reverse('api-v2.1-shared-folders')
|
||||||
|
|
||||||
sub_repo_id = self.create_virtual_repo()
|
self.sub_repo_id = self.create_virtual_repo()
|
||||||
self.share_repo_to_user(sub_repo_id)
|
|
||||||
self.share_repo_to_group(sub_repo_id)
|
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
|
seafile_api.remove_share(self.repo_id, self.user_name, self.admin_user)
|
||||||
|
seafile_api.unset_group_repo(self.repo_id, self.group_id, self.user_name)
|
||||||
|
seafile_api.remove_inner_pub_repo(self.repo_id)
|
||||||
|
|
||||||
self.remove_repo()
|
self.remove_repo()
|
||||||
|
|
||||||
def test_can_get(self):
|
def test_can_get_when_share_to_user(self):
|
||||||
|
self.share_repo_to_user(self.sub_repo_id)
|
||||||
|
|
||||||
|
contact_email = '%s@%s.com' % (randstring(6), randstring(6))
|
||||||
|
nickname = randstring(6)
|
||||||
|
p = Profile.objects.add_or_update(self.admin.username, nickname=nickname)
|
||||||
|
p.contact_email = contact_email
|
||||||
|
p.save()
|
||||||
|
|
||||||
self.login_as(self.user)
|
self.login_as(self.user)
|
||||||
resp = self.client.get(self.url)
|
resp = self.client.get(self.url)
|
||||||
self.assertEqual(200, resp.status_code)
|
self.assertEqual(200, resp.status_code)
|
||||||
|
|
||||||
json_resp = json.loads(resp.content)
|
json_resp = json.loads(resp.content)
|
||||||
assert json_resp[0]['share_type'] == 'personal'
|
assert json_resp[0]['share_type'] == 'personal'
|
||||||
assert json_resp[1]['share_type'] == 'group'
|
assert json_resp[0]['repo_id'] == self.repo_id
|
||||||
|
assert json_resp[0]['user_email'] == self.admin.username
|
||||||
|
assert json_resp[0]['user_name'] == nickname
|
||||||
|
assert json_resp[0]['contact_email'] == contact_email
|
||||||
|
|
||||||
|
def test_can_get_when_share_to_group(self):
|
||||||
|
|
||||||
|
self.share_repo_to_group(self.sub_repo_id)
|
||||||
|
|
||||||
|
self.login_as(self.user)
|
||||||
|
resp = self.client.get(self.url)
|
||||||
|
self.assertEqual(200, resp.status_code)
|
||||||
|
|
||||||
|
json_resp = json.loads(resp.content)
|
||||||
|
assert json_resp[0]['share_type'] == 'group'
|
||||||
|
assert json_resp[0]['repo_id'] == self.repo_id
|
||||||
|
assert json_resp[0]['group_id'] == self.group_id
|
||||||
|
|
||||||
def test_get_with_invalid_repo_permission(self):
|
def test_get_with_invalid_repo_permission(self):
|
||||||
# login with admin, then get user's share repo info
|
# login with admin, then get user's share repo info
|
||||||
|
@ -5,7 +5,9 @@ from django.core.urlresolvers import reverse
|
|||||||
import seaserv
|
import seaserv
|
||||||
from seaserv import seafile_api
|
from seaserv import seafile_api
|
||||||
|
|
||||||
|
from seahub.profile.models import Profile
|
||||||
from seahub.test_utils import BaseTestCase
|
from seahub.test_utils import BaseTestCase
|
||||||
|
from tests.common.utils import randstring
|
||||||
|
|
||||||
class SharedReposTest(BaseTestCase):
|
class SharedReposTest(BaseTestCase):
|
||||||
|
|
||||||
@ -31,21 +33,53 @@ class SharedReposTest(BaseTestCase):
|
|||||||
self.url = reverse('api-v2.1-shared-repos')
|
self.url = reverse('api-v2.1-shared-repos')
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
|
seafile_api.remove_share(self.repo_id, self.user_name, self.admin_name)
|
||||||
|
seafile_api.unset_group_repo(self.repo_id, self.group_id, self.user_name)
|
||||||
|
seafile_api.remove_inner_pub_repo(self.repo_id)
|
||||||
|
|
||||||
self.remove_repo()
|
self.remove_repo()
|
||||||
|
|
||||||
def test_can_get(self):
|
def test_can_get_when_share_to_user(self):
|
||||||
self.share_repo_to_user()
|
self.share_repo_to_user()
|
||||||
|
|
||||||
|
contact_email = '%s@%s.com' % (randstring(6), randstring(6))
|
||||||
|
nickname = randstring(6)
|
||||||
|
p = Profile.objects.add_or_update(self.admin_name, nickname=nickname)
|
||||||
|
p.contact_email = contact_email
|
||||||
|
p.save()
|
||||||
|
|
||||||
|
self.login_as(self.user)
|
||||||
|
resp = self.client.get(self.url)
|
||||||
|
self.assertEqual(200, resp.status_code)
|
||||||
|
json_resp = json.loads(resp.content)
|
||||||
|
|
||||||
|
assert json_resp[0]['share_type'] == 'personal'
|
||||||
|
assert json_resp[0]['repo_id'] == self.repo_id
|
||||||
|
assert json_resp[0]['user_email'] == self.admin_name
|
||||||
|
assert json_resp[0]['user_name'] == nickname
|
||||||
|
assert json_resp[0]['contact_email'] == contact_email
|
||||||
|
|
||||||
|
def test_can_get_when_share_to_group(self):
|
||||||
self.share_repo_to_group()
|
self.share_repo_to_group()
|
||||||
|
|
||||||
|
self.login_as(self.user)
|
||||||
|
resp = self.client.get(self.url)
|
||||||
|
self.assertEqual(200, resp.status_code)
|
||||||
|
json_resp = json.loads(resp.content)
|
||||||
|
|
||||||
|
assert json_resp[0]['share_type'] == 'group'
|
||||||
|
assert json_resp[0]['repo_id'] == self.repo_id
|
||||||
|
assert json_resp[0]['group_id'] == self.group_id
|
||||||
|
|
||||||
|
def test_can_get_when_share_to_public(self):
|
||||||
self.share_repo_to_public()
|
self.share_repo_to_public()
|
||||||
|
|
||||||
self.login_as(self.user)
|
self.login_as(self.user)
|
||||||
resp = self.client.get(self.url)
|
resp = self.client.get(self.url)
|
||||||
self.assertEqual(200, resp.status_code)
|
self.assertEqual(200, resp.status_code)
|
||||||
|
|
||||||
json_resp = json.loads(resp.content)
|
json_resp = json.loads(resp.content)
|
||||||
assert json_resp[0]['share_type'] == 'personal'
|
|
||||||
assert json_resp[1]['share_type'] == 'group'
|
assert json_resp[0]['share_type'] == 'public'
|
||||||
assert json_resp[2]['share_type'] == 'public'
|
|
||||||
|
|
||||||
def test_get_with_invalid_repo_permission(self):
|
def test_get_with_invalid_repo_permission(self):
|
||||||
self.share_repo_to_user()
|
self.share_repo_to_user()
|
||||||
|
Loading…
Reference in New Issue
Block a user