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