From c5daf3879af86ddc9d782e354774902b9db07d39 Mon Sep 17 00:00:00 2001 From: xiez Date: Tue, 5 Jun 2012 19:38:28 +0800 Subject: [PATCH] Fix bug in HTTP_REFERER --- group/views.py | 2 +- notifications/views.py | 7 ++-- profile/views.py | 3 +- settings.py | 2 +- templates/base.html | 2 +- templates/myhome.html | 2 +- templates/repos.html | 2 +- templates/userinfo.html | 2 +- urls.py | 8 ++-- views.py | 82 +++++++++++++++++++++-------------------- 10 files changed, 59 insertions(+), 53 deletions(-) diff --git a/group/views.py b/group/views.py index e015650b19..fa4bc0de4c 100644 --- a/group/views.py +++ b/group/views.py @@ -66,7 +66,7 @@ def group_remove(request, group_id): return go_error(request, e.msg) if request.GET.get('src', '') == 'groupadmin': - return HttpResponseRedirect(request.META['HTTP_REFERER']) + return HttpResponseRedirect(reverse('group_admin')) else: return HttpResponseRedirect(reverse('group_list', args=[])) diff --git a/notifications/views.py b/notifications/views.py index 759682c824..a5792fa120 100644 --- a/notifications/views.py +++ b/notifications/views.py @@ -14,10 +14,11 @@ def notification_close(request, note_id): note_id += ',' topinfo_close = request.COOKIES.get('topinfo', '') topinfo_close += note_id - - res = HttpResponseRedirect(request.META['HTTP_REFERER']) + + next = request.GET.get('next', '/') + res = HttpResponseRedirect(next) res.set_cookie("topinfo", topinfo_close, max_age=14*24*60*60) - + return res @login_required diff --git a/profile/views.py b/profile/views.py index d0ad2aefd5..6c2925bac1 100644 --- a/profile/views.py +++ b/profile/views.py @@ -1,3 +1,4 @@ +from django.core.urlresolvers import reverse from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render_to_response, get_object_or_404 from django.template import Context, RequestContext @@ -28,4 +29,4 @@ def logout_relay(request): except SearpcError, e: return go_error(request, e.msg) - return HttpResponseRedirect(request.META['HTTP_REFERER']) + return HttpResponseRedirect(reverse('list_userids')) diff --git a/settings.py b/settings.py index d0af2b673f..968b584671 100644 --- a/settings.py +++ b/settings.py @@ -127,7 +127,7 @@ REGISTRATION_SEND_MAIL = False HTTP_SERVER_ROOT = "http://localhost:8082" # ccnet-applet address and port, used in repo download -CCNET_APPLET_ROOT = "http://localhost:8081" +CCNET_APPLET_ROOT = "http://localhost:13420" SEAFILE_VERSION = '0.9.2' diff --git a/templates/base.html b/templates/base.html index 24e8fa1b4c..8879ad4318 100644 --- a/templates/base.html +++ b/templates/base.html @@ -16,7 +16,7 @@ {% if request.user.is_authenticated and request.cur_note %}
{{ request.cur_note.message|urlize }} - +
{% endif %} diff --git a/templates/myhome.html b/templates/myhome.html index 7b5ce41287..24164f472b 100644 --- a/templates/myhome.html +++ b/templates/myhome.html @@ -66,7 +66,7 @@ 下载 共享 - 删除 + 删除 {% endfor %} diff --git a/templates/repos.html b/templates/repos.html index 52f668b15a..316ba9c18f 100644 --- a/templates/repos.html +++ b/templates/repos.html @@ -16,7 +16,7 @@ {{ repo.props.name }} {{ repo.owner}} {{ repo.props.desc }} - + {% endfor %} diff --git a/templates/userinfo.html b/templates/userinfo.html index c2802b84e8..a70e581cf4 100644 --- a/templates/userinfo.html +++ b/templates/userinfo.html @@ -27,7 +27,7 @@ {{ repo.props.name }} {{ repo.props.desc }} - + {% endfor %} diff --git a/urls.py b/urls.py index 04474e4c24..490e417d8f 100644 --- a/urls.py +++ b/urls.py @@ -4,8 +4,8 @@ from django.views.generic.simple import direct_to_template from seahub.views import root, peers, myhome, \ repo, repo_history, modify_token, remove_repo, seafadmin, useradmin, \ - role_add, role_remove, activate_user, user_add, user_remove, \ - ownerhome, remove_fetched_repo, repo_history_dir, repo_history_revert, \ + activate_user, user_add, user_remove, \ + ownerhome, repo_history_dir, repo_history_revert, \ user_info, repo_set_access_property, repo_access_file, \ repo_add_share, repo_list_share, repo_remove_share, repo_download, \ seafile_access_check, back_local, group_admin, repo_history_changes @@ -54,8 +54,8 @@ urlpatterns = patterns('', url(r'^useradmin/$', useradmin, name='useradmin'), (r'^useradmin/add/$', user_add), (r'^useradmin/info/(?P[^/]+)/$', user_info), - (r'^useradmin/(?P[^/]+)/role/add/$', role_add), - (r'^useradmin/(?P[^/]+)/role/remove/$', role_remove), +# (r'^useradmin/(?P[^/]+)/role/add/$', role_add), +# (r'^useradmin/(?P[^/]+)/role/remove/$', role_remove), (r'^useradmin/(?P[^/]+)/user/remove/$', user_remove), (r'^useradmin/activate/(?P[^/]+)/$', activate_user), diff --git a/views.py b/views.py index 3b7fb2b515..c57bf840c0 100644 --- a/views.py +++ b/views.py @@ -531,14 +531,15 @@ def remove_repo(request, repo_id): return go_permission_error(request, u'删除同步目录失败') seafserv_threaded_rpc.remove_repo(repo_id) - return HttpResponseRedirect(request.META['HTTP_REFERER']) + next = request.GET.get('next', '/') + return HttpResponseRedirect(next) -@login_required -def remove_fetched_repo(request, user_id, repo_id): - if user_id and repo_id: - seafserv_threaded_rpc.remove_fetched_repo (user_id, repo_id) - - return HttpResponseRedirect(request.META['HTTP_REFERER']) +#@login_required +#def remove_fetched_repo(request, user_id, repo_id): +# if user_id and repo_id: +# seafserv_threaded_rpc.remove_fetched_repo (user_id, repo_id) +# +# return HttpResponseRedirect(request.META['HTTP_REFERER']) @login_required def myhome(request): @@ -601,11 +602,10 @@ def ownerhome(request, owner_name): @login_required def repo_set_access_property(request, repo_id): - if repo_id: - ap = request.GET.get('ap', '') - seafserv_threaded_rpc.repo_set_access_property(repo_id, ap) - - return HttpResponseRedirect(request.META['HTTP_REFERER']) + ap = request.GET.get('ap', '') + seafserv_threaded_rpc.repo_set_access_property(repo_id, ap) + + return HttpResponseRedirect(reverse('repo', args=[repo_id])) def repo_access_file(request, repo_id, obj_id): if repo_id: @@ -814,8 +814,13 @@ def repo_remove_share(request): return go_permission_error(request, u'取消共享失败') from seahub.group.views import group_unshare_repo group_unshare_repo(request, repo_id, group_id_int, from_email) - - return HttpResponseRedirect(request.META['HTTP_REFERER']) + + referer = request.META.get('HTTP_REFERER', None) + if not referer: + referer = 'repo_list_share' + return HttpResponseRedirect(reverse(referer)) + else: + return HttpResponseRedirect(referer) @login_required def mypeers(request): @@ -916,29 +921,28 @@ def user_info(request, email): }, context_instance=RequestContext(request)) -@login_required -def role_add(request, user_id): - if not request.user.is_staff: - raise Http404 +#@login_required +#def role_add(request, user_id): +# if not request.user.is_staff: +# raise Http404 +# +# if request.method == 'POST': +# role = request.POST.get('role', '') +# if role and len(role) <= 16: +# ccnet_rpc.add_role(user_id, role) +# +# return HttpResponseRedirect(request.META['HTTP_REFERER']) - if request.method == 'POST': - role = request.POST.get('role', '') - if role and len(role) <= 16: - ccnet_rpc.add_role(user_id, role) - - return HttpResponseRedirect(request.META['HTTP_REFERER']) - - -@login_required -def role_remove(request, user_id): - if not request.user.is_staff: - raise Http404 - - role = request.REQUEST.get('role', '') - if role and len(role) <= 16: - ccnet_rpc.remove_role(user_id, role) - - return HttpResponseRedirect(request.META['HTTP_REFERER']) +#@login_required +#def role_remove(request, user_id): +# if not request.user.is_staff: +# raise Http404 +# +# role = request.REQUEST.get('role', '') +# if role and len(role) <= 16: +# ccnet_rpc.remove_role(user_id, role) +# +# return HttpResponseRedirect(request.META['HTTP_REFERER']) @login_required def user_remove(request, user_id): @@ -950,7 +954,7 @@ def user_remove(request, user_id): ccnetuser = get_ccnetuser(userid=int(user_id)) ccnetuser.delete() - return HttpResponseRedirect(request.META['HTTP_REFERER']) + return HttpResponseRedirect(reverse('useradmin')) @login_required def activate_user(request, user_id): @@ -962,8 +966,8 @@ def activate_user(request, user_id): ccnetuser = get_ccnetuser(userid=int(user_id)) ccnetuser.is_active = True ccnetuser.save() - - return HttpResponseRedirect(request.META['HTTP_REFERER']) + + return HttpResponseRedirect(reverse('useradmin')) @login_required def user_add(request):