mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-09-21 08:23:20 +00:00
修复某些情况下泄露template的问题
This commit is contained in:
parent
f70d3cac41
commit
9a3f21461a
@ -90,6 +90,12 @@ class BaseProblemSerializer(serializers.ModelSerializer):
|
||||
tags = serializers.SlugRelatedField(many=True, slug_field="name", read_only=True)
|
||||
created_by = UsernameSerializer()
|
||||
|
||||
def get_public_template(self, obj):
|
||||
ret = {}
|
||||
for lang, code in obj.template.items():
|
||||
ret[lang] = parse_problem_template(code)["template"]
|
||||
return ret
|
||||
|
||||
|
||||
class ProblemAdminSerializer(BaseProblemSerializer):
|
||||
class Meta:
|
||||
@ -98,13 +104,7 @@ class ProblemAdminSerializer(BaseProblemSerializer):
|
||||
|
||||
|
||||
class ProblemSerializer(BaseProblemSerializer):
|
||||
template = serializers.SerializerMethodField()
|
||||
|
||||
def get_template(self, obj):
|
||||
ret = {}
|
||||
for lang, code in obj.template.items():
|
||||
ret[lang] = parse_problem_template(code)["template"]
|
||||
return ret
|
||||
template = serializers.SerializerMethodField("get_public_template")
|
||||
|
||||
class Meta:
|
||||
model = Problem
|
||||
@ -113,6 +113,8 @@ class ProblemSerializer(BaseProblemSerializer):
|
||||
|
||||
|
||||
class ProblemSafeSerializer(BaseProblemSerializer):
|
||||
template = serializers.SerializerMethodField("get_public_template")
|
||||
|
||||
class Meta:
|
||||
model = Problem
|
||||
exclude = ("test_case_score", "test_case_id", "visible", "is_public",
|
||||
|
Loading…
Reference in New Issue
Block a user