support share submission

This commit is contained in:
zema1
2017-10-15 18:36:55 +08:00
parent 080ecf1bcf
commit 2c5a1e42bf
6 changed files with 85 additions and 35 deletions

View File

@@ -30,7 +30,7 @@ class Submission(models.Model):
username = models.CharField(max_length=30)
code = models.TextField()
result = models.IntegerField(db_index=True, default=JudgeStatus.PENDING)
# 判题结果的详细信息
# 从JudgeServer返回的判题详情
info = JSONField(default=dict)
language = models.CharField(max_length=20)
shared = models.BooleanField(default=False)
@@ -38,10 +38,12 @@ class Submission(models.Model):
# {time_cost: "", memory_cost: "", err_info: "", score: 0}
statistic_info = JSONField(default=dict)
def check_user_permission(self, user):
def check_user_permission(self, user, check_share=True):
return self.user_id == user.id or \
self.shared is True or \
user.admin_type == AdminType.SUPER_ADMIN
(check_share and self.shared is True) or \
user.is_super_admin() or \
user.can_mgmt_all_problem() or \
self.problem.created_by_id == user.id
class Meta:
db_table = "submission"