support share submission
This commit is contained in:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user