I've run across an odd issue. I've implemented nested DOM on the front end to create a custom data entry system for users we don't want poking around in the full CMS/Model Admin system. It all works great except for one issue.
We have a page type that also acts as a category system for our DataObjects. A 'CollectionPage' has many_many 'CatalogItems.' 'CatalogItems' belong_many_many 'CollectionPages.' Since 'CollectionPage' extends Page it is versioned and can be either published or non-published. I then use a CheckBoxSetField on the 'CatalogItem' DO so the end user has a tab with a checkbox for each possible 'CollectionPage.'
Visitors view the 'CollectionPage' and then can see any 'CatalogItems' associated with it, but then an item can be associated to many different 'CollectionPages' (thus like categories).
If I add a ManyManyDataObjectManager to the fields on the 'CollectionPage' in a new tab to manage the items there it shows any 'CollectionPages' whether they are published or not. Same thing in Model Admin, creating or editing a 'CatalogItem' shows the tab for the 'CollectionPage' selection and shows all of them regardless of their published status.
However when I view my custom controller that uses DOM on the front-end the tab for 'CollectionPage' selection only shows published 'CollectionPages.' As such users who have permission to add/edit items, but not view the CMS, are unable to associate new items with unpublished collections.