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,