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

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new a1cf0df6a8 ISIS-3049: TenantedAuthorizationFacet when mixed-in must 
not be shared
a1cf0df6a8 is described below

commit a1cf0df6a803deb524a653e25f8901c180f25e4e
Author: andi-huber <[email protected]>
AuthorDate: Fri Jul 1 13:21:07 2022 +0200

    ISIS-3049: TenantedAuthorizationFacet when mixed-in must not be shared
    
    - instead it is class specific
    
    - also speeds up TenantedAuthorizationPostProcessor
---
 .../secman/integration/facets/TenantedAuthorizationFacet.java      | 5 +++++
 .../integration/facets/TenantedAuthorizationPostProcessor.java     | 7 +++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git 
a/extensions/security/secman/integration/src/main/java/org/apache/isis/extensions/secman/integration/facets/TenantedAuthorizationFacet.java
 
b/extensions/security/secman/integration/src/main/java/org/apache/isis/extensions/secman/integration/facets/TenantedAuthorizationFacet.java
index 83b2ca6f3e..5bc3080f6d 100644
--- 
a/extensions/security/secman/integration/src/main/java/org/apache/isis/extensions/secman/integration/facets/TenantedAuthorizationFacet.java
+++ 
b/extensions/security/secman/integration/src/main/java/org/apache/isis/extensions/secman/integration/facets/TenantedAuthorizationFacet.java
@@ -29,4 +29,9 @@ import 
org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
 public interface TenantedAuthorizationFacet
 extends Facet, HidingInteractionAdvisor, DisablingInteractionAdvisor {
 
+    @Override
+    public default boolean isAllowedToBeSharedWhenMixedIn() {
+        return false;
+    }
+
 }
diff --git 
a/extensions/security/secman/integration/src/main/java/org/apache/isis/extensions/secman/integration/facets/TenantedAuthorizationPostProcessor.java
 
b/extensions/security/secman/integration/src/main/java/org/apache/isis/extensions/secman/integration/facets/TenantedAuthorizationPostProcessor.java
index b661d62a57..5d6d3f8387 100644
--- 
a/extensions/security/secman/integration/src/main/java/org/apache/isis/extensions/secman/integration/facets/TenantedAuthorizationPostProcessor.java
+++ 
b/extensions/security/secman/integration/src/main/java/org/apache/isis/extensions/secman/integration/facets/TenantedAuthorizationPostProcessor.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.extensions.secman.integration.facets;
 
+import java.util.List;
 import java.util.Optional;
 import java.util.stream.Collectors;
 
@@ -63,6 +64,7 @@ extends ObjectSpecificationPostProcessorAbstract {
     @Inject UserService userService;
     @Inject @Lazy ApplicationUserRepository userRepository;
     @Inject Provider<QueryResultsCache> queryResultsCacheProvider;
+    @Inject List<ApplicationTenancyEvaluator> applicationTenancyEvaluators;
 
     @Inject
     public TenantedAuthorizationPostProcessor(final MetaModelContext 
metaModelContext) {
@@ -95,12 +97,13 @@ extends ObjectSpecificationPostProcessorAbstract {
         
FacetUtil.addFacetIfPresent(createFacet(specification.getCorrespondingClass(), 
objectFeature));
     }
 
+
+
     private Optional<TenantedAuthorizationFacetDefault> createFacet(
             final Class<?> cls,
             final FacetHolder holder) {
 
-        val evaluators = serviceRegistry
-                .select(ApplicationTenancyEvaluator.class)
+        val evaluators = applicationTenancyEvaluators
                 .stream()
                 .filter(evaluator -> evaluator.handles(cls))
                 .collect(Collectors.<ApplicationTenancyEvaluator>toList());

Reply via email to