1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-15 23:00:57 +00:00

Remove session storage in context switch

This commit is contained in:
xiez
2012-08-30 20:15:17 +08:00
parent 02b3f6f0af
commit 1e4d831f46
21 changed files with 365 additions and 124 deletions

View File

@@ -31,7 +31,7 @@ from share.models import FileShare
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_repos, get_emailusers, \
get_repo, get_commits, get_branches, is_valid_filename, remove_group_user,\
seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, is_inner_pub_repo, \
get_group_repoids, check_group_staff, get_personal_groups, is_repo_owner, \
check_group_staff, get_personal_groups, is_repo_owner, \
get_group, get_shared_groups_by_repo, is_group_user, check_permission
from pysearpc import SearpcError
@@ -51,8 +51,8 @@ from utils import render_permission_error, render_error, list_to_string, \
calculate_repo_last_modify, valid_previewed_file, \
check_filename_with_rename, get_accessible_repos, EMPTY_SHA1, \
get_file_revision_id_size, get_ccnet_server_addr_port, \
gen_file_get_url, string2list, set_cur_ctx, MAX_INT, \
gen_file_upload_url
gen_file_get_url, string2list, MAX_INT, \
gen_file_upload_url, check_and_get_org_by_repo
from seahub.profile.models import Profile
try:
from settings import CROCODOC_API_TOKEN
@@ -133,6 +133,9 @@ def render_repo(request, repo_id, error=''):
if not repo:
return render_error(request, u'该同步目录不存在')
# change navigator when user in diffent context
org, base_template = check_and_get_org_by_repo(repo_id)
# query whether set password if repo is encrypted
password_set = False
if repo.props.encrypted:
@@ -221,11 +224,17 @@ def render_repo(request, repo_id, error=''):
"accessible_repos": accessible_repos,
"applet_root": get_ccnetapplet_root(),
"groups": groups,
"org": org,
"base_template": base_template,
}, context_instance=RequestContext(request))
@login_required
def repo_upload_file(request, repo_id):
repo = get_repo(repo_id)
# change navigator when user in diffent context
org, base_template = check_and_get_org_by_repo(repo_id)
if request.method == 'GET':
parent_dir = request.GET.get('p', '/')
zipped = gen_path_link (parent_dir, repo.name)
@@ -254,11 +263,17 @@ def repo_upload_file(request, repo_id):
"zipped": zipped,
"max_upload_file_size": settings.MAX_UPLOAD_FILE_SIZE,
"no_quota": no_quota,
"base_template": base_template,
"org": org,
}, context_instance=RequestContext(request))
@login_required
def repo_update_file(request, repo_id):
repo = get_repo(repo_id)
# change navigator when user in diffent context
org, base_template = check_and_get_org_by_repo(repo_id)
if request.method == 'GET':
target_file = request.GET.get('p')
if not target_file:
@@ -289,6 +304,8 @@ def repo_update_file(request, repo_id):
"zipped": zipped,
"max_upload_file_size": settings.MAX_UPLOAD_FILE_SIZE,
"no_quota": no_quota,
"org": org,
"base_template": base_template,
}, context_instance=RequestContext(request))
def upload_error_msg (code):
@@ -308,6 +325,9 @@ def upload_error_msg (code):
return err_msg
def upload_file_error(request, repo_id):
# change navigator when user in diffent context
org, base_template = check_and_get_org_by_repo(repo_id)
if request.method == 'GET':
repo = get_repo(repo_id)
parent_dir = request.GET.get('p')
@@ -325,10 +345,15 @@ def upload_file_error(request, repo_id):
'repo': repo,
'zipped': zipped,
'filename': filename,
'err_msg': err_msg
'err_msg': err_msg,
'org': org,
'base_template': base_template,
}, context_instance=RequestContext(request))
def update_file_error(request, repo_id):
# change navigator when user in diffent context
org, base_template = check_and_get_org_by_repo(repo_id)
if request.method == 'GET':
repo = get_repo(repo_id)
target_file = request.GET.get('p')
@@ -344,7 +369,9 @@ def update_file_error(request, repo_id):
return render_to_response('upload_file_error.html', {
'repo': repo,
'zipped': zipped,
'err_msg': err_msg
'err_msg': err_msg,
'org': org,
'base_template': base_template,
}, context_instance=RequestContext(request))
def get_subdir(request):
@@ -418,13 +445,16 @@ def repo(request, repo_id):
@login_required
def repo_history(request, repo_id):
"""
View repo history
View repo history.
"""
if not access_to_repo(request, repo_id, ''):
return render_permission_error(request, u'无法浏览该同步目录修改历史')
repo = get_repo(repo_id)
# change navigator when user in diffent context
org, base_template = check_and_get_org_by_repo(repo_id)
password_set = False
if repo.props.encrypted:
try:
@@ -467,6 +497,8 @@ def repo_history(request, repo_id):
'per_page': per_page,
'page_next': page_next,
'is_owner': is_owner,
'org': org,
'base_template': base_template,
}, context_instance=RequestContext(request))
@login_required
@@ -582,6 +614,12 @@ def modify_token(request, repo_id):
@login_required
def remove_repo(request, repo_id):
# FIXME: no org in request.user, check whether repo is org repo, and then
# check permission
# change navigator when user in diffent context
org, base_template = check_and_get_org_by_repo(repo_id)
if not validate_owner(request, repo_id) and not request.user.is_staff \
and not request.user.org['is_staff']:
err_msg = u'删除同步目录失败, 只有管理员或目录创建者有权删除目录。'
@@ -620,7 +658,10 @@ def myhome(request):
notes = UserNotification.objects.filter(to_user=request.user.username)
for n in notes:
if n.msg_type == 'group_msg':
grpmsg_list.append(get_group(n.detail))
grp = get_group(n.detail)
if not grp:
continue
grpmsg_list.append(grp)
elif n.msg_type == 'grpmsg_reply':
grpmsg_reply_list.append(n.detail)
elif n.msg_type == 'org_msg':
@@ -636,9 +677,9 @@ def myhome(request):
profile = Profile.objects.filter(user=request.user.username)[0]
nickname = profile.nickname
ctx_dict = {'base_template': 'myhome_base.html',
'org_dict': None}
set_cur_ctx(request, ctx_dict)
# ctx_dict = {'base_template': 'myhome_base.html',
# 'org_dict': None}
# set_cur_ctx(request, ctx_dict)
return render_to_response('myhome.html', {
"myname": email,
@@ -749,6 +790,9 @@ def repo_view_file(request, repo_id):
"""
Preview file on web, including files in current worktree and history.
"""
# change navigator when user in diffent context
org, base_template = check_and_get_org_by_repo(repo_id)
if request.method == 'POST':
# handle post request to leave comment on file
path = request.GET.get('p', '/')
@@ -907,6 +951,8 @@ def repo_view_file(request, repo_id):
'next_page': current_page+1,
'per_page': per_page,
'page_next': page_next,
'org': org,
'base_template': base_template,
}, context_instance=RequestContext(request))
def repo_file_get(raw_path):
@@ -1019,10 +1065,12 @@ def update_file_after_edit(request, repo_id):
@login_required
def repo_file_edit(request, repo_id):
if request.method == 'POST':
return update_file_after_edit(request, repo_id)
# change navigator when user in diffent context
org, base_template = check_and_get_org_by_repo(repo_id)
path = request.GET.get('p', '/')
if path[-1] == '/':
path = path[:-1]
@@ -1066,7 +1114,9 @@ def repo_file_edit(request, repo_id):
'err':err,
'file_content':file_content,
'encoding': encoding,
'newline_mode': newline_mode
'newline_mode': newline_mode,
'org': org,
'base_template': base_template,
}, context_instance=RequestContext(request))
@@ -1742,6 +1792,9 @@ def render_file_revisions (request, repo_id):
zipped = gen_path_link(path, repo.name)
# change navigator when user in diffent context
org, base_template = check_and_get_org_by_repo(repo_id)
return render_to_response('file_revisions.html', {
'repo': repo,
'path': path,
@@ -1749,6 +1802,8 @@ def render_file_revisions (request, repo_id):
'zipped': zipped,
'commits': commits,
'is_owner': is_owner,
'org': org,
'base_template': base_template,
}, context_instance=RequestContext(request))
@login_required