From a6dcdda71c1621ea9a609e0948a772044d3ec3ed Mon Sep 17 00:00:00 2001 From: killing Date: Wed, 6 Jun 2012 19:32:27 +0800 Subject: [PATCH] Allow viewing encrypted repo directory/file. --- templates/repo_history_dir.html | 30 +++++++++-------------- views.py | 43 ++++++++++++++++----------------- 2 files changed, 33 insertions(+), 40 deletions(-) diff --git a/templates/repo_history_dir.html b/templates/repo_history_dir.html index f1b9851452..b00ba3cfb0 100644 --- a/templates/repo_history_dir.html +++ b/templates/repo_history_dir.html @@ -8,8 +8,7 @@
-{% 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 %}

修改信息

{{ current_commit.props.desc|translate_commit_desc }}

@@ -24,7 +23,6 @@ {{ current_commit.props.ctime|translate_commit_time }}

- {% endif %} {% endif %}

操作

-{% if repo.props.encrypted %} -

该同步目录已加密,不能在线查看。

-{% 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 %}

该同步目录web匿名访问未开启,不能在线查看。

- {% else %} +{% else %}

当前路径: - {% for name, link in zipped %} - {% if not forloop.last %} + {% for name, link in zipped %} + {% if not forloop.last %} {{ name }} / - {% else %} + {% else %} {{ name }} - {% endif %} - {% endfor %} + {% endif %} + {% endfor %}

@@ -56,16 +51,16 @@ - {% for dirent in dir_list %} + {% for dirent in dir_list %} - {% endfor %} + {% endfor %} - {% for dirent in file_list %} + {% for dirent in file_list %} @@ -75,9 +70,8 @@ 下载 - {% endfor %} + {% endfor %}
操作
{{ dirent.obj_name }}
{{ dirent.props.obj_name }}
- {% endif %} {% endif %}
{% endblock %} diff --git a/views.py b/views.py index c57bf840c0..a2ff52aace 100644 --- a/views.py +++ b/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,