Updated to version 2. Can now specify which pages role can add children to.

Hooked to the following:
$this->addHookBefore('ProcessPageAdd::execute', $this, 'hookProcessPageAddExecute');
$this->addHookBefore('Fieldtype::savePageField', $this, 'hookSavePageField');

$this->addHookAfter('Page::editable', $this, 'hookPageEditable');
$this->addHookAfter('Page::viewable', $this, 'hookPageEditable');
$this->addHookAfter('Page::addable', $this, 'hookPageAddable');

//$this->addHookAfter('User::hasPagePermission', $this, 'hookHasPagePermission');
$this->addHookAfter('ProcessPageAdd::getAllowedTemplates', $this, 'hookGetAllowedTemplates');