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 %}
|
{% for repo in shared_folders %}
|
||||||
<tr data="{{repo.props.share_type}}">
|
<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><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 data="{{repo.props.user_info}}" title="{{ repo.props.user }}">{{ repo.props.user | email2nickname }}</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="share-permission">
|
<div class="share-permission">
|
||||||
|
@@ -6,7 +6,6 @@ urlpatterns = patterns('',
|
|||||||
url(r'^$', list_shared_repos, name='share_admin'),
|
url(r'^$', list_shared_repos, name='share_admin'),
|
||||||
url(r'^links/$', list_shared_links, name='list_shared_links'),
|
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/$', 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'^add/$', share_repo, name='share_repo'),
|
||||||
url(r'^remove/$', repo_remove_share, name='repo_remove_share'),
|
url(r'^remove/$', repo_remove_share, name='repo_remove_share'),
|
||||||
|
@@ -626,25 +626,6 @@ def list_priv_shared_folders(request):
|
|||||||
'shared_folders': shared_folders,
|
'shared_folders': shared_folders,
|
||||||
}, context_instance=RequestContext(request))
|
}, 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
|
@login_required_ajax
|
||||||
def share_permission_admin(request):
|
def share_permission_admin(request):
|
||||||
"""Change repo share permission in ShareAdmin.
|
"""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