bqui thank you for the great question.
There are few simple steps that you need to perform in order to archive your object however you would need to have Plus Package extension for this.
So there are the steps:
- You need to setup the default access to ALL pages first. Let's say you need to make sure that all the pages cannot be edited or deleted. In this case, go to Posts & Terms tab and for Pages click on "Manage Access" (blue gear icon). This brings the "Default Acces Form" where you can restrict EDIT and DELETE options. Now if you login with the user, that you are trying to manage access for, you'll see that all the pages are uneditable;
- Enable "Inherit From Parent Post" option;
- Go to Posts & Terms tab, drill down to Pages and find the parent page that you want to give access to and override the access settings by unchecking EDIT and DELETE options.
If you need to completely hide all other pages, make sure that you also checked LIST option. This way user will be able to see and assign newly created page only to those that are allowed.
Note! If you are using Gutenberg for your content management, make sure that you check EDIT and DELETE also on "API Access Settings" group because Gutenberg uses RESTful API to fetch the list of pages.