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 2020/07/10 05:31:34 UTC

[isis] 02/02: ISIS-2399: reproduce issue.

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2399
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 15604013a9aa370999ba6a8bdfdc4ea38aa3d241
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jul 10 06:29:41 2020 +0100

    ISIS-2399: reproduce issue.
---
 .../applib/annotation/IsisInteractionScope.java    |  3 ++-
 .../spiimpl/ApplicationTenancyEvaluatorImpl.java   | 28 ++++++++++++++++++++++
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/IsisInteractionScope.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/IsisInteractionScope.java
index 216f75d..87a66ce 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/IsisInteractionScope.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/IsisInteractionScope.java
@@ -25,6 +25,7 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 import org.springframework.context.annotation.Scope;
+import org.springframework.context.annotation.ScopedProxyMode;
 
 /**
  * {@code @IsisInteractionScope} is a specialization of {@link Scope @Scope} for a
@@ -46,7 +47,7 @@ import org.springframework.context.annotation.Scope;
 @Target({ElementType.TYPE, ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
-@Scope("isis-interaction")
+@Scope(value = "isis-interaction", proxyMode = ScopedProxyMode.TARGET_CLASS)
 public @interface IsisInteractionScope {
 
 }
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/extensions/secman/spiimpl/ApplicationTenancyEvaluatorImpl.java b/examples/demo/domain/src/main/java/demoapp/dom/extensions/secman/spiimpl/ApplicationTenancyEvaluatorImpl.java
new file mode 100644
index 0000000..7b36d0c
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/extensions/secman/spiimpl/ApplicationTenancyEvaluatorImpl.java
@@ -0,0 +1,28 @@
+package demoapp.dom.extensions.secman.spiimpl;
+
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.extensions.secman.api.tenancy.ApplicationTenancyEvaluator;
+import org.apache.isis.extensions.secman.api.user.ApplicationUser;
+
+import demoapp.dom.types.primitive.bytes.holder.PrimitiveByteHolder;
+
+@Service
+public class ApplicationTenancyEvaluatorImpl implements ApplicationTenancyEvaluator {
+
+    @Override
+    public boolean handles(Class<?> cls) {
+        return PrimitiveByteHolder.class.isAssignableFrom(cls);
+    }
+
+    @Override
+    public String hides(Object domainObject, ApplicationUser applicationUser) {
+        PrimitiveByteHolder byteHolder = (PrimitiveByteHolder) domainObject;
+        return byteHolder.getReadOnlyProperty() == 3 ? "hidden" : null;
+    }
+
+    @Override
+    public String disables(Object domainObject, ApplicationUser applicationUser) {
+        return null;
+    }
+}