mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-20 10:58:33 +00:00
[sysadmin] Refactor and fix tests
This commit is contained in:
@@ -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
|
||||||
@@ -76,3 +76,10 @@ 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
|
||||||
|
@@ -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)
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user