How do you propagate a beforeFind() condition into associated models?

Taking for example a School, Course, and Term (which should be a Class, but that word is reserved in php), this is the code used on the Course model:

```
/**
 * beforeFind method
 *
 * Filters by the school (based on the url)
 * @param  array  $query The find query
 * @return array  $query The query with the added condition
 */
public function beforeFind($query = array()) {
    parent::beforeFind($query);
    $query['conditions'] = (is_array($query['conditions'])) ? $query['conditions'] : array();
    $this->School->id = CakeSession::read('School');
    $conditions = array(get_class($this).'.school_id' => $this->School->id);
    $query['conditions'] = array_merge($query['conditions'], $conditions);
    return $query;
}

```

When I'm fetching courses, the conditions apply correctly:

```
$this->Course->contain = array('School');
$this->Course->find('all');

```

This returns all the courses for the current school based on the session.
When I'm fetching classes, the school condition does not apply:

```
$this->Term->contain = array('Course');
$this->Term->find('all');

```

It returns me all the terms, with all the courses, without the beforeFind conditions on the Course model. 
Is it possible to add a beforeFind condition on a parent model that propagates to its children models, without having to code the beforeFind on every children model?