anchor.diff:  
   
   [[_rg_runtime_configuring-core_filterVisibility]]
  -== Filtering visibility
  -
  -The framework provides three configuration properties that all influence whether a returned object is visible to the end-user:
  -
  -* `isis.reflector.facet.actionInvocation.filterVisibility` +
  -
  -If an action returns a collection that includes the object, then the object will be excluded from the list when rendered.  If itreturns a single object and the user does not have access to that object, then the action will seemingly return `null`
  -
  -* `isis.reflector.facet.collectionAccessor.filterVisibility` +
  +== Filtering visibility (1.10.0-SNAPSHOT)
  +
  +The framework provides the `isis.reflector.facet.filterVisibility` configuration property that influences whether a returned object is visible to the end-user:
  +
  +* Action invocations: +
  +
  +If an action returns a collection that includes the object, then the object will be excluded from the list when rendered. If it returns a single object and the user does not have access to that object, then the action will seemingly return `null`
  +
  +* Collections: +
   
   If a parent object has a collection references another object to which the user does not have access, then (as for actions) the object will not be rendered in the list
   
  -* `isis.reflector.facet.propertyAccessor.filterVisibility` +
  +* Properties: +
   
   If an parent object has a (scalar) reference some other object to which the user does not have access, then the reference will be rendered as empty.
   
  -
  -By default these configuration properties are all enabled, meaning that such features as multi-tenancy (as per the (non-ASF) http://github.com/isisaddons/isis-module-security[Isis addons' security] module) are available automatically.  That is, if an entity is logically "owned" by a user, then the multi-tenancy support can be arranged to prevent some other user from viewing that object.
  -
  +* Choices and autoComplete lists: +
  +
  +If an object is returned in a list of choices or within an auto-complete list, and the user does not have access, then it is excluded from the rendered list.
  +
  +The original motivation for this feature was to transparently support such features as multi-tenancy (as per the (non-ASF) http://github.com/isisaddons/isis-module-security[Isis addons' security] module).  That is, if an entity is logically "owned" by a user, then the multi-tenancy support can be arranged to prevent some other user from viewing that object.
  +
  +By default this configuration property is enabled.  To disable the visibility filtering, set the appropriate configuration property to `false`:
  +
  +[source,ini]
  +----
  +isis.reflector.facet.filterVisibility=false
  +----
  +
  +Filtering is supported by the Wicket viewer, and by the xref:rg.adoc#_rg_services-api_manpage-WrapperFactory[`WrapperFactory`] domain service (provided the wrapper's execution mode is _not_ "skip rules").  However the Restful Objects viewer does _not_ currently support filtering.
  +
  +[NOTE]
  +====
   In order for the framework to perform this filtering of collections, be aware that the framework takes a _copy_ of the original collection, filters on the collection, and returns that filtered collection rather than the original.
   
   There are no major side-effects from this algorithm, other than the fact that the referenced objects will (most likely) need to be resolved in order to determine if they are visible.  This could conceivably have a performance impact in some cases.
  -
  -To disable the visibility filtering, set the appropriate configuration property to `false`.  For example, to disable the collection filtering globally for an application, use:
  -
  -[source,ini]
  -----
  -isis.reflector.facet.collectionAccessor.filterVisibility=false
  -----
  -
  +====
   
   
   [[_rg_runtime_configuring-core_isis-objects-editing]]
  
positive.code: Only intended for "emergency use" as a workaround while pending fix/patch to Apache Isis itself.  (Note that there is no "datanucleus" in the property).
  
  |`isis.reflector.facet.` +
  `actionInvocation.filterVisibility`
  | `true`,`false` (`true`)
  |Whether lists of objects returned from an action invocation (aka "standalone collections") should be filtered for visibility. +
  
  See xref:rg.adoc#_rg_runtime_configuring-core_filterVisibility[section below] for further discussion.
  
  |`isis.reflector.facet.` +
  `collectionAccessor.filterVisibility`
  | `true`,`false` (`true`)
  |Whether object collections (aka "parented collections") should be filtered for visibility. +
  
  See xref:rg.adoc#_rg_runtime_configuring-core_filterVisibility[section below] for further discussion.
  
  |`isis.reflector.facet.` +
  `cssClass.patterns`
  |regex:css1,regex2:css2,...
  |Comma separated list of key:value pairs, where the key is a regex matching action names (eg `delete.*`) and the value is a link:http://getbootstrap.com/css/[Bootstrap] CSS button class (eg `btn-warning) to be applied (as per `@CssClass()`) to all action members matching the regex. +
  
negative.code: See xref:ug.adoc#_ug_how-tos_ui-hints_action-icons-and-css[UI hints] for more details.
  
  |`isis.reflector.facet.` +
  `filterVisibility` +
  (1.10.0-SNAPSHOT)
  | `true`,`false` (`true`)
  |Whether objects should be filtered for visibility. +
  
  See xref:rg.adoc#_rg_runtime_configuring-core_filterVisibility[section below] for further discussion.
  
  