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));
}
});