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:
81
views.py
81
views.py
@@ -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
|
||||
|
Reference in New Issue
Block a user