diff --git a/mo/rights.py b/mo/rights.py index b052390dc014cbd972d8666ad26761efd0320133..f0854a97a30bc0d51c961fd0433de6eb1ebf7df4 100644 --- a/mo/rights.py +++ b/mo/rights.py @@ -307,6 +307,11 @@ class Gatekeeper: self.parent_cache[pid] = db.get_place_parents(place) return self.parent_cache[pid] + def is_ancestor_of(self, ancestor: db.Place, of: db.Place) -> bool: + parents = self.get_parents(of) + parent_ids = set(p.place_id for p in parents) + return ancestor.place_id in parent_ids + def rights_for( self, place: Optional[db.Place] = None, year: Optional[int] = None, cat: Optional[str] = None, seq: Optional[int] = None,