You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/09/03 14:33:07 UTC

[76/87] [abbrv] isis git commit: ISIS-1044: adding interactionInitiatedBy as param to all interactions with metamodel members.

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-restfulobjects-server/src/test/java/org/apache/isis/viewer/restfulobjects/server/ResourceContextTest_getArg.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/test/java/org/apache/isis/viewer/restfulobjects/server/ResourceContextTest_getArg.java b/core/viewer-restfulobjects-server/src/test/java/org/apache/isis/viewer/restfulobjects/server/ResourceContextTest_getArg.java
index 31689b0..184f28f 100644
--- a/core/viewer-restfulobjects-server/src/test/java/org/apache/isis/viewer/restfulobjects/server/ResourceContextTest_getArg.java
+++ b/core/viewer-restfulobjects-server/src/test/java/org/apache/isis/viewer/restfulobjects/server/ResourceContextTest_getArg.java
@@ -56,7 +56,8 @@ public class ResourceContextTest_getArg {
         givenServletRequestQueryString(queryString);
         givenServletRequestParameterMapEmpty();
 
-        resourceContext = new ResourceContext(null, null, null, null, null, null, (String)null, httpServletRequest, null, null, null, null, null, null, null, null, null) {
+        resourceContext = new ResourceContext(null, null, null, null, null, null, (String)null, httpServletRequest, null, null, null, null, null, null, null, null, null,
+                null) {
             @Override
             void init(final RepresentationType representationType) {
                 //
@@ -72,7 +73,8 @@ public class ResourceContextTest_getArg {
         givenServletRequestQueryString(queryString);
         givenServletRequestParameterMapEmpty();
 
-        resourceContext = new ResourceContext(null, null, null, null, null, null, (String)null, httpServletRequest, null, null, null, null, null, null, null, null, null) {
+        resourceContext = new ResourceContext(null, null, null, null, null, null, (String)null, httpServletRequest, null, null, null, null, null, null, null, null, null,
+                null) {
             @Override
             void init(final RepresentationType representationType) {
                 //

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index 8dfff3d..9e35254 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -59,6 +59,7 @@ import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.adapter.oid.RootOidDefault;
 import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
@@ -472,7 +473,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
                         return action
                                 .executeWithRuleChecking(
                                         targetAdapter, arguments, session,
-                                        WHERE_FOR_ACTION_INVOCATION);
+                                        WHERE_FOR_ACTION_INVOCATION, InteractionInitiatedBy.USER);
                     }
                 });
         return resultAdapter;
@@ -482,7 +483,8 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
         final ObjectAdapter targetAdapter = getTargetAdapter();
         final ObjectAdapter[] proposedArguments = getArgumentsAsArray();
         final ObjectAction objectAction = getActionMemento().getAction();
-        final Consent validity = objectAction.isProposedArgumentSetValid(targetAdapter, proposedArguments);
+        final Consent validity = objectAction.isProposedArgumentSetValid(targetAdapter, proposedArguments,
+                InteractionInitiatedBy.USER);
         return validity.isAllowed() ? null : validity.getReason();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
index d695a4c..ad769b0 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
@@ -30,6 +30,7 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -201,7 +202,7 @@ public class BookmarkTreeNode implements Serializable {
             final ObjectAdapter candidateAdapter = entityModel.getObject();
             final List<ObjectAssociation> properties = candidateAdapter.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.REFERENCE_PROPERTIES);
             for (ObjectAssociation objectAssoc : properties) {
-                final ObjectAdapter possibleParentAdapter = objectAssoc.get(candidateAdapter);
+                final ObjectAdapter possibleParentAdapter = objectAssoc.get(candidateAdapter, InteractionInitiatedBy.USER);
                 if(possibleParentAdapter == null) {
                     continue;
                 } 

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
index 27d783d..848111c 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
@@ -35,6 +35,7 @@ import org.apache.isis.core.commons.lang.IterableExtensions;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.collections.sortedby.SortedByFacet;
 import org.apache.isis.core.metamodel.facets.object.paged.PagedFacet;
 import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
@@ -103,14 +104,15 @@ public class EntityCollectionModel extends ModelAbstract<List<ObjectAdapter>> im
         PARENTED {
             @Override
             List<ObjectAdapter> load(final EntityCollectionModel entityCollectionModel) {
-                final ObjectAdapter adapter = entityCollectionModel.parentObjectAdapterMemento.getObjectAdapter(ConcurrencyChecking.NO_CHECK);
+                final ObjectAdapter adapter = entityCollectionModel.parentObjectAdapterMemento.getObjectAdapter(
+                        ConcurrencyChecking.NO_CHECK);
                 final OneToManyAssociation collection = entityCollectionModel.collectionMemento.getCollection();
                 final ObjectAdapter collectionAsAdapter =
                         InteractionUtils.withFiltering(
                                 new Callable<ObjectAdapter>() {
                                     @Override
                                     public ObjectAdapter call() throws Exception {
-                                        return collection.get(adapter);
+                                        return collection.get(adapter, InteractionInitiatedBy.USER);
                                    }
                                 });
 

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index a2c0f47..acaffc7 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -35,6 +35,7 @@ import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
 import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
 import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
@@ -383,7 +384,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
             final ObjectAdapter associatedAdapter =
                     InteractionUtils.withFiltering(new Callable<ObjectAdapter>() {
                         @Override public ObjectAdapter call() throws Exception {
-                            return  pm.getProperty().get(adapter);
+                            return  pm.getProperty().get(adapter, InteractionInitiatedBy.USER);
                         }
                     });
             scalarModel.setObject(associatedAdapter);
@@ -488,7 +489,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
 
     public String getReasonInvalidIfAny() {
         final ObjectAdapter adapter = getObjectAdapterMemento().getObjectAdapter(ConcurrencyChecking.CHECK);
-        final Consent validity = adapter.getSpecification().isValid(adapter);
+        final Consent validity = adapter.getSpecification().isValid(adapter, InteractionInitiatedBy.USER);
         return validity.isAllowed() ? null : validity.getReason();
     }
 
@@ -529,7 +530,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
             }
 
             final ObjectAdapter associate = scalarModel.getObject();
-            property.set(adapter, associate);
+            property.set(adapter, associate, InteractionInitiatedBy.USER);
         }
 
         final ViewModelFacet recreatableObjectFacet = adapter.getSpecification().getFacet(ViewModelFacet.class);

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index f785260..2573f0c 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -37,6 +37,7 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
 import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -101,7 +102,7 @@ public class ScalarModel extends EntityModel implements LinksProvider {
                 final OneToOneAssociation property = scalarModel.getPropertyMemento().getProperty();
                 try {
                     final AuthenticationSession session = scalarModel.getAuthenticationSession();
-                    final Consent usable = property.isUsable(session, parentAdapter, where);
+                    final Consent usable = property.isUsable(parentAdapter, InteractionInitiatedBy.USER, where);
                     return usable.isAllowed() ? null : usable.getReason();
                 } catch (final Exception ex) {
                     return ex.getLocalizedMessage();
@@ -117,10 +118,13 @@ public class ScalarModel extends EntityModel implements LinksProvider {
                 }
                 try {
                     final ObjectAdapter parentAdapter = scalarModel.parentObjectAdapterMemento.getObjectAdapter(ConcurrencyChecking.CHECK);
-                    final ObjectAdapter currentValue = property.get(parentAdapter);
+                    final ObjectAdapter currentValue = property.get(parentAdapter, InteractionInitiatedBy.USER);
                     final Localization localization = IsisContext.getLocalization();
-                    final ObjectAdapter proposedAdapter = parseableFacet.parseTextEntry(currentValue, proposedPojoAsStr, localization);
-                    final Consent valid = property.isAssociationValid(parentAdapter, proposedAdapter);
+                    final ObjectAdapter proposedAdapter = parseableFacet.parseTextEntry(currentValue, proposedPojoAsStr,
+                            InteractionInitiatedBy.USER, localization
+                    );
+                    final Consent valid = property.isAssociationValid(parentAdapter, proposedAdapter,
+                            InteractionInitiatedBy.USER);
                     return valid.isAllowed() ? null : valid.getReason();
                 } catch (final ConcurrencyException ex) {
                     // disregard concurrency exceptions because will pick up at the IFormValidator level rather
@@ -136,7 +140,8 @@ public class ScalarModel extends EntityModel implements LinksProvider {
                 final ObjectAdapter parentAdapter = scalarModel.parentObjectAdapterMemento.getObjectAdapter(ConcurrencyChecking.CHECK);
                 final OneToOneAssociation property = scalarModel.getPropertyMemento().getProperty();
                 try {
-                    final Consent valid = property.isAssociationValid(parentAdapter, proposedAdapter);
+                    final Consent valid = property.isAssociationValid(parentAdapter, proposedAdapter,
+                            InteractionInitiatedBy.USER);
                     return valid.isAllowed() ? null : valid.getReason();
                 } catch (final Exception ex) {
                     return ex.getLocalizedMessage();
@@ -178,7 +183,7 @@ public class ScalarModel extends EntityModel implements LinksProvider {
                                         .getObjectAdapter(ConcurrencyChecking.NO_CHECK);
                                 return property.getChoices(
                                         parentAdapter,
-                                        authenticationSession, deploymentCategory);
+                                        InteractionInitiatedBy.USER);
                             }
                         });
 
@@ -208,7 +213,7 @@ public class ScalarModel extends EntityModel implements LinksProvider {
                             public ObjectAdapter[] call() throws Exception {
                                 return property.getAutoComplete(
                                         parentAdapter, searchArg,
-                                        authenticationSession, deploymentCategory);
+                                        authenticationSession, deploymentCategory, InteractionInitiatedBy.USER);
                             }
                         });
                 return choicesAsList(choices);
@@ -277,7 +282,7 @@ public class ScalarModel extends EntityModel implements LinksProvider {
                         InteractionUtils.withFiltering(new Callable<ObjectAdapter>() {
                             @Override
                             public ObjectAdapter call() throws Exception {
-                                return property.get(parentAdapter);
+                                return property.get(parentAdapter, InteractionInitiatedBy.USER);
                             }
                         });
                 scalarModel.setObject(associatedAdapter);
@@ -324,7 +329,9 @@ public class ScalarModel extends EntityModel implements LinksProvider {
                 try {
                     final ObjectAdapter parentAdapter = scalarModel.parentObjectAdapterMemento.getObjectAdapter(ConcurrencyChecking.CHECK);
                     Localization localization = IsisContext.getLocalization(); 
-                    final String invalidReasonIfAny = parameter.isValid(parentAdapter, proposedPojoAsStr, localization);
+                    final String invalidReasonIfAny = parameter.isValid(parentAdapter, proposedPojoAsStr,
+                            InteractionInitiatedBy.USER, localization
+                    );
                     return invalidReasonIfAny;
                 } catch (final Exception ex) {
                     return ex.getLocalizedMessage();
@@ -337,7 +344,9 @@ public class ScalarModel extends EntityModel implements LinksProvider {
                 try {
                     final ObjectAdapter parentAdapter = scalarModel.parentObjectAdapterMemento.getObjectAdapter(ConcurrencyChecking.CHECK);
                     Localization localization = IsisContext.getLocalization();
-                    final String invalidReasonIfAny = parameter.isValid(parentAdapter, proposedAdapter.getObject(), localization);
+                    final String invalidReasonIfAny = parameter.isValid(parentAdapter, proposedAdapter.getObject(),
+                            InteractionInitiatedBy.USER, localization
+                    );
                     return invalidReasonIfAny;
                 } catch (final Exception ex) {
                     return ex.getLocalizedMessage();
@@ -378,7 +387,7 @@ public class ScalarModel extends EntityModel implements LinksProvider {
                         public ObjectAdapter[] call() throws Exception {
                             return actionParameter.getChoices(
                                     parentAdapter, argumentsIfAvailable,
-                                    authenticationSession, deploymentCategory);
+                                    InteractionInitiatedBy.USER);
                         }
                     });
                 return choicesAsList(choices);
@@ -406,7 +415,7 @@ public class ScalarModel extends EntityModel implements LinksProvider {
                         @Override public ObjectAdapter[] call() throws Exception {
                             return actionParameter.getAutoComplete(
                                     parentAdapter, searchArg,
-                                    authenticationSession, deploymentCategory);
+                                    InteractionInitiatedBy.USER);
                         }
                     });
                 return choicesAsList(choices);
@@ -596,7 +605,7 @@ public class ScalarModel extends EntityModel implements LinksProvider {
                 InteractionUtils.withFiltering(new Callable<ObjectAdapter>() {
                     @Override
                     public ObjectAdapter call() throws Exception {
-                        return property.get(parentAdapter);
+                        return property.get(parentAdapter, InteractionInitiatedBy.USER);
                     }
                 });
         setObject(associatedAdapter);
@@ -669,7 +678,9 @@ public class ScalarModel extends EntityModel implements LinksProvider {
             throw new RuntimeException("unable to parse string for " + getTypeOfSpecification().getFullIdentifier());
         }
         Localization localization = IsisContext.getLocalization(); 
-        final ObjectAdapter adapter = parseableFacet.parseTextEntry(getObject(), enteredText, localization);
+        final ObjectAdapter adapter = parseableFacet.parseTextEntry(getObject(), enteredText,
+                InteractionInitiatedBy.USER, localization
+        );
 
         setObject(adapter);
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
index 67ebf38..2816369 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
@@ -26,6 +26,7 @@ import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
@@ -59,9 +60,11 @@ public final class EntityActionLinkFactory extends ActionLinkFactoryAbstract {
         }
 
         // check visibility and whether enabled
-        final AuthenticationSession session = getAuthenticationSession();
-        
-        final Consent visibility = action.isVisible(session, objectAdapter, Where.OBJECT_FORMS);
+        final Consent visibility =
+                action.isVisible(
+                        objectAdapter,
+                        InteractionInitiatedBy.USER,
+                        Where.OBJECT_FORMS);
         if (visibility.isVetoed()) {
             return null;
         }
@@ -69,7 +72,11 @@ public final class EntityActionLinkFactory extends ActionLinkFactoryAbstract {
         
         final AbstractLink link = newLink(linkId, objectAdapter, action);
         
-        final Consent usability = action.isUsable(session, objectAdapter, Where.OBJECT_FORMS);
+        final Consent usability =
+                action.isUsable(
+                        objectAdapter,
+                        InteractionInitiatedBy.USER,
+                        Where.OBJECT_FORMS);
         final String disabledReasonIfAny = usability.getReason();
         if(disabledReasonIfAny != null) {
             link.setEnabled(false);

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionUtil.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionUtil.java
index c987980..1adb8e5 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionUtil.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionUtil.java
@@ -31,6 +31,7 @@ import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
 import org.apache.isis.core.metamodel.layout.memberorderfacet.MemberOrderFacetComparator;
 import org.apache.isis.core.metamodel.spec.ActionType;
@@ -132,7 +133,7 @@ public final class EntityActionUtil {
         @SuppressWarnings({ "unchecked", "deprecation" })
         Filter<ObjectAction> filter = Filters.and(
                     ObjectAction.Filters.memberOrderOf(association),
-                    ObjectAction.Filters.dynamicallyVisible(authSession, adapter, Where.ANYWHERE),
+                    ObjectAction.Filters.dynamicallyVisible(adapter, InteractionInitiatedBy.USER, Where.ANYWHERE),
                     ObjectAction.Filters.notBulkOnly(),
                     ObjectAction.Filters.excludeWizardActions(objectSpecification));
 
@@ -145,15 +146,14 @@ public final class EntityActionUtil {
     public static void addTopLevelActions(
             final ObjectAdapter adapter,
             final ActionType actionType,
-            final List<ObjectAction> topLevelActions,
-            final AuthenticationSession authenticationSession) {
+            final List<ObjectAction> topLevelActions) {
 
         final ObjectSpecification adapterSpec = adapter.getSpecification();
 
         @SuppressWarnings({ "unchecked", "deprecation" })
         Filter<ObjectAction> filter = Filters.and(
                 ObjectAction.Filters.memberOrderNotAssociationOf(adapterSpec),
-                ObjectAction.Filters.dynamicallyVisible(authenticationSession, adapter, Where.ANYWHERE),
+                ObjectAction.Filters.dynamicallyVisible(adapter, InteractionInitiatedBy.USER, Where.ANYWHERE),
                 ObjectAction.Filters.notBulkOnly(),
                 ObjectAction.Filters.excludeWizardActions(adapterSpec));
 
@@ -161,13 +161,15 @@ public final class EntityActionUtil {
         topLevelActions.addAll(userActions);
     }
 
-    public static List<ObjectAction> getTopLevelActions(final ObjectAdapter adapter, final DeploymentType deploymentType, final AuthenticationSession authenticationSession) {
+    public static List<ObjectAction> getTopLevelActions(
+            final ObjectAdapter adapter,
+            final DeploymentType deploymentType) {
         final List<ObjectAction> topLevelActions = Lists.newArrayList();
 
-        addTopLevelActions(adapter, ActionType.USER, topLevelActions, authenticationSession);
+        addTopLevelActions(adapter, ActionType.USER, topLevelActions);
         if(deploymentType.isPrototyping()) {
-            addTopLevelActions(adapter, ActionType.EXPLORATION, topLevelActions, authenticationSession);
-            addTopLevelActions(adapter, ActionType.PROTOTYPE, topLevelActions, authenticationSession);
+            addTopLevelActions(adapter, ActionType.EXPLORATION, topLevelActions);
+            addTopLevelActions(adapter, ActionType.PROTOTYPE, topLevelActions);
         }
         return topLevelActions;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
index f6d847b..45bb5f7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
@@ -38,6 +38,7 @@ import org.apache.isis.core.commons.ensure.Ensure;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -314,7 +315,7 @@ class CssMenuItem implements Serializable {
         // check visibility
         final AuthenticationSession session = getAuthenticationSession();
         final ObjectAdapter adapter = targetAdapterMemento.getObjectAdapter(ConcurrencyChecking.CHECK);
-        final Consent visibility = objectAction.isVisible(session, adapter, ActionModel.WHERE_FOR_ACTION_INVOCATION);
+        final Consent visibility = objectAction.isVisible(adapter, InteractionInitiatedBy.USER, ActionModel.WHERE_FOR_ACTION_INVOCATION);
         if (visibility.isVetoed()) {
             return null;
         }
@@ -330,7 +331,10 @@ class CssMenuItem implements Serializable {
         final AbstractLink link = linkAndLabel.getLink();
         final String actionLabel = linkAndLabel.getLabel();
 
-        final Consent usability = objectAction.isUsable(session, adapter, ActionModel.WHERE_FOR_ACTION_INVOCATION);
+        final Consent usability = objectAction.isUsable(
+                adapter, InteractionInitiatedBy.USER,
+                ActionModel.WHERE_FOR_ACTION_INVOCATION
+        );
         final String reasonDisabledIfAny = usability.getReason();
 
         final DescribedAsFacet describedAsFacet = objectAction.getFacet(DescribedAsFacet.class);

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
index 2a5f504..b9bcd47 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
@@ -29,6 +29,7 @@ import org.apache.isis.applib.RecoverableException;
 import org.apache.isis.applib.services.actinvoc.ActionInvocationContext;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Bulk;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
 import org.apache.isis.applib.annotation.InvokedOn;
 import org.apache.isis.applib.services.command.Command;
@@ -127,7 +128,8 @@ public final class BulkActionsLinkFactory implements ActionLinkFactory {
                             bulkInteractionContext.setIndex(i++);
                         }
 
-                        lastReturnedAdapter = objectAction.executeWithRuleChecking(adapter, new ObjectAdapter[]{}, getAuthenticationSession(), ActionModel.WHERE_FOR_ACTION_INVOCATION);
+                        lastReturnedAdapter = objectAction.executeWithRuleChecking(adapter, new ObjectAdapter[]{}, getAuthenticationSession(), ActionModel.WHERE_FOR_ACTION_INVOCATION,
+                                InteractionInitiatedBy.USER);
                     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
index 8b9641c..0a374db 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
@@ -32,7 +32,7 @@ import org.apache.wicket.model.IModel;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
@@ -147,7 +147,7 @@ public class CollectionContentsSortableDataProvider extends SortableDataProvider
         return new ObjectVisibilityContext(
                 getDeploymentCategory(),
                 getAuthenticationSession(),
-                InteractionInvocationMethod.BY_USER,
+                InteractionInitiatedBy.USER,
                 objectAdapter,
                 objectAdapter.getSpecification().getIdentifier(),
                 Where.ALL_TABLES);
@@ -158,8 +158,8 @@ public class CollectionContentsSortableDataProvider extends SortableDataProvider
     
             @Override
             public int compare(final ObjectAdapter p, final ObjectAdapter q) {
-                final ObjectAdapter pSort = sortProperty.get(p);
-                final ObjectAdapter qSort = sortProperty.get(q);
+                final ObjectAdapter pSort = sortProperty.get(p, InteractionInitiatedBy.FRAMEWORK);
+                final ObjectAdapter qSort = sortProperty.get(q, InteractionInitiatedBy.FRAMEWORK);
                 Ordering<ObjectAdapter> naturalOrdering = 
                         ascending 
                             ? ORDERING_BY_NATURAL.nullsFirst() 

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummary.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummary.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummary.java
index 49be8db..77f78fe 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummary.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummary.java
@@ -19,20 +19,22 @@
 
 package org.apache.isis.viewer.wicket.ui.components.collectioncontents.summary;
 
-import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
-
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.Collections;
 import java.util.List;
+
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
+
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.markup.html.list.AbstractItem;
 import org.apache.wicket.markup.repeater.RepeatingView;
 import org.apache.wicket.model.Model;
+
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.spec.ObjectAdapterUtils;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
@@ -41,6 +43,8 @@ import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
 import org.apache.isis.viewer.wicket.ui.components.collection.count.CollectionCountProvider;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 
+import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
+
 /**
  * {@link PanelAbstract Panel} that represents a {@link EntityCollectionModel
  * collection of entity}s rendered using as a table of summary values with a
@@ -122,7 +126,7 @@ public class CollectionContentsAsSummary extends PanelAbstract<EntityCollectionM
             int nonNullCount = 0;
             for (ObjectAdapter objectAdapter : adapters) {
                 titles.add(objectAdapter.titleString(null));
-                final ObjectAdapter valueAdapter = numberAssociation.get(objectAdapter);
+                final ObjectAdapter valueAdapter = numberAssociation.get(objectAdapter, InteractionInitiatedBy.USER);
                 if (valueAdapter == null) {
                     values.add(null);
                     continue;

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
index 5b50367..b182b1f 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
@@ -29,6 +29,7 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.filter.Filter;
 import org.apache.isis.applib.filter.Filters;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -168,7 +169,9 @@ public class EntityCollectionsPanel extends PanelAbstract<EntityModel> {
 
     @SuppressWarnings("unchecked")
     private Filter<ObjectAssociation> visibleCollectionsFilter(final ObjectAdapter adapter) {
-        return Filters.and(ObjectAssociation.Filters.COLLECTIONS, ObjectAssociation.Filters.dynamicallyVisible(getAuthenticationSession(), adapter, Where.PARENTED_TABLES));
+        return Filters.and(ObjectAssociation.Filters.COLLECTIONS, ObjectAssociation.Filters.dynamicallyVisible(adapter,
+                InteractionInitiatedBy.USER, Where.PARENTED_TABLES
+        ));
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
index e1ab0c1..dbd9b61 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
@@ -83,7 +83,7 @@ public class EntityHeaderPanel extends PanelAbstract<EntityModel> {
         final ObjectAdapter adapter = model.getObject();
         final ObjectAdapterMemento adapterMemento = model.getObjectAdapterMemento();
         if (adapter != null) {
-            final List<ObjectAction> topLevelActions = EntityActionUtil.getTopLevelActions(adapter, getDeploymentType(), getAuthenticationSession());
+            final List<ObjectAction> topLevelActions = EntityActionUtil.getTopLevelActions(adapter, getDeploymentType());
 
             final List<LinkAndLabel> entityActionLinks = EntityActionUtil.asLinkAndLabelsForAdditionalLinksPanel(model, topLevelActions);
 

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
index 6ab8659..afb5ba1 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
@@ -55,6 +55,7 @@ import org.apache.isis.core.commons.authentication.MessageBroker;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -300,7 +301,9 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
 
     @SuppressWarnings("unchecked")
     private Filter<ObjectAssociation> visiblePropertyFilter(final ObjectAdapter adapter, Where where) {
-        return Filters.and(ObjectAssociation.Filters.PROPERTIES, ObjectAssociation.Filters.dynamicallyVisible(getAuthenticationSession(), adapter, where));
+        return Filters.and(ObjectAssociation.Filters.PROPERTIES, ObjectAssociation.Filters.dynamicallyVisible(adapter,
+                InteractionInitiatedBy.USER, where
+        ));
     }
 
     @Override
@@ -711,7 +714,9 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
 
     @SuppressWarnings("unchecked")
     private Filter<ObjectAssociation> enabledAssociationFilter(final ObjectAdapter adapter) {
-        return Filters.and(ObjectAssociation.Filters.PROPERTIES, ObjectAssociation.Filters.enabled(getAuthenticationSession(), adapter, Where.OBJECT_FORMS));
+        return Filters.and(ObjectAssociation.Filters.PROPERTIES, ObjectAssociation.Filters.enabled(adapter,
+                InteractionInitiatedBy.USER, Where.OBJECT_FORMS
+        ));
     }
 
     private void toEditMode(final AjaxRequestTarget target) {

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index 8a394a9..8f62881 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -43,6 +43,7 @@ import org.apache.wicket.validation.ValidationError;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
@@ -401,7 +402,8 @@ public class ReferencePanel extends ScalarPanelAbstract {
                 final ObjectSpecification typeOfSpecification = getScalarModel().getTypeOfSpecification();
                 final AutoCompleteFacet autoCompleteFacet = typeOfSpecification.getFacet(AutoCompleteFacet.class);
                 final List<ObjectAdapter> autoCompleteAdapters =
-                        autoCompleteFacet.execute(term, getAuthenticationSession(), getDeploymentCategory());
+                        autoCompleteFacet.execute(term, getAuthenticationSession(), getDeploymentCategory(),
+                                InteractionInitiatedBy.USER);
                 // take a copy otherwise so is eagerly evaluated and memento objects correctly built
                 return Lists.newArrayList(
                         Lists.transform(autoCompleteAdapters, ObjectAdapterMemento.Functions.fromAdapter()));

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
index 69dc4b6..5285f95 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
@@ -30,13 +30,14 @@ import org.apache.wicket.model.AbstractReadOnlyModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.Strings;
 
+import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.NonRecoverableException;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
-import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
@@ -142,7 +143,8 @@ public class EntityPage extends PageAbstract {
         // belt-n-braces: check that at least one property of the entity can be viewed.
         final AuthenticationSession session = getAuthenticationSession();
         final ObjectSpecification specification = objectAdapter.getSpecification();
-        final List<ObjectAssociation> visibleAssociation = specification.getAssociations(Contributed.INCLUDED, ObjectAssociation.Filters.dynamicallyVisible(session, objectAdapter, Where.NOWHERE));
+        final List<ObjectAssociation> visibleAssociation = specification.getAssociations(Contributed.INCLUDED, ObjectAssociation.Filters.dynamicallyVisible(
+                objectAdapter, InteractionInitiatedBy.USER, Where.NOWHERE));
 
         if(visibleAssociation.isEmpty()) {
             final List<ObjectAssociation> anyAssociations = specification.getAssociations(Contributed.INCLUDED);
@@ -194,17 +196,21 @@ public class EntityPage extends PageAbstract {
     }
 
     private boolean isVisible(final ObjectAdapter input) {
-        final InteractionResult visibleResult = InteractionUtils.isVisibleResult(input.getSpecification(), createVisibleInteractionContext(input));
+        final InteractionResult visibleResult =
+                InteractionUtils.isVisibleResult(input.getSpecification(), createVisibleInteractionContext(input
+        ));
         return visibleResult.isNotVetoing();
     }
 
-    private VisibilityContext<?> createVisibleInteractionContext(final ObjectAdapter objectAdapter) {
+    private VisibilityContext<?> createVisibleInteractionContext(
+            final ObjectAdapter objectAdapter) {
+        final Identifier identifier = objectAdapter.getSpecification().getIdentifier();
         return new ObjectVisibilityContext(
                 getDeploymentCategory(),
                 getAuthenticationSession(),
-                InteractionInvocationMethod.BY_USER,
+                InteractionInitiatedBy.USER,
                 objectAdapter,
-                objectAdapter.getSpecification().getIdentifier(),
+                identifier,
                 Where.OBJECT_FORMS);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java
index 56a5ab4..85c5f81 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java
@@ -26,6 +26,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.actions.homepage.HomePageFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
@@ -93,12 +94,21 @@ public class HomePage extends PageAbstract {
             return null;
         }
 
-        final Consent visibility = objectAction.isVisible(getAuthenticationSession(), serviceAdapter, Where.ANYWHERE);
+        final Consent visibility =
+                objectAction.isVisible(
+                        serviceAdapter,
+                        InteractionInitiatedBy.USER,
+                        Where.ANYWHERE);
         if (visibility.isVetoed()) {
             return null;
         }
 
-        final Consent usability = objectAction.isUsable(getAuthenticationSession(), serviceAdapter, Where.ANYWHERE);
+        final Consent usability =
+                objectAction.isUsable(
+                        serviceAdapter,
+                        InteractionInitiatedBy.USER,
+                        Where.ANYWHERE
+        );
         if (usability.isVetoed()) {
             return  null;
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/ActionFixtures.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/ActionFixtures.java b/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/ActionFixtures.java
index a11bf5e..6ec561f 100644
--- a/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/ActionFixtures.java
+++ b/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/ActionFixtures.java
@@ -24,14 +24,15 @@ import org.jmock.Mockery;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.ConsentAbstract;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.spec.ActionType;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 
+// UNUSED?
 public final class ActionFixtures {
 
     private final Mockery context;
@@ -97,7 +98,7 @@ public final class ActionFixtures {
     public void isVisible(final ObjectAction mockAction, final boolean returns) {
         context.checking(new Expectations() {
             {
-                allowing(mockAction).isVisible(with(any(AuthenticationSession.class)), with(any(ObjectAdapter.class)), Where.ANYWHERE);
+                allowing(mockAction).isVisible(with(any(ObjectAdapter.class)), InteractionInitiatedBy.USER, Where.ANYWHERE);
                 will(returnValue(ConsentAbstract.allowIf(returns)));
             }
         });
@@ -106,7 +107,8 @@ public final class ActionFixtures {
     public void isUsable(final ObjectAction mockAction, final boolean returns) {
         context.checking(new Expectations() {
             {
-                allowing(mockAction).isUsable(with(any(AuthenticationSession.class)), with(any(ObjectAdapter.class)), Where.ANYWHERE);
+                allowing(mockAction).isUsable(with(any(ObjectAdapter.class)), InteractionInitiatedBy.USER, Where.ANYWHERE
+                );
                 will(returnValue(ConsentAbstract.allowIf(returns)));
             }
         });

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
index 08e119f..eaad66a 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -57,7 +57,7 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.ObjectPersistor;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.Consent;
-import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet.Intent;
@@ -214,6 +214,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
             throw new UnsupportedOperationException(String.format("Cannot invoke supporting method '%s'", memberName));
         }
 
+        // UNUSED?
         final String methodName = method.getName();
 
         if (intent == Intent.DEFAULTS || intent == Intent.CHOICES_OR_AUTOCOMPLETE) {
@@ -267,6 +268,10 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         throw new UnsupportedOperationException(String.format("Unknown member type '%s'", objectMember));
     }
 
+    public InteractionInitiatedBy getInteractionInitiatedBy() {
+        return getExecutionMode().shouldEnforceRules()? InteractionInitiatedBy.USER: InteractionInitiatedBy.FRAMEWORK;
+    }
+
     // see if this is a contributed property/collection/action
     private ContributeeMember determineIfContributed(
             final Object[] args,
@@ -337,7 +342,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         resolveIfRequired(targetAdapter);
 
         final ObjectSpecification targetNoSpec = targetAdapter.getSpecification();
-        final ObjectTitleContext titleContext = targetNoSpec.createTitleInteractionContext(getAuthenticationSession(), InteractionInvocationMethod.BY_USER, targetAdapter);
+        final ObjectTitleContext titleContext = targetNoSpec.createTitleInteractionContext(getAuthenticationSession(), InteractionInitiatedBy.FRAMEWORK, targetAdapter);
         final ObjectTitleEvent titleEvent = titleContext.createInteractionEvent();
         notifyListeners(titleEvent);
         return titleEvent.getTitle();
@@ -351,7 +356,8 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
             final ObjectAdapter targetAdapter, final ObjectSpecification targetNoSpec) {
 
         if(getExecutionMode().shouldEnforceRules()) {
-            final InteractionResult interactionResult = targetNoSpec.isValidResult(targetAdapter);
+            final InteractionResult interactionResult =
+                    targetNoSpec.isValidResult(targetAdapter, getInteractionInitiatedBy());
             notifyListenersAndVetoIfRequired(interactionResult);
         }
 
@@ -370,31 +376,32 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     private Object handleGetterMethodOnProperty(
             final ObjectAdapter targetAdapter,
             final Object[] args,
-            final OneToOneAssociation otoa) {
+            final OneToOneAssociation property) {
 
         if (args.length != 0) {
             throw new IllegalArgumentException("Invoking a 'get' should have no arguments");
         }
 
         if(getExecutionMode().shouldEnforceRules()) {
-            checkVisibility(targetAdapter, otoa);
+            checkVisibility(targetAdapter, property);
         }
 
         resolveIfRequired(targetAdapter);
 
+        final InteractionInitiatedBy interactionInitiatedBy = getInteractionInitiatedBy();
         final ObjectAdapter currentReferencedAdapter =
                 executionMode.shouldEnforceRules()
                         ? InteractionUtils.withFiltering(new Callable<ObjectAdapter>() {
                                 @Override
                                 public ObjectAdapter call() throws Exception {
-                                    return otoa.get(targetAdapter);
+                                    return property.get(targetAdapter, interactionInitiatedBy);
                                 }
                             })
-                        : otoa.get(targetAdapter);
+                        : property.get(targetAdapter, interactionInitiatedBy);
 
         final Object currentReferencedObj = ObjectAdapter.Util.unwrap(currentReferencedAdapter);
 
-        final PropertyAccessEvent ev = new PropertyAccessEvent(getDelegate(), otoa.getIdentifier(), currentReferencedObj);
+        final PropertyAccessEvent ev = new PropertyAccessEvent(getDelegate(), property.getIdentifier(), currentReferencedObj);
         notifyListeners(ev);
         return currentReferencedObj;
     }
@@ -406,7 +413,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
 
     private Object handleSetterMethodOnProperty(
             final ObjectAdapter targetAdapter, final Object[] args,
-            final OneToOneAssociation otoa) {
+            final OneToOneAssociation property) {
         if (args.length != 1) {
             throw new IllegalArgumentException("Invoking a setter should only have a single argument");
         }
@@ -414,8 +421,8 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         final Object argumentObj = underlying(args[0]);
 
         if(getExecutionMode().shouldEnforceRules()) {
-            checkVisibility(targetAdapter, otoa);
-            checkUsability(targetAdapter, otoa);
+            checkVisibility(targetAdapter, property);
+            checkUsability(targetAdapter, property);
         }
 
         final ObjectAdapter argumentAdapter = argumentObj != null ? adapterFor(argumentObj) : null;
@@ -424,12 +431,12 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
 
 
         if(getExecutionMode().shouldEnforceRules()) {
-            final InteractionResult interactionResult = otoa.isAssociationValid(targetAdapter, argumentAdapter).getInteractionResult();
+            final InteractionResult interactionResult = property.isAssociationValid(targetAdapter, argumentAdapter, getInteractionInitiatedBy()).getInteractionResult();
             notifyListenersAndVetoIfRequired(interactionResult);
         }
 
         if (getExecutionMode().shouldExecute()) {
-            otoa.set(targetAdapter, argumentAdapter);
+            property.set(targetAdapter, argumentAdapter, getInteractionInitiatedBy());
         }
 
         objectChangedIfRequired(targetAdapter);
@@ -445,7 +452,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     private Object handleGetterMethodOnCollection(
             final ObjectAdapter targetAdapter,
             final Object[] args,
-            final OneToManyAssociation otma,
+            final OneToManyAssociation collection,
             final Method method,
             final String memberName) {
 
@@ -454,33 +461,34 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         }
 
         if(getExecutionMode().shouldEnforceRules()) {
-            checkVisibility(targetAdapter, otma);
+            checkVisibility(targetAdapter, collection);
         }
 
         resolveIfRequired(targetAdapter);
 
+        final InteractionInitiatedBy interactionInitiatedBy = getInteractionInitiatedBy();
         final ObjectAdapter currentReferencedAdapter =
                 executionMode.shouldEnforceRules()
                         ? InteractionUtils.withFiltering(new Callable<ObjectAdapter>() {
                                 @Override
                                 public ObjectAdapter call() throws Exception {
-                                    return otma.get(targetAdapter);
+                                    return collection.get(targetAdapter, interactionInitiatedBy);
                                 }
                             })
-                        : otma.get(targetAdapter);
+                        : collection.get(targetAdapter, interactionInitiatedBy);
 
         final Object currentReferencedObj = ObjectAdapter.Util.unwrap(currentReferencedAdapter);
 
-        final CollectionAccessEvent ev = new CollectionAccessEvent(getDelegate(), otma.getIdentifier());
+        final CollectionAccessEvent ev = new CollectionAccessEvent(getDelegate(), collection.getIdentifier());
 
         if (currentReferencedObj instanceof Collection) {
             final Collection<?> collectionViewObject = lookupWrappingObject(method, memberName,
-                    (Collection<?>) currentReferencedObj, otma);
+                    (Collection<?>) currentReferencedObj, collection);
             notifyListeners(ev);
             return collectionViewObject;
         } else if (currentReferencedObj instanceof Map) {
             final Map<?, ?> mapViewObject = lookupWrappingObject(memberName, (Map<?, ?>) currentReferencedObj,
-                    otma);
+                    collection);
             notifyListeners(ev);
             return mapViewObject;
         }
@@ -533,12 +541,13 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         final ObjectAdapter argumentNO = adapterFor(argumentObj);
 
         if(getExecutionMode().shouldEnforceRules()) {
-            final InteractionResult interactionResult = otma.isValidToAdd(targetAdapter, argumentNO).getInteractionResult();
+            final InteractionResult interactionResult = otma.isValidToAdd(targetAdapter, argumentNO,
+                    getInteractionInitiatedBy()).getInteractionResult();
             notifyListenersAndVetoIfRequired(interactionResult);
         }
 
         if (getExecutionMode().shouldExecute()) {
-            otma.addElement(targetAdapter, argumentNO);
+            otma.addElement(targetAdapter, argumentNO, getInteractionInitiatedBy());
         }
 
         objectChangedIfRequired(targetAdapter);
@@ -554,14 +563,14 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     private Object handleCollectionRemoveFromMethod(
             final ObjectAdapter targetAdapter,
             final Object[] args,
-            final OneToManyAssociation otma) {
+            final OneToManyAssociation collection) {
         if (args.length != 1) {
             throw new IllegalArgumentException("Invoking a removeFrom should only have a single argument");
         }
 
         if(getExecutionMode().shouldEnforceRules()) {
-            checkVisibility(targetAdapter, otma);
-            checkUsability(targetAdapter, otma);
+            checkVisibility(targetAdapter, collection);
+            checkUsability(targetAdapter, collection);
         }
 
 
@@ -574,12 +583,13 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         final ObjectAdapter argumentAdapter = adapterFor(argumentObj);
 
         if(getExecutionMode().shouldEnforceRules()) {
-            final InteractionResult interactionResult = otma.isValidToRemove(targetAdapter, argumentAdapter).getInteractionResult();
+            final InteractionResult interactionResult = collection.isValidToRemove(targetAdapter, argumentAdapter,
+                    getInteractionInitiatedBy()).getInteractionResult();
             notifyListenersAndVetoIfRequired(interactionResult);
         }
 
         if (getExecutionMode().shouldExecute()) {
-            otma.removeElement(targetAdapter, argumentAdapter);
+            collection.removeElement(targetAdapter, argumentAdapter, getInteractionInitiatedBy());
         }
 
         objectChangedIfRequired(targetAdapter);
@@ -638,15 +648,17 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         }
 
         if (getExecutionMode().shouldExecute()) {
+            final InteractionInitiatedBy interactionInitiatedBy = getInteractionInitiatedBy();
             final ObjectAdapter actionReturnNO =
                     executionMode.shouldEnforceRules()
                             ? InteractionUtils.withFiltering(new Callable<ObjectAdapter>() {
                                     @Override
                                     public ObjectAdapter call() throws Exception {
-                                        return objectAction.execute(targetAdapter, argAdapters);
+                                        return objectAction.execute(targetAdapter, argAdapters,
+                                                interactionInitiatedBy);
                                     }
                                 })
-                            : objectAction.execute(targetAdapter, argAdapters);;
+                            : objectAction.execute(targetAdapter, argAdapters, interactionInitiatedBy);
 
             return ObjectAdapter.Util.unwrap(actionReturnNO);
         }
@@ -657,7 +669,8 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     }
 
     private void checkValidity(final ObjectAdapter targetAdapter, final ObjectAction objectAction, final ObjectAdapter[] argAdapters) {
-        final InteractionResult interactionResult = objectAction.isProposedArgumentSetValid(targetAdapter, argAdapters).getInteractionResult();
+        final InteractionResult interactionResult = objectAction.isProposedArgumentSetValid(targetAdapter, argAdapters,
+                getInteractionInitiatedBy()).getInteractionResult();
         notifyListenersAndVetoIfRequired(interactionResult);
     }
 
@@ -698,7 +711,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     private void checkVisibility(
             final ObjectAdapter targetObjectAdapter,
             final ObjectMember objectMember) {
-        final Consent visibleConsent = objectMember.isVisible(getAuthenticationSession(), targetObjectAdapter, where);
+        final Consent visibleConsent = objectMember.isVisible(targetObjectAdapter, getInteractionInitiatedBy(), where);
         final InteractionResult interactionResult = visibleConsent.getInteractionResult();
         notifyListenersAndVetoIfRequired(interactionResult);
     }
@@ -706,7 +719,9 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     private void checkUsability(
             final ObjectAdapter targetObjectAdapter,
             final ObjectMember objectMember) {
-        final InteractionResult interactionResult = objectMember.isUsable(getAuthenticationSession(), targetObjectAdapter, where).getInteractionResult();
+        final InteractionResult interactionResult = objectMember.isUsable(targetObjectAdapter,
+                getInteractionInitiatedBy(), where
+        ).getInteractionResult();
         notifyListenersAndVetoIfRequired(interactionResult);
     }
 
@@ -722,6 +737,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         }
     }
 
+    // UNUSED?
     private String decode(final ObjectMember objectMember) {
         if (objectMember instanceof OneToOneAssociation) {
             return "a property";
@@ -807,8 +823,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     }
 
     private ObjectSpecification getSpecification(final Class<?> type) {
-        final ObjectSpecification nos = getSpecificationLoader().loadSpecification(type);
-        return nos;
+        return getSpecificationLoader().loadSpecification(type);
     }
 
     // /////////////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/d120bf74/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java b/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
index 9326ae9..3f167ea 100644
--- a/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
+++ b/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
@@ -45,6 +45,7 @@ import org.apache.isis.core.metamodel.adapter.ObjectPersistor;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.Allow;
 import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
 import org.apache.isis.core.metamodel.consent.Veto;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -194,10 +195,11 @@ public class WrapperFactoryDefaultTest_wrappedObject_transient {
                 allowing(mockPasswordMember).getFacets(with(any(Filter.class)));
                 will(returnValue(facets));
                 
-                allowing(mockPasswordMember).isVisible(session, mockEmployeeAdapter, Where.ANYWHERE);
+                allowing(mockPasswordMember).isVisible(mockEmployeeAdapter, InteractionInitiatedBy.USER, Where.ANYWHERE);
                 will(returnValue(visibilityConsent));
                 
-                allowing(mockPasswordMember).isUsable(session, mockEmployeeAdapter, Where.ANYWHERE);
+                allowing(mockPasswordMember).isUsable(mockEmployeeAdapter, InteractionInitiatedBy.USER, Where.ANYWHERE
+                );
                 will(returnValue(usabilityConsent));
             }
         });
@@ -219,13 +221,15 @@ public class WrapperFactoryDefaultTest_wrappedObject_transient {
 
         context.checking(new Expectations() {
             {
-                allowing(mockPasswordMember).isVisible(session, mockEmployeeAdapter, Where.ANYWHERE);
+                allowing(mockPasswordMember).isVisible(mockEmployeeAdapter, InteractionInitiatedBy.USER, Where.ANYWHERE);
                 will(returnValue(visibilityConsent));
                 
-                allowing(mockPasswordMember).isUsable(session, mockEmployeeAdapter, Where.ANYWHERE);
+                allowing(mockPasswordMember).isUsable(mockEmployeeAdapter, InteractionInitiatedBy.USER, Where.ANYWHERE
+                );
                 will(returnValue(usabilityConsent));
                 
-                allowing(mockPasswordMember).isAssociationValid(mockEmployeeAdapter, mockPasswordAdapter);
+                allowing(mockPasswordMember).isAssociationValid(mockEmployeeAdapter, mockPasswordAdapter,
+                        InteractionInitiatedBy.USER);
                 will(returnValue(validityConsent));
             }
         });
@@ -236,7 +240,7 @@ public class WrapperFactoryDefaultTest_wrappedObject_transient {
                 allowing(mockPasswordMember).getFacets(with(any(Filter.class)));
                 will(returnValue(facets));
 
-                oneOf(mockPasswordMember).set(mockEmployeeAdapter, mockPasswordAdapter);
+                oneOf(mockPasswordMember).set(mockEmployeeAdapter, mockPasswordAdapter, InteractionInitiatedBy.USER);
             }
         });
 
@@ -252,7 +256,7 @@ public class WrapperFactoryDefaultTest_wrappedObject_transient {
                 allowing(mockPasswordMember).getFacets(with(any(Filter.class)));
                 will(returnValue(facets));
                 
-                oneOf(mockPasswordMember).get(mockEmployeeAdapter);
+                oneOf(mockPasswordMember).get(mockEmployeeAdapter, InteractionInitiatedBy.USER);
                 will(returnValue(mockPasswordAdapter));
             }
         });