diff --git a/mo/rights.py b/mo/rights.py index 75c8a876705587f5decb2ab121d63f35005f43e3..1bc0b58d0602362d5b64b247209d6e3c309b13a4 100644 --- a/mo/rights.py +++ b/mo/rights.py @@ -167,6 +167,7 @@ class Rights: user: db.User user_roles: List[db.UserRole] rights: Set[Right] + gatekeeper: 'Gatekeeper' # který tato práva přidělil def __repr__(self): ros = " ".join([r.role.name for r in self.user_roles]) @@ -409,6 +410,7 @@ class Gatekeeper: return self.rights_cache[cache_key] rights = Rights() + rights.gatekeeper = self rights.user = self.user rights.user_roles = [] rights.rights = set() @@ -444,6 +446,7 @@ class Gatekeeper: else: place = self.get_root_place() rights = RoundRights() + rights.gatekeeper = self rights.round = round rights._clone_from(self.rights_for( place=place, @@ -455,6 +458,7 @@ class Gatekeeper: def rights_for_contest(self, contest: db.Contest, site: Optional[db.Place] = None) -> ContestRights: rights = ContestRights() + rights.gatekeeper = self rights.round = contest.round rights.contest = contest rights._clone_from(self.rights_for(