From e426c1ceb7a5a3c2e79466999353dc8dffdac0ad Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Sat, 16 Jan 2021 15:56:12 +0100 Subject: [PATCH] =?UTF-8?q?Pr=C3=A1va:=20Job=20na=20upload=20feedbacku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mo/jobs/submit.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/mo/jobs/submit.py b/mo/jobs/submit.py index a981f8d9..ed457965 100644 --- a/mo/jobs/submit.py +++ b/mo/jobs/submit.py @@ -13,7 +13,7 @@ import zipfile import mo.db as db from mo.jobs import TheJob, job_handler, job_file_path -import mo.rights +from mo.rights import Right from mo.submit import Submitter, SubmitException from mo.util import logger, data_dir from mo.util_format import inflect_number, inflect_by_number @@ -169,17 +169,13 @@ def handle_upload_feedback(the_job: TheJob): .filter(db.Participation.user_id.in_(user_dict.keys())) .all()) - rr = mo.rights.Rights(job.user) - rights_cache = {} user_rights = {} for user, pion, contest in rows: user_dict[user.user_id] = user - if contest.contest_id not in rights_cache: - rr.get_for_contest(contest) - rights_cache[contest.contest_id] = ( - rr.have_right(mo.rights.Right.upload_submits) - or (rr.have_right(mo.rights.Right.upload_feedback) and round.state == db.RoundState.grading)) - user_rights[user.user_id] = rights_cache[contest.contest_id] + rr = the_job.gatekeeper.rights_for_contest(contest) + user_rights[user.user_id] = ( + rr.have_right(Right.upload_submits) + or (rr.have_right(Right.upload_feedback) and round.state == db.RoundState.grading)) for f in files: f.user = user_dict[f.user_id] -- GitLab