Skip to content
Snippets Groups Projects

Reforma vyhodnocování práv

Closed Martin Mareš requested to merge mj/rights into master
1 unresolved thread
1 file
+ 4
6
Compare changes
  • Side-by-side
  • Inline
+ 4
6
@@ -4,9 +4,8 @@ from sqlalchemy.orm import joinedload
from typing import List, Tuple, Optional, Dict
import werkzeug.exceptions
from mo import rights
import mo.db as db
from mo.rights import Rights
from mo.rights import Right
from mo.web import app
@@ -23,13 +22,12 @@ def org_score(round_id: Optional[int] = None, contest_id: Optional[int] = None):
db.User, db.Participation.user_id == db.User.user_id
).filter(db.User.is_test == False)
rr = Rights(g.user)
if round_id:
contest = None
round = sess.query(db.Round).get(round_id)
if not round:
raise werkzeug.exceptions.NotFound()
rr.get_for_round(round)
rr = g.gatekeeper.rights_for_round(round)
contest_subq = sess.query(db.Contest.contest_id).filter_by(round=round)
user_id_subq = user_id_subq.filter(db.Participation.contest_id.in_(contest_subq))
else:
@@ -41,7 +39,7 @@ def org_score(round_id: Optional[int] = None, contest_id: Optional[int] = None):
contest_subq = [contest_id]
user_id_subq = user_id_subq.filter(db.Participation.contest == contest)
if not rr.have_right(rights.Right.view_submits):
if not rr.have_right(Right.view_submits):
raise werkzeug.exceptions.Forbidden()
tasks_subq = sess.query(db.Task.task_id).filter_by(round=round)
@@ -130,6 +128,6 @@ def org_score(round_id: Optional[int] = None, contest_id: Optional[int] = None):
'org_score.html',
contest=contest, round=round, tasks=tasks,
results=results,
can_edit_points=rr.have_right(rights.Right.edit_points) and round.state == db.RoundState.grading,
can_edit_points=rr.have_right(Right.edit_points) and round.state == db.RoundState.grading,
db=db, # kvůli hodnotám enumů
)
Loading