You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by mg...@apache.org on 2015/12/25 14:08:59 UTC
[44/50] isis git commit: ISIS-1243: minor refactoring in EntityPage
to reuse utility method in ObjectAdapter.Util.
ISIS-1243: minor refactoring in EntityPage to reuse utility method in ObjectAdapter.Util.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ffb1e543
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ffb1e543
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ffb1e543
Branch: refs/heads/ISIS-1223-upgrade-to-wicket-7
Commit: ffb1e543e45581c9bf0eb04bc12bc30cadf12c3c
Parents: 2161161
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Dec 23 15:00:28 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Dec 23 15:00:28 2015 +0000
----------------------------------------------------------------------
.../core/metamodel/adapter/ObjectAdapter.java | 18 ++++++++-----
.../wicket/ui/pages/entity/EntityPage.java | 27 +++-----------------
2 files changed, 14 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/ffb1e543/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
index 68e59b5..d3c6cbf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
@@ -336,18 +336,22 @@ public interface ObjectAdapter extends Instance, org.apache.isis.applib.annotati
return false;
}
if(interactionInitiatedBy == InteractionInitiatedBy.FRAMEWORK) { return true; }
+ return isVisibleForUser(adapter);
+ }
+
+ private static boolean isVisibleForUser(final ObjectAdapter adapter) {
+ final VisibilityContext<?> context = createVisibleInteractionContextForUser(adapter);
final ObjectSpecification objectSpecification = adapter.getSpecification();
- final VisibilityContext<?> context = createVisibleInteractionContext(adapter,
- interactionInitiatedBy);
- InteractionResult visibleResult = InteractionUtils.isVisibleResult(objectSpecification, context);
+ final InteractionResult visibleResult = InteractionUtils.isVisibleResult(objectSpecification, context);
return visibleResult.isNotVetoing();
}
- private static VisibilityContext<?> createVisibleInteractionContext(
- final ObjectAdapter objectAdapter,
- final InteractionInitiatedBy interactionInitiatedBy) {
+ private static VisibilityContext<?> createVisibleInteractionContextForUser(
+ final ObjectAdapter objectAdapter) {
return new ObjectVisibilityContext(
- objectAdapter, objectAdapter.getSpecification().getIdentifier(), interactionInitiatedBy,
+ objectAdapter,
+ objectAdapter.getSpecification().getIdentifier(),
+ InteractionInitiatedBy.USER,
Where.OBJECT_FORMS);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ffb1e543/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 dbc1f7d..acc3a36 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
@@ -29,17 +29,11 @@ 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.annotation.Where;
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.consent.InteractionResult;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
-import org.apache.isis.core.metamodel.interactions.InteractionUtils;
-import org.apache.isis.core.metamodel.interactions.ObjectVisibilityContext;
-import org.apache.isis.core.metamodel.interactions.VisibilityContext;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
import org.apache.isis.core.runtime.system.DeploymentType;
import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -130,11 +124,13 @@ public class EntityPage extends PageAbstract {
}
// check that the entity overall can be viewed.
- if(!isVisible(objectAdapter)) {
+ if(!ObjectAdapter.Util.isVisible(objectAdapter, InteractionInitiatedBy.USER)) {
throw new ObjectMember.AuthorizationException();
}
+
+
// the next bit is a work-around for JRebel integration...
// ... even though the IsisJRebelPlugin calls invalidateCache, it seems that there is
// some caching elsewhere in the Wicket viewer meaning that stale metadata is referenced.
@@ -174,23 +170,6 @@ public class EntityPage extends PageAbstract {
send(this, Broadcast.BREADTH, new IsisUiHintEvent(entityModel, null));
}
- private boolean isVisible(final ObjectAdapter input) {
- final InteractionResult visibleResult =
- InteractionUtils.isVisibleResult(input.getSpecification(), createVisibleInteractionContext(input
- ));
- return visibleResult.isNotVetoing();
- }
-
- private VisibilityContext<?> createVisibleInteractionContext(
- final ObjectAdapter objectAdapter) {
- final Identifier identifier = objectAdapter.getSpecification().getIdentifier();
- return new ObjectVisibilityContext(
- objectAdapter, identifier, InteractionInitiatedBy.USER,
- Where.OBJECT_FORMS);
- }
-
-
-
private void addBreadcrumb(final EntityModel entityModel) {
final BreadcrumbModelProvider session = (BreadcrumbModelProvider) getSession();
final BreadcrumbModel breadcrumbModel = session.getBreadcrumbModel();