1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-20 02:48:51 +00:00

[sysadmin] Refactor and fix tests

This commit is contained in:
zhengxie
2015-09-02 11:14:54 +08:00
parent 9fc6db2894
commit 82ff4b3f2a
3 changed files with 17 additions and 17 deletions

View File

@@ -1,5 +1,5 @@
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.http import Http404, HttpResponseRedirect from django.http import Http404, HttpResponseRedirect, HttpResponseNotAllowed
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from django.template import RequestContext from django.template import RequestContext
from django.utils.http import urlquote from django.utils.http import urlquote
@@ -75,4 +75,11 @@ def repo_passwd_set_required(func):
return func(request, *args, **kwargs) return func(request, *args, **kwargs)
return _decorated return _decorated
def require_POST(func):
def decorated(request, *args, **kwargs):
if request.method != 'POST':
return HttpResponseNotAllowed('Only POST here')
return func(request, *args, **kwargs)
return decorated

View File

@@ -21,7 +21,7 @@ from pysearpc import SearpcError
from seahub.base.accounts import User from seahub.base.accounts import User
from seahub.base.models import UserLastLogin from seahub.base.models import UserLastLogin
from seahub.base.decorators import sys_staff_required from seahub.base.decorators import sys_staff_required, require_POST
from seahub.base.sudo_mode import update_sudo_mode_ts from seahub.base.sudo_mode import update_sudo_mode_ts
from seahub.auth import authenticate from seahub.auth import authenticate
from seahub.auth.decorators import login_required, login_required_ajax from seahub.auth.decorators import login_required, login_required_ajax
@@ -727,11 +727,9 @@ def sys_org_set_quota(request, org_id):
@login_required @login_required
@sys_staff_required @sys_staff_required
@require_POST
def user_remove(request, email): def user_remove(request, email):
"""Remove user""" """Remove user"""
if request.method != 'POST':
raise Http404
referer = request.META.get('HTTP_REFERER', None) referer = request.META.get('HTTP_REFERER', None)
next = reverse('sys_useradmin') if referer is None else referer next = reverse('sys_useradmin') if referer is None else referer
@@ -793,11 +791,9 @@ def remove_trial(request, user_or_org):
@login_required @login_required
@sys_staff_required @sys_staff_required
@require_POST
def user_remove_admin(request, email): def user_remove_admin(request, email):
"""Unset user admin.""" """Unset user admin."""
if request.method != 'POST':
raise Http404
try: try:
user = User.objects.get(email=email) user = User.objects.get(email=email)
user.is_staff = False user.is_staff = False
@@ -934,11 +930,9 @@ def send_user_reset_email(request, email, password):
@login_required @login_required
@sys_staff_required @sys_staff_required
@require_POST
def user_reset(request, email): def user_reset(request, email):
"""Reset password for user.""" """Reset password for user."""
if request.method != 'POST':
raise Http404
try: try:
user = User.objects.get(email=email) user = User.objects.get(email=email)
if isinstance(INIT_PASSWD, FunctionType): if isinstance(INIT_PASSWD, FunctionType):
@@ -1386,12 +1380,10 @@ def user_search(request):
@login_required @login_required
@sys_staff_required @sys_staff_required
@require_POST
def sys_repo_transfer(request): def sys_repo_transfer(request):
"""Transfer a repo to others. """Transfer a repo to others.
""" """
if request.method != 'POST':
raise Http404
repo_id = request.POST.get('repo_id', None) repo_id = request.POST.get('repo_id', None)
new_owner = request.POST.get('email', None) new_owner = request.POST.get('email', None)

View File

@@ -53,7 +53,7 @@ class UserResetTest(TestCase, Fixtures):
) )
old_passwd = self.user.enc_password old_passwd = self.user.enc_password
resp = self.client.get( resp = self.client.post(
reverse('user_reset', args=[self.user.email]) reverse('user_reset', args=[self.user.email])
) )
self.assertEqual(302, resp.status_code) self.assertEqual(302, resp.status_code)
@@ -112,9 +112,10 @@ class UserRemoveTest(TestCase, Fixtures):
# create one user # create one user
username = self.user.username username = self.user.username
resp = self.client.get( resp = self.client.post(
reverse('user_remove', args=[username]) reverse('user_remove', args=[username])
) )
self.assertEqual(302, resp.status_code)
assert 'Successfully deleted %s' % username in parse_cookie(resp.cookies)['messages'] assert 'Successfully deleted %s' % username in parse_cookie(resp.cookies)['messages']
assert len(ccnet_threaded_rpc.search_emailusers('DB', username, -1, -1)) == 0 assert len(ccnet_threaded_rpc.search_emailusers('DB', username, -1, -1)) == 0