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