Skip to content
Snippets Groups Projects
Commit 3e33c807 authored by Martin Mareš's avatar Martin Mareš
Browse files

Práva: Import

parent b7940fa0
Branches
No related tags found
1 merge request!19Reforma vyhodnocování práv
This commit is part of merge request !19. Comments created here will be created in the context of that merge request.
...@@ -54,8 +54,7 @@ class Import: ...@@ -54,8 +54,7 @@ class Import:
# Interní: Stav importu # Interní: Stav importu
place_cache: Dict[str, db.Place] place_cache: Dict[str, db.Place]
school_place_cache: Dict[str, db.Place] school_place_cache: Dict[str, db.Place]
rr: Optional[mo.rights.Rights] gatekeeper: mo.rights.Gatekeeper
place_rights_cache: Dict[int, bool]
new_user_ids: List[int] new_user_ids: List[int]
line_number: int = 0 line_number: int = 0
...@@ -64,7 +63,6 @@ class Import: ...@@ -64,7 +63,6 @@ class Import:
self.rr = None self.rr = None
self.place_cache = {} self.place_cache = {}
self.school_place_cache = {} self.school_place_cache = {}
self.place_rights_cache = {}
self.new_user_ids = [] self.new_user_ids = []
def setup(self): def setup(self):
...@@ -103,19 +101,10 @@ class Import: ...@@ -103,19 +101,10 @@ class Import:
return name return name
def check_rights(self, place: db.Place) -> bool: def check_rights(self, place: db.Place) -> bool:
if place.place_id in self.place_rights_cache:
return self.place_rights_cache[place.place_id]
if self.rr is None:
self.rr = mo.rights.Rights(self.user)
round = self.round round = self.round
assert round is not None assert round is not None
self.rr.get_for(place, round.year, round.category, round.seq) rights = self.gatekeeper.rights_for(place, round.year, round.category, round.seq)
result = self.rr.have_right(mo.rights.Right.manage_contest) return rights.have_right(mo.rights.Right.manage_contest)
self.place_rights_cache[place.place_id] = result
return result
def parse_opt_place(self, kod: str) -> Optional[db.Place]: def parse_opt_place(self, kod: str) -> Optional[db.Place]:
if kod == "": if kod == "":
...@@ -564,6 +553,7 @@ def create_import(user: db.User, type: ImportType, fmt: FileFormat, round: Optio ...@@ -564,6 +553,7 @@ def create_import(user: db.User, type: ImportType, fmt: FileFormat, round: Optio
imp.round = round imp.round = round
imp.contest = contest imp.contest = contest
imp.fmt = fmt imp.fmt = fmt
imp.gatekeeper = mo.rights.Gatekeeper(user)
imp.setup() imp.setup()
return imp return imp
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment