完善contest权限控制

This commit is contained in:
zema1
2017-10-27 18:36:29 +08:00
parent b694000ab9
commit 728373a5ff
19 changed files with 219 additions and 162 deletions

View File

@@ -107,18 +107,12 @@ class APIView(View):
:param object_serializer: 用来序列化query set, 如果为None, 则直接对query set切片
:return:
"""
need_paginate = request.GET.get("limit", None)
if need_paginate is None:
if object_serializer:
return object_serializer(query_set, many=True).data
else:
return {"results": query_set, "total": query_set.count()}
try:
limit = int(request.GET.get("limit", "100"))
limit = int(request.GET.get("limit", "10"))
except ValueError:
limit = 100
if limit < 0:
limit = 100
limit = 10
if limit < 0 or limit > 100:
limit = 10
try:
offset = int(request.GET.get("offset", "0"))
except ValueError:

View File

@@ -27,8 +27,8 @@ class APITestCase(TestCase):
return self.create_user(username=username, password=password, admin_type=AdminType.SUPER_ADMIN,
problem_permission=ProblemPermission.ALL, login=login)
def reverse(self, url_name):
return reverse(url_name)
def reverse(self, url_name, *args, **kwargs):
return reverse(url_name, *args, **kwargs)
def assertSuccess(self, response):
if not response.data["error"] is None:

View File

@@ -31,11 +31,10 @@ class TokenBucket:
class BucketController:
def __init__(self, user_id, redis_conn, default_capacity):
self.user_id = user_id
def __init__(self, factor, redis_conn, default_capacity):
self.default_capacity = default_capacity
self.redis = redis_conn
self.key = "bucket_" + str(self.user_id)
self.key = "bucket_" + str(factor)
@property
def last_capacity(self):