mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-16 23:29:49 +00:00
Allow viewing encrypted repo directory/file.
This commit is contained in:
@@ -8,8 +8,7 @@
|
||||
</h2>
|
||||
|
||||
<div class="side fright">
|
||||
{% if not repo.props.encrypted %}
|
||||
{% if is_owner or repo_ap == 'public' or share_to_me %}
|
||||
{% if is_owner or repo_ap == 'public' or share_to_me %}
|
||||
<div class="latest-commit">
|
||||
<h3>修改信息</h3>
|
||||
<p>{{ current_commit.props.desc|translate_commit_desc }}</p>
|
||||
@@ -24,7 +23,6 @@
|
||||
<span class="time">{{ current_commit.props.ctime|translate_commit_time }}</span>
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<h3>操作</h3>
|
||||
<ul class="with-bg">
|
||||
@@ -33,20 +31,17 @@
|
||||
</div>
|
||||
|
||||
<div class="main fleft">
|
||||
{% if repo.props.encrypted %}
|
||||
<p class="access-notice">该同步目录已加密,不能在线查看。</p>
|
||||
{% else %}
|
||||
{% if not is_owner and repo_ap == 'own' and not share_to_me %}
|
||||
{% if not is_owner and repo_ap == 'own' and not share_to_me %}
|
||||
<p class="access-notice">该同步目录web匿名访问未开启,不能在线查看。</p>
|
||||
{% else %}
|
||||
{% else %}
|
||||
<p class="path">当前路径:
|
||||
{% for name, link in zipped %}
|
||||
{% if not forloop.last %}
|
||||
{% for name, link in zipped %}
|
||||
{% if not forloop.last %}
|
||||
<a href="{{ SITE_ROOT }}repo/history/dir/{{ repo.id }}/?commit_id={{ current_commit.id}}&p={{ link|urlencode }}">{{ name }}</a> /
|
||||
{% else %}
|
||||
{% else %}
|
||||
{{ name }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</p>
|
||||
<table>
|
||||
<tr>
|
||||
@@ -56,16 +51,16 @@
|
||||
<th width="15%">操作</th>
|
||||
</tr>
|
||||
|
||||
{% for dirent in dir_list %}
|
||||
{% for dirent in dir_list %}
|
||||
<tr>
|
||||
<td><img src="{{ MEDIA_URL }}img/folder-icon-24.png" /></td>
|
||||
<td><a href="{{ SITE_ROOT }}repo/history/dir/{{ repo.id }}/?commit_id={{ current_commit.id }}&p={{ path|urlencode }}{{ dirent.obj_name|urlencode }}">{{ dirent.obj_name }}</a></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
{% for dirent in file_list %}
|
||||
{% for dirent in file_list %}
|
||||
<tr>
|
||||
<td><img src="{{ MEDIA_URL }}img/{{ dirent.obj_name|file_icon_filter }}" /></td>
|
||||
<td>{{ dirent.props.obj_name }}</td>
|
||||
@@ -75,9 +70,8 @@
|
||||
<a class="op" href="{{ SITE_ROOT }}repo/{{ repo.props.id }}/{{ dirent.props.obj_id }}/?file_name={{ dirent.props.obj_name }}&op=download">下载</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
43
views.py
43
views.py
@@ -344,29 +344,28 @@ def repo_history_dir(request, repo_id):
|
||||
zipped = []
|
||||
dir_list = []
|
||||
file_list = []
|
||||
if not repo.props.encrypted:
|
||||
path = request.GET.get('p', '/')
|
||||
if path[-1] != '/':
|
||||
path = path + '/'
|
||||
try:
|
||||
dirs = seafserv_rpc.list_dir_by_path(current_commit.id,
|
||||
path.encode('utf-8'))
|
||||
except SearpcError, e:
|
||||
return go_error(request, e.msg)
|
||||
for dirent in dirs:
|
||||
if stat.S_ISDIR(dirent.props.mode):
|
||||
dir_list.append(dirent)
|
||||
else:
|
||||
file_list.append(dirent)
|
||||
try:
|
||||
dirent.file_size = seafserv_rpc.get_file_size(dirent.obj_id)
|
||||
except:
|
||||
dirent.file_size = 0
|
||||
dir_list.sort(lambda x, y : cmp(x.obj_name.lower(), y.obj_name.lower()))
|
||||
file_list.sort(lambda x, y : cmp(x.obj_name.lower(), y.obj_name.lower()))
|
||||
path = request.GET.get('p', '/')
|
||||
if path[-1] != '/':
|
||||
path = path + '/'
|
||||
try:
|
||||
dirs = seafserv_rpc.list_dir_by_path(current_commit.id,
|
||||
path.encode('utf-8'))
|
||||
except SearpcError, e:
|
||||
return go_error(request, e.msg)
|
||||
for dirent in dirs:
|
||||
if stat.S_ISDIR(dirent.props.mode):
|
||||
dir_list.append(dirent)
|
||||
else:
|
||||
file_list.append(dirent)
|
||||
try:
|
||||
dirent.file_size = seafserv_rpc.get_file_size(dirent.obj_id)
|
||||
except:
|
||||
dirent.file_size = 0
|
||||
dir_list.sort(lambda x, y : cmp(x.obj_name.lower(), y.obj_name.lower()))
|
||||
file_list.sort(lambda x, y : cmp(x.obj_name.lower(), y.obj_name.lower()))
|
||||
|
||||
# generate path and link
|
||||
zipped = gen_path_link(path, repo.name)
|
||||
# generate path and link
|
||||
zipped = gen_path_link(path, repo.name)
|
||||
|
||||
# used to determin whether show repo content in repo.html
|
||||
# if a repo is shared to me, or repo shared to the group I joined,
|
||||
|
Reference in New Issue
Block a user