mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-25 14:50:29 +00:00
Merge pull request #879 from haiwen/shared-folder
update list shared folders
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
{% for repo in shared_folders %}
|
||||
<tr data="{{repo.props.share_type}}">
|
||||
<td><img src="{{MEDIA_URL}}img/folder-icon-24.png" title="{% trans "Read-Write"%}" alt="{% trans "directory icon" %}" /></td>
|
||||
<td data="{{ repo.props.repo_id }}"><a href="{% url 'view_priv_shared_folder' repo.repo_id %}">{{ repo.props.repo_name }}</a></td>
|
||||
<td data="{{ repo.props.repo_id }}"><a href="{% url 'view_common_lib_dir' repo.origin_repo_id repo.origin_path|urlencode|strip_slash %}">{{ repo.props.repo_name }}</a></td>
|
||||
<td data="{{repo.props.user_info}}" title="{{ repo.props.user }}">{{ repo.props.user | email2nickname }}</td>
|
||||
<td>
|
||||
<div class="share-permission">
|
||||
|
@@ -6,7 +6,6 @@ urlpatterns = patterns('',
|
||||
url(r'^$', list_shared_repos, name='share_admin'),
|
||||
url(r'^links/$', list_shared_links, name='list_shared_links'),
|
||||
url(r'^folders/$', list_priv_shared_folders, name='list_priv_shared_folders'),
|
||||
url(r'^folders/(?P<repo_id>[-0-9a-f]{36})/$', view_priv_shared_folder, name='view_priv_shared_folder'),
|
||||
|
||||
url(r'^add/$', share_repo, name='share_repo'),
|
||||
url(r'^remove/$', repo_remove_share, name='repo_remove_share'),
|
||||
|
@@ -626,25 +626,6 @@ def list_priv_shared_folders(request):
|
||||
'shared_folders': shared_folders,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
@login_required
|
||||
def view_priv_shared_folder(request, repo_id):
|
||||
"""
|
||||
|
||||
Arguments:
|
||||
- `request`:
|
||||
- `repo_id`:
|
||||
"""
|
||||
repo = seafile_api.get_repo(repo_id)
|
||||
if repo is None:
|
||||
raise Http404
|
||||
|
||||
if not repo.is_virtual:
|
||||
raise Http404
|
||||
|
||||
url = reverse('view_common_lib_dir',
|
||||
args=[repo.origin_repo_id, repo.origin_path.strip('/')])
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@login_required_ajax
|
||||
def share_permission_admin(request):
|
||||
"""Change repo share permission in ShareAdmin.
|
||||
|
35
tests/seahub/share/views/test_list_priv_shared_folders.py
Normal file
35
tests/seahub/share/views/test_list_priv_shared_folders.py
Normal file
@@ -0,0 +1,35 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
|
||||
from django.utils.http import urlquote
|
||||
from django.core.urlresolvers import reverse
|
||||
|
||||
from seaserv import seafile_api
|
||||
|
||||
from seahub.test_utils import BaseTestCase
|
||||
class ListPrivSharedFoldersTest(BaseTestCase):
|
||||
def tearDown(self):
|
||||
self.remove_repo()
|
||||
|
||||
def test_can_list_priv_shared_folders(self):
|
||||
repo_id = self.repo.id
|
||||
username = self.user.username
|
||||
|
||||
parent_dir = '/'
|
||||
dirname = '<img onerror=alert(1) src=a>_"_Ω_%2F_W_#_12_这'
|
||||
full_dir_path = os.path.join(parent_dir, dirname)
|
||||
|
||||
# create folder
|
||||
self.create_folder(repo_id=repo_id,
|
||||
parent_dir=parent_dir,
|
||||
dirname=dirname,
|
||||
username=username)
|
||||
|
||||
sub_repo_id = seafile_api.create_virtual_repo(repo_id, full_dir_path, dirname, dirname, username)
|
||||
seafile_api.share_repo(sub_repo_id, username, self.admin.username, 'rw')
|
||||
|
||||
self.login_as(self.user)
|
||||
resp = self.client.get(reverse('list_priv_shared_folders'))
|
||||
self.assertEqual(200, resp.status_code)
|
||||
href = reverse("view_common_lib_dir", args=[repo_id, urlquote(full_dir_path).strip('/')])
|
||||
self.assertRegexpMatches(resp.content, href)
|
Reference in New Issue
Block a user