Affects Version/s: 2.0.0-M5
Fix Version/s: None
Component/s: Isis Core
... by reworking HiddenTypeFacetDerivedFromAuthorization to be based on explicit type action.
The current behaviour of the NavigationFacetDerivedFromHiddenType, which is derived from HiddenTypeFacetDerivedFromAuthorizaion (the only implementation of HiddenTypeFacet) is difficult to comprehend and might be considered too strict ... see for example this thread: https://the-asf.slack.com/archives/CFC42LWBV/p1626757648322200?thread_ts=1626754801.321200&cid=CFC42LWBV.
An alternative design has been suggested for HiddenTypeFacetDerivedFromAuthorizaion that is based not on whether there are any members visible, but simply on whether the type has been explicitly hidden (or perhaps implicitly inherited from the namespace). For more info, pick up the thread here: https://the-asf.slack.com/archives/CFC42LWBV/p1626778227337200?thread_ts=1626754801.321200&cid=CFC42LWBV
Perhaps a configuration flag should determine the behaviour of its facet factory easy to configure:
- EXPLICIT_TYPE_PERMISSIONS (this is the default)
- DERIVED_FROM_MEMBER_PERMISSIONS (collections, properties and actions)
- DERIVED_FROM_ASSOCIATION_PERMISSIONS (collections + properties but not actions)
- NONE ... effectively disable