From 654c47bafa800c0af777075ffd9eee29c501c18a Mon Sep 17 00:00:00 2001 From: xiez Date: Thu, 12 Jul 2012 20:35:13 +0800 Subject: [PATCH] File shared link is viewd by people who generated. --- share/models.py | 2 +- views.py | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/share/models.py b/share/models.py index f707d43e8d..c53ffb40bf 100644 --- a/share/models.py +++ b/share/models.py @@ -14,7 +14,7 @@ class FileShare(models.Model): """ Model used for file share link. """ - username = models.EmailField(max_length=255) + username = models.EmailField(max_length=255, db_index=True) repo_id = models.CharField(max_length=36, db_index=True) path = models.TextField() token = models.CharField(max_length=10, unique=True) diff --git a/views.py b/views.py index 3b48dd76f5..6cc8379d88 100644 --- a/views.py +++ b/views.py @@ -796,9 +796,9 @@ def repo_view_file(request, repo_id): """ http_server_root = get_httpserver_root() path = request.GET.get('p', '/') - if path[-1] != '/': - path = path + '/' - filename = urllib2.quote(os.path.basename(path[:-1]).encode('utf-8')) + if path[-1] == '/': + path = path[:-1] + filename = urllib2.quote(os.path.basename(path).encode('utf-8')) commit_id = request.GET.get('commit_id', '') view_history = True if commit_id else False @@ -810,7 +810,7 @@ def repo_view_file(request, repo_id): obj_id = request.GET.get('obj_id', '') else: try: - obj_id = seafserv_rpc.get_file_by_path(repo_id, path[:-1]) + obj_id = seafserv_rpc.get_file_by_path(repo_id, path) except: obj_id = None @@ -854,7 +854,8 @@ def repo_view_file(request, repo_id): request.user.username) # file share link - l = FileShare.objects.filter(repo_id=repo_id).filter(path=path[:-1]) + l = FileShare.objects.filter(repo_id=repo_id).filter(\ + username=request.user.username).filter(path=path) fileshare = l[0] if len(l) > 0 else None http_or_https = request.is_secure() and 'https' or 'http' @@ -940,7 +941,7 @@ def repo_file_get(request, repo_id): l, d = [], {} try: # XXX: file in windows is encoded in gbk - u_content = content.decode('gbk') + u_content = content.decode('gbk') except: u_content = content.decode('utf-8') from django.utils.html import escape @@ -1833,7 +1834,8 @@ def get_shared_link(request): if path[-1] == '/': path = path[:-1] - l = FileShare.objects.filter(repo_id=repo_id).filter(path=path) + l = FileShare.objects.filter(repo_id=repo_id).filter(\ + username=request.user.username).filter(path=path) if len(l) > 0: fileshare = l[0] token = fileshare.token