You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/07/17 06:36:11 UTC
[isis] branch v2 updated: ISIS-2151 add missing serialVersionUIDs,
remove/replace deprecations
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/v2 by this push:
new 65142ab ISIS-2151 add missing serialVersionUIDs, remove/replace deprecations
65142ab is described below
commit 65142abb89e3538ab153182f077ebeae0fb508fc
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Jul 17 08:36:01 2019 +0200
ISIS-2151 add missing serialVersionUIDs, remove/replace deprecations
---
.../api/permission/ApplicationPermissionValue.java | 281 +++++++++++----------
.../jdo/app/feature/ApplicationClassAction.java | 15 +-
.../app/feature/ApplicationClassCollection.java | 15 +-
.../jdo/app/feature/ApplicationClassMember.java | 12 +-
.../jdo/app/feature/ApplicationClassProperty.java | 21 +-
.../app/feature/ApplicationFeatureViewModel.java | 34 ++-
.../secman/jdo/app/feature/ApplicationPackage.java | 13 +-
.../app/feature/ApplicationPermission_feature.java | 28 +-
.../user/ApplicationUser_filterPermissions.java | 4 +-
.../jdo/app/user/ApplicationUser_permissions.java | 4 +-
.../jdo/app/user/UserPermissionViewModel.java | 11 +-
.../jdo/dom/permission/ApplicationPermission.java | 56 ++--
.../dom/permission/ApplicationPermissionMenu.java | 6 +-
.../jdo/dom/permission/ApplicationPermissions.java | 205 ---------------
.../secman/jdo/dom/role/ApplicationRole.java | 45 ++--
.../jdo/dom/tenancy/ApplicationTenancies.java | 151 -----------
.../secman/jdo/dom/tenancy/ApplicationTenancy.java | 51 +++-
.../jdo/dom/tenancy/ApplicationTenancyMenu.java | 6 +-
.../tenancy/ApplicationTenancyPathEvaluator.java | 61 -----
.../secman/jdo/dom/user/ApplicationUser.java | 25 +-
.../secman/jdo/dom/user/HasUsername_open.java | 22 +-
.../ApplicationTenancyEvaluatorUsingPaths.java | 150 -----------
.../seed/scripts/AbstractTenancyFixtureScript.java | 5 +-
23 files changed, 360 insertions(+), 861 deletions(-)
diff --git a/extensions/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermissionValue.java b/extensions/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermissionValue.java
index 79acca8..2fac4c7 100644
--- a/extensions/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermissionValue.java
+++ b/extensions/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermissionValue.java
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.util.ObjectContracts;
+import org.apache.isis.applib.util.ToString;
import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureId;
/**
@@ -36,146 +37,154 @@ import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureId;
* </p>
*/
public class ApplicationPermissionValue implements Comparable<ApplicationPermissionValue>, Serializable {
-
+
private static final long serialVersionUID = 1L;
-
+
// -- constructor
- public ApplicationPermissionValue(
- final ApplicationFeatureId featureId,
- final ApplicationPermissionRule rule,
- final ApplicationPermissionMode mode) {
- this.featureId = featureId;
- this.rule = rule;
- this.mode = mode;
- }
-
-
- // -- featureId
- private final ApplicationFeatureId featureId;
- @Programmatic
- public ApplicationFeatureId getFeatureId() {
- return featureId;
- }
-
-
- // -- rule
- private final ApplicationPermissionRule rule;
- @Programmatic
- public ApplicationPermissionRule getRule() {
- return rule;
- }
-
-
- // -- mode
- private final ApplicationPermissionMode mode;
- @Programmatic
- public ApplicationPermissionMode getMode() {
- return mode;
- }
-
-
- // -- implies, refutes
- @Programmatic
- public boolean implies(final ApplicationFeatureId featureId, final ApplicationPermissionMode mode) {
- if(getRule() != ApplicationPermissionRule.ALLOW) {
- // only allow rules can imply
- return false;
- }
- if(getMode() == ApplicationPermissionMode.VIEWING && mode == ApplicationPermissionMode.CHANGING) {
- // an "allow viewing" permission does not imply ability to change
- return false;
- }
-
- // determine if this permission is on the path (ie the feature or one of its parents)
- return onPathOf(featureId);
- }
-
- @Programmatic
- public boolean refutes(final ApplicationFeatureId featureId, final ApplicationPermissionMode mode) {
- if(getRule() != ApplicationPermissionRule.VETO) {
- // only veto rules can refute
- return false;
- }
- if(getMode() == ApplicationPermissionMode.CHANGING && mode == ApplicationPermissionMode.VIEWING) {
- // an "veto changing" permission does not refute ability to view
- return false;
- }
- // determine if this permission is on the path (ie the feature or one of its parents)
- return onPathOf(featureId);
- }
-
- private boolean onPathOf(final ApplicationFeatureId featureId) {
-
- final List<ApplicationFeatureId> pathIds = featureId.getPathIds();
- for (final ApplicationFeatureId pathId : pathIds) {
- if(getFeatureId().equals(pathId)) {
- return true;
- }
- }
-
- return false;
- }
-
-
-
- // -- Comparators
- public static final class Comparators {
- private Comparators(){}
- public static Comparator<ApplicationPermissionValue> natural() {
- return new ApplicationPermissionValueComparator();
- }
-
- static class ApplicationPermissionValueComparator implements Comparator<ApplicationPermissionValue>, Serializable {
+ public ApplicationPermissionValue(
+ final ApplicationFeatureId featureId,
+ final ApplicationPermissionRule rule,
+ final ApplicationPermissionMode mode) {
+ this.featureId = featureId;
+ this.rule = rule;
+ this.mode = mode;
+ }
+
+
+ // -- featureId
+ private final ApplicationFeatureId featureId;
+ @Programmatic
+ public ApplicationFeatureId getFeatureId() {
+ return featureId;
+ }
+
+
+ // -- rule
+ private final ApplicationPermissionRule rule;
+ @Programmatic
+ public ApplicationPermissionRule getRule() {
+ return rule;
+ }
+
+
+ // -- mode
+ private final ApplicationPermissionMode mode;
+ @Programmatic
+ public ApplicationPermissionMode getMode() {
+ return mode;
+ }
+
+
+ // -- implies, refutes
+ @Programmatic
+ public boolean implies(final ApplicationFeatureId featureId, final ApplicationPermissionMode mode) {
+ if(getRule() != ApplicationPermissionRule.ALLOW) {
+ // only allow rules can imply
+ return false;
+ }
+ if(getMode() == ApplicationPermissionMode.VIEWING && mode == ApplicationPermissionMode.CHANGING) {
+ // an "allow viewing" permission does not imply ability to change
+ return false;
+ }
+
+ // determine if this permission is on the path (ie the feature or one of its parents)
+ return onPathOf(featureId);
+ }
+
+ @Programmatic
+ public boolean refutes(final ApplicationFeatureId featureId, final ApplicationPermissionMode mode) {
+ if(getRule() != ApplicationPermissionRule.VETO) {
+ // only veto rules can refute
+ return false;
+ }
+ if(getMode() == ApplicationPermissionMode.CHANGING && mode == ApplicationPermissionMode.VIEWING) {
+ // an "veto changing" permission does not refute ability to view
+ return false;
+ }
+ // determine if this permission is on the path (ie the feature or one of its parents)
+ return onPathOf(featureId);
+ }
+
+ private boolean onPathOf(final ApplicationFeatureId featureId) {
+
+ final List<ApplicationFeatureId> pathIds = featureId.getPathIds();
+ for (final ApplicationFeatureId pathId : pathIds) {
+ if(getFeatureId().equals(pathId)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+
+
+ // -- Comparators
+ public static final class Comparators {
+ private Comparators(){}
+ public static Comparator<ApplicationPermissionValue> natural() {
+ return new ApplicationPermissionValueComparator();
+ }
+
+ static class ApplicationPermissionValueComparator implements Comparator<ApplicationPermissionValue>, Serializable {
private static final long serialVersionUID = 1L;
@Override
- public int compare(final ApplicationPermissionValue o1, final ApplicationPermissionValue o2) {
- return o1.compareTo(o2);
- }
- }
- }
-
-
- // -- equals, hashCode, compareTo, toString
-
- private final static String propertyNames = "rule, mode, featureId";
-
- @Override
- public int compareTo(final ApplicationPermissionValue o) {
- return ObjectContracts.compare(this, o, propertyNames);
- }
-
- @Override
- public boolean equals(final Object o) {
- // not using because trying to be efficient. Premature optimization?
- // return ObjectContracts.equals(this, obj, propertyNames);
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- final ApplicationPermissionValue that = (ApplicationPermissionValue) o;
-
- if (featureId != null ? !featureId.equals(that.featureId) : that.featureId != null) return false;
- if (mode != that.mode) return false;
- if (rule != that.rule) return false;
-
- return true;
- }
-
- @Override
- public int hashCode() {
- // not using because trying to be efficient. Premature optimization?
- // return ObjectContracts.hashCode(this, propertyNames);
- int result = featureId != null ? featureId.hashCode() : 0;
- result = 31 * result + (rule != null ? rule.hashCode() : 0);
- result = 31 * result + (mode != null ? mode.hashCode() : 0);
- return result;
- }
-
- @Override
- public String toString() {
- return ObjectContracts.toString(this, propertyNames);
- }
-
-
+ public int compare(final ApplicationPermissionValue o1, final ApplicationPermissionValue o2) {
+ return o1.compareTo(o2);
+ }
+ }
+ }
+
+
+ // -- CONTRACT
+
+ private final static Comparator<ApplicationPermissionValue> comparator =
+ Comparator.comparing(ApplicationPermissionValue::getRule)
+ .thenComparing(ApplicationPermissionValue::getMode)
+ .thenComparing(ApplicationPermissionValue::getFeatureId);
+
+ private final static ToString<ApplicationPermissionValue> toString =
+ ObjectContracts.toString("name", ApplicationPermissionValue::getRule)
+ .thenToString("mode", ApplicationPermissionValue::getMode)
+ .thenToString("featureId", ApplicationPermissionValue::getFeatureId);
+
+
+ @Override
+ public int compareTo(final ApplicationPermissionValue o) {
+ return comparator.compare(this, o);
+ }
+
+ @Override
+ public boolean equals(final Object o) {
+ // not using because trying to be efficient. Premature optimization?
+ // return ObjectContracts.equals(this, obj, propertyNames);
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ final ApplicationPermissionValue that = (ApplicationPermissionValue) o;
+
+ if (featureId != null ? !featureId.equals(that.featureId) : that.featureId != null) return false;
+ if (mode != that.mode) return false;
+ if (rule != that.rule) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ // not using because trying to be efficient. Premature optimization?
+ // return ObjectContracts.hashCode(this, propertyNames);
+ int result = featureId != null ? featureId.hashCode() : 0;
+ result = 31 * result + (rule != null ? rule.hashCode() : 0);
+ result = 31 * result + (mode != null ? mode.hashCode() : 0);
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return toString.toString(this);
+ }
+
}
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassAction.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassAction.java
index 719175c..a288ce1 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassAction.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassAction.java
@@ -31,11 +31,14 @@ import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureId;
@ViewModelLayout(paged=100)
public class ApplicationClassAction extends ApplicationClassMember {
- public static abstract class PropertyDomainEvent<T> extends ApplicationClassMember.PropertyDomainEvent<ApplicationClassAction, T> {}
+ public static abstract class PropertyDomainEvent<T> extends ApplicationClassMember.PropertyDomainEvent<ApplicationClassAction, T> {
+ private static final long serialVersionUID = 1L;}
- public static abstract class CollectionDomainEvent<T> extends ApplicationClassMember.CollectionDomainEvent<ApplicationClassAction, T> {}
+ public static abstract class CollectionDomainEvent<T> extends ApplicationClassMember.CollectionDomainEvent<ApplicationClassAction, T> {
+ private static final long serialVersionUID = 1L;}
- public static abstract class ActionDomainEvent extends ApplicationClassMember.ActionDomainEvent<ApplicationClassAction> {}
+ public static abstract class ActionDomainEvent extends ApplicationClassMember.ActionDomainEvent<ApplicationClassAction> {
+ private static final long serialVersionUID = 1L;}
@@ -53,7 +56,8 @@ public class ApplicationClassAction extends ApplicationClassMember {
// -- returnTypeName (property)
- public static class ReturnTypeDomainEvent extends PropertyDomainEvent<String> {}
+ public static class ReturnTypeDomainEvent extends PropertyDomainEvent<String> {
+ private static final long serialVersionUID = 1L;}
@Property(
domainEvent = ReturnTypeDomainEvent.class
@@ -67,7 +71,8 @@ public class ApplicationClassAction extends ApplicationClassMember {
// -- actionSemantics (property)
- public static class ActionSemanticsDomainEvent extends PropertyDomainEvent<SemanticsOf> {}
+ public static class ActionSemanticsDomainEvent extends PropertyDomainEvent<SemanticsOf> {
+ private static final long serialVersionUID = 1L;}
@Property(
domainEvent = ActionSemanticsDomainEvent.class
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassCollection.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassCollection.java
index 232135e..7b8b138 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassCollection.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassCollection.java
@@ -30,11 +30,14 @@ import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureId;
@ViewModelLayout(paged=100)
public class ApplicationClassCollection extends ApplicationClassMember {
- public static abstract class PropertyDomainEvent<T> extends ApplicationClassMember.PropertyDomainEvent<ApplicationClassCollection, T> {}
+ public static abstract class PropertyDomainEvent<T> extends ApplicationClassMember.PropertyDomainEvent<ApplicationClassCollection, T> {
+ private static final long serialVersionUID = 1L;}
- public static abstract class CollectionDomainEvent<T> extends ApplicationClassMember.CollectionDomainEvent<ApplicationClassCollection, T> {}
+ public static abstract class CollectionDomainEvent<T> extends ApplicationClassMember.CollectionDomainEvent<ApplicationClassCollection, T> {
+ private static final long serialVersionUID = 1L;}
- public static abstract class ActionDomainEvent extends ApplicationClassMember.ActionDomainEvent<ApplicationClassCollection> {}
+ public static abstract class ActionDomainEvent extends ApplicationClassMember.ActionDomainEvent<ApplicationClassCollection> {
+ private static final long serialVersionUID = 1L;}
@@ -51,7 +54,8 @@ public class ApplicationClassCollection extends ApplicationClassMember {
// -- returnType
- public static class ElementTypeDomainEvent extends PropertyDomainEvent<String> {}
+ public static class ElementTypeDomainEvent extends PropertyDomainEvent<String> {
+ private static final long serialVersionUID = 1L;}
@Property(
domainEvent = ElementTypeDomainEvent.class
@@ -64,7 +68,8 @@ public class ApplicationClassCollection extends ApplicationClassMember {
// -- derived
- public static class DerivedDomainEvent extends PropertyDomainEvent<Boolean> {}
+ public static class DerivedDomainEvent extends PropertyDomainEvent<Boolean> {
+ private static final long serialVersionUID = 1L;}
@Property(
domainEvent = DerivedDomainEvent.class
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassMember.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassMember.java
index f97ea69..bc6dea2 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassMember.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassMember.java
@@ -33,11 +33,14 @@ import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureId;
)
public abstract class ApplicationClassMember extends ApplicationFeatureViewModel {
- public static abstract class PropertyDomainEvent<S extends ApplicationClassMember, T> extends ApplicationFeatureViewModel.PropertyDomainEvent<ApplicationClassMember, T> {}
+ public static abstract class PropertyDomainEvent<S extends ApplicationClassMember, T> extends ApplicationFeatureViewModel.PropertyDomainEvent<ApplicationClassMember, T> {
+ private static final long serialVersionUID = 1L;}
- public static abstract class CollectionDomainEvent<S extends ApplicationClassMember, T> extends ApplicationFeatureViewModel.CollectionDomainEvent<S, T> {}
+ public static abstract class CollectionDomainEvent<S extends ApplicationClassMember, T> extends ApplicationFeatureViewModel.CollectionDomainEvent<S, T> {
+ private static final long serialVersionUID = 1L;}
- public static abstract class ActionDomainEvent<S extends ApplicationClassMember> extends ApplicationFeatureViewModel.ActionDomainEvent<S> {}
+ public static abstract class ActionDomainEvent<S extends ApplicationClassMember> extends ApplicationFeatureViewModel.ActionDomainEvent<S> {
+ private static final long serialVersionUID = 1L;}
@@ -52,7 +55,8 @@ public abstract class ApplicationClassMember extends ApplicationFeatureViewModel
// -- memberName (properties)
- public static class MemberNameDomainEvent extends PropertyDomainEvent<ApplicationClassMember, String> {}
+ public static class MemberNameDomainEvent extends PropertyDomainEvent<ApplicationClassMember, String> {
+ private static final long serialVersionUID = 1L;}
@Property(
domainEvent = MemberNameDomainEvent.class
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassProperty.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassProperty.java
index fe5eedf..ac9bc9b 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassProperty.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationClassProperty.java
@@ -31,11 +31,14 @@ import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureId;
@ViewModelLayout(paged=100)
public class ApplicationClassProperty extends ApplicationClassMember {
- public static abstract class PropertyDomainEvent<T> extends ApplicationClassMember.PropertyDomainEvent<ApplicationClassProperty, T> {}
+ public static abstract class PropertyDomainEvent<T> extends ApplicationClassMember.PropertyDomainEvent<ApplicationClassProperty, T> {
+ private static final long serialVersionUID = 1L;}
- public static abstract class CollectionDomainEvent<T> extends ApplicationClassMember.CollectionDomainEvent<ApplicationClassProperty, T> {}
+ public static abstract class CollectionDomainEvent<T> extends ApplicationClassMember.CollectionDomainEvent<ApplicationClassProperty, T> {
+ private static final long serialVersionUID = 1L;}
- public static abstract class ActionDomainEvent extends ApplicationClassMember.ActionDomainEvent<ApplicationClassProperty> {}
+ public static abstract class ActionDomainEvent extends ApplicationClassMember.ActionDomainEvent<ApplicationClassProperty> {
+ private static final long serialVersionUID = 1L;}
@@ -50,7 +53,8 @@ public class ApplicationClassProperty extends ApplicationClassMember {
// -- returnType
- public static class ReturnTypeDomainEvent extends PropertyDomainEvent<String> {}
+ public static class ReturnTypeDomainEvent extends PropertyDomainEvent<String> {
+ private static final long serialVersionUID = 1L;}
@Property(
domainEvent = ReturnTypeDomainEvent.class
@@ -63,7 +67,8 @@ public class ApplicationClassProperty extends ApplicationClassMember {
// -- derived
- public static class DerivedDomainEvent extends PropertyDomainEvent<Boolean> {}
+ public static class DerivedDomainEvent extends PropertyDomainEvent<Boolean> {
+ private static final long serialVersionUID = 1L;}
@Property(
domainEvent = DerivedDomainEvent.class
@@ -76,7 +81,8 @@ public class ApplicationClassProperty extends ApplicationClassMember {
// -- maxLength
- public static class MaxLengthDomainEvent extends PropertyDomainEvent<Integer> {}
+ public static class MaxLengthDomainEvent extends PropertyDomainEvent<Integer> {
+ private static final long serialVersionUID = 1L;}
@Property(
domainEvent = MaxLengthDomainEvent.class,
@@ -95,7 +101,8 @@ public class ApplicationClassProperty extends ApplicationClassMember {
// -- typicalLength
- public static class TypicalLengthDomainEvent extends PropertyDomainEvent<Integer> {}
+ public static class TypicalLengthDomainEvent extends PropertyDomainEvent<Integer> {
+ private static final long serialVersionUID = 1L;}
@Property(
domainEvent = TypicalLengthDomainEvent.class,
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationFeatureViewModel.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationFeatureViewModel.java
index 61c7004..2863908 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationFeatureViewModel.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationFeatureViewModel.java
@@ -34,7 +34,10 @@ import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.applib.util.Equality;
+import org.apache.isis.applib.util.Hashing;
import org.apache.isis.applib.util.ObjectContracts;
+import org.apache.isis.applib.util.ToString;
import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.extensions.secman.api.SecurityModule;
@@ -305,24 +308,33 @@ public abstract class ApplicationFeatureViewModel implements ViewModel {
.apply(getFeatureId().getParentPackageId());
}
-
+
// -- equals, hashCode, toString
- private final static String propertyNames = "featureId";
+
+ private final static Equality<ApplicationFeatureViewModel> equality =
+ ObjectContracts.checkEquals(ApplicationFeatureViewModel::getFeatureId);
+
+ private final static Hashing<ApplicationFeatureViewModel> hashing =
+ ObjectContracts.hashing(ApplicationFeatureViewModel::getFeatureId);
+
+ private final static ToString<ApplicationFeatureViewModel> toString =
+ ObjectContracts.toString("featureId", ApplicationFeatureViewModel::getFeatureId);
+
@Override
public boolean equals(final Object obj) {
- return ObjectContracts.equals(this, obj, propertyNames);
+ return equality.equals(this, obj);
}
@Override
public int hashCode() {
- return ObjectContracts.hashCode(this, propertyNames);
+ return hashing.hashCode(this);
}
@Override
public String toString() {
- return ObjectContracts.toString(this, propertyNames);
+ return toString.toString(this);
}
@@ -341,10 +353,10 @@ public abstract class ApplicationFeatureViewModel implements ViewModel {
public static <T extends ApplicationFeatureViewModel> Function<ApplicationFeatureId, T> asViewModelForId(
final ApplicationFeatureRepositoryDefault applicationFeatureRepository,
final FactoryService factoryService) {
-
+
return (ApplicationFeatureId input) ->
- _Casts.uncheckedCast(ApplicationFeatureViewModel
- .newViewModel(input, applicationFeatureRepository, factoryService));
+ _Casts.uncheckedCast(ApplicationFeatureViewModel
+ .newViewModel(input, applicationFeatureRepository, factoryService));
}
public static <T extends ApplicationFeatureViewModel> Function<ApplicationFeature, T> asViewModel(
@@ -352,13 +364,13 @@ public abstract class ApplicationFeatureViewModel implements ViewModel {
final FactoryService factoryService) {
return (ApplicationFeature input) ->
- _Casts.uncheckedCast(ApplicationFeatureViewModel
- .newViewModel(input.getFeatureId(), applicationFeatureRepository, factoryService));
+ _Casts.uncheckedCast(ApplicationFeatureViewModel
+ .newViewModel(input.getFeatureId(), applicationFeatureRepository, factoryService));
}
}
// -- DEPENDENCIES
-
+
@Inject RepositoryService repository;
@Inject FactoryService factory;
@Inject ApplicationFeatureRepositoryDefault applicationFeatureRepository;
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationPackage.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationPackage.java
index b94905b..d7ebab8 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationPackage.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationPackage.java
@@ -29,18 +29,20 @@ import org.apache.isis.applib.annotation.ViewModelLayout;
import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureId;
import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureType;
-@SuppressWarnings("UnusedDeclaration")
@DomainObject(
objectType = "isissecurity.ApplicationPackage"
)
@ViewModelLayout(paged=100)
public class ApplicationPackage extends ApplicationFeatureViewModel {
- public static abstract class PropertyDomainEvent<T> extends ApplicationFeatureViewModel.PropertyDomainEvent<ApplicationClass, T> {}
+ public static abstract class PropertyDomainEvent<T> extends ApplicationFeatureViewModel.PropertyDomainEvent<ApplicationClass, T> {
+ private static final long serialVersionUID = 1L;}
- public static abstract class CollectionDomainEvent<T> extends ApplicationFeatureViewModel.CollectionDomainEvent<ApplicationClass, T> {}
+ public static abstract class CollectionDomainEvent<T> extends ApplicationFeatureViewModel.CollectionDomainEvent<ApplicationClass, T> {
+ private static final long serialVersionUID = 1L;}
- public static abstract class ActionDomainEvent extends ApplicationFeatureViewModel.ActionDomainEvent<ApplicationClass> {}
+ public static abstract class ActionDomainEvent extends ApplicationFeatureViewModel.ActionDomainEvent<ApplicationClass> {
+ private static final long serialVersionUID = 1L;}
@@ -56,7 +58,8 @@ public class ApplicationPackage extends ApplicationFeatureViewModel {
// -- contents (collection, for packages only)
- public static class ContentsDomainEvent extends CollectionDomainEvent<ApplicationPackage> {}
+ public static class ContentsDomainEvent extends CollectionDomainEvent<ApplicationPackage> {
+ private static final long serialVersionUID = 1L;}
@Collection(
domainEvent = ContentsDomainEvent.class
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationPermission_feature.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationPermission_feature.java
index 844336b..8ef1120 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationPermission_feature.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/feature/ApplicationPermission_feature.java
@@ -18,6 +18,8 @@
*/
package org.apache.isis.extensions.secman.jdo.app.feature;
+import javax.inject.Inject;
+
import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.Contributed;
@@ -34,19 +36,15 @@ import org.apache.isis.extensions.secman.jdo.dom.permission.ApplicationPermissio
import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureId;
import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureRepositoryDefault;
-@Mixin
+import lombok.RequiredArgsConstructor;
+
+@Mixin @RequiredArgsConstructor
public class ApplicationPermission_feature {
public static class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationPermission_feature> {
private static final long serialVersionUID = 1L;}
-
- // -- constructor
- private final ApplicationPermission permission;
- public ApplicationPermission_feature(final ApplicationPermission permission) {
- this.permission = permission;
- }
-
+ final ApplicationPermission holder;
@Action(
semantics = SemanticsOf.SAFE,
@@ -73,16 +71,8 @@ public class ApplicationPermission_feature {
return ApplicationFeatureId.newFeature(permission.getFeatureType(), permission.getFeatureFqn());
}
- @javax.inject.Inject
- RepositoryService repository;
-
- @javax.inject.Inject
- FactoryService factory;
-
- @javax.inject.Inject
- ApplicationFeatureRepositoryDefault applicationFeatureRepository;
-
-
-
+ @Inject RepositoryService repository;
+ @Inject FactoryService factory;
+ @Inject ApplicationFeatureRepositoryDefault applicationFeatureRepository;
}
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/user/ApplicationUser_filterPermissions.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/user/ApplicationUser_filterPermissions.java
index 8dc2b5b..d27930a 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/user/ApplicationUser_filterPermissions.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/user/ApplicationUser_filterPermissions.java
@@ -52,7 +52,7 @@ public class ApplicationUser_filterPermissions {
private static final long serialVersionUID = 1L;
}
- private final ApplicationUser user; // holder
+ private final ApplicationUser holder;
// -- filterPermissions (action)
@@ -108,7 +108,7 @@ public class ApplicationUser_filterPermissions {
List<UserPermissionViewModel> asViewModels(final Collection<ApplicationFeature> features) {
return _Lists.map(
features,
- UserPermissionViewModel.Functions.asViewModel(user, factory));
+ UserPermissionViewModel.Functions.asViewModel(holder, factory));
}
@Inject RepositoryService repository;
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/user/ApplicationUser_permissions.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/user/ApplicationUser_permissions.java
index 11f7610..be6f4e5 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/user/ApplicationUser_permissions.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/user/ApplicationUser_permissions.java
@@ -47,7 +47,7 @@ public class ApplicationUser_permissions {
public static class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationUser_permissions> {
private static final long serialVersionUID = 1L;}
- private final ApplicationUser user; // holder
+ private final ApplicationUser holder;
@Action(
semantics = SemanticsOf.SAFE,
@@ -69,7 +69,7 @@ public class ApplicationUser_permissions {
List<UserPermissionViewModel> asViewModels(final Collection<ApplicationFeature> features) {
return _Lists.map(
features,
- UserPermissionViewModel.Functions.asViewModel(user, factory));
+ UserPermissionViewModel.Functions.asViewModel(holder, factory));
}
@Inject RepositoryService repository;
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/user/UserPermissionViewModel.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/user/UserPermissionViewModel.java
index 49ffdca..b002fba 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/user/UserPermissionViewModel.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/app/user/UserPermissionViewModel.java
@@ -39,6 +39,7 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.util.ObjectContracts;
+import org.apache.isis.applib.util.ToString;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.extensions.secman.api.SecurityModule;
@@ -380,13 +381,15 @@ public class UserPermissionViewModel implements ViewModel {
// -- toString
- private final static String propertyNames = "user, featureId";
-
+ private final static ToString<UserPermissionViewModel> toString =
+ ObjectContracts
+ .toString("user", UserPermissionViewModel::getUser)
+ .thenToString("featureId", UserPermissionViewModel::getFeatureId);
+
@Override
public String toString() {
- return ObjectContracts.toString(this, propertyNames);
+ return toString.toString(this);
}
-
// -- Functions
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermission.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermission.java
index cf6cdf7..32cefae 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermission.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermission.java
@@ -22,6 +22,7 @@ import java.util.Comparator;
import java.util.Objects;
import java.util.function.Function;
+import javax.inject.Inject;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.InheritanceStrategy;
@@ -150,11 +151,14 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
// -- domain events
- public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationPermission, T> {}
+ public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationPermission, T> {
+ private static final long serialVersionUID = 1L;}
- public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationPermission, T> {}
+ public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationPermission, T> {
+ private static final long serialVersionUID = 1L;}
- public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationPermission> {}
+ public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationPermission> {
+ private static final long serialVersionUID = 1L;}
@@ -195,7 +199,8 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
// -- role (property)
- public static class RoleDomainEvent extends PropertyDomainEvent<ApplicationRole> {}
+ public static class RoleDomainEvent extends PropertyDomainEvent<ApplicationRole> {
+ private static final long serialVersionUID = 1L;}
@javax.jdo.annotations.Column(name = "roleId", allowsNull="false")
@@ -213,7 +218,8 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
// -- updateRole (action)
- public static class UpdateRoleDomainEvent extends ActionDomainEvent {}
+ public static class UpdateRoleDomainEvent extends ActionDomainEvent {
+ private static final long serialVersionUID = 1L;}
@Action(
domainEvent = UpdateRoleDomainEvent.class,
@@ -232,7 +238,8 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
// -- rule (property)
- public static class RuleDomainEvent extends PropertyDomainEvent<ApplicationPermissionRule> {}
+ public static class RuleDomainEvent extends PropertyDomainEvent<ApplicationPermissionRule> {
+ private static final long serialVersionUID = 1L;}
@javax.jdo.annotations.Column(allowsNull="false")
@@ -247,7 +254,8 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
// -- allow (action)
- public static class AllowDomainEvent extends ActionDomainEvent {}
+ public static class AllowDomainEvent extends ActionDomainEvent {
+ private static final long serialVersionUID = 1L;}
@Action(
domainEvent = AllowDomainEvent.class,
@@ -265,7 +273,8 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
// -- veto (action)
- public static class VetoDomainEvent extends ActionDomainEvent {}
+ public static class VetoDomainEvent extends ActionDomainEvent {
+ private static final long serialVersionUID = 1L;}
@Action(
domainEvent = VetoDomainEvent.class,
@@ -283,7 +292,8 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
// -- mode (property)
- public static class ModeDomainEvent extends PropertyDomainEvent<ApplicationPermissionMode> {}
+ public static class ModeDomainEvent extends PropertyDomainEvent<ApplicationPermissionMode> {
+ private static final long serialVersionUID = 1L;}
@javax.jdo.annotations.Column(allowsNull="false")
@@ -299,7 +309,8 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
// -- viewing(action)
- public static class ViewingDomainEvent extends ActionDomainEvent {}
+ public static class ViewingDomainEvent extends ActionDomainEvent {
+ private static final long serialVersionUID = 1L;}
@Action(
domainEvent = ViewingDomainEvent.class,
@@ -318,7 +329,8 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
// -- changing (action)
- public static class ChangingDomainEvent extends ActionDomainEvent {}
+ public static class ChangingDomainEvent extends ActionDomainEvent {
+ private static final long serialVersionUID = 1L;}
@Action(
domainEvent = ChangingDomainEvent.class,
@@ -353,7 +365,8 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
// region > type (derived, memberType of associated feature)
- public static class TypeDomainEvent extends PropertyDomainEvent<String> {}
+ public static class TypeDomainEvent extends PropertyDomainEvent<String> {
+ private static final long serialVersionUID = 1L;}
/**
* Combines {@link #getFeatureType() feature type} and member type.
@@ -402,7 +415,8 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
// -- featureFqn
- public static class FeatureFqnDomainEvent extends PropertyDomainEvent<String> {}
+ public static class FeatureFqnDomainEvent extends PropertyDomainEvent<String> {
+ private static final long serialVersionUID = 1L;}
/**
* The {@link ApplicationFeatureId#getFullyQualifiedName() fully qualified name}
@@ -429,7 +443,8 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
// -- delete (action)
- public static class DeleteDomainEvent extends ActionDomainEvent {}
+ public static class DeleteDomainEvent extends ActionDomainEvent {
+ private static final long serialVersionUID = 1L;}
@Action(
semantics = SemanticsOf.IDEMPOTENT_ARE_YOU_SURE,
@@ -444,8 +459,6 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
// -- CONTRACT
- private final static String propertyNames = "role, featureType, featureFqn, mode";
-
private final static ObjectContract<ApplicationPermission> contract =
ObjectContracts.contract(ApplicationPermission.class)
.thenUse("role", ApplicationPermission::getRole)
@@ -497,14 +510,7 @@ public class ApplicationPermission implements Comparable<ApplicationPermission>
}
-
- //region > services (injected)
- @javax.inject.Inject
- RepositoryService repository;
-
- @javax.inject.Inject
- ApplicationFeatureRepositoryDefault applicationFeatureRepository;
-
-
+ @Inject RepositoryService repository;
+ @Inject ApplicationFeatureRepositoryDefault applicationFeatureRepository;
}
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermissionMenu.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermissionMenu.java
index 8f8eb09..fdb0a06 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermissionMenu.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermissionMenu.java
@@ -42,13 +42,13 @@ import org.apache.isis.extensions.secman.api.SecurityModule;
public class ApplicationPermissionMenu {
// -- domain event classes
- public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationPermissions, T> {
+ public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationPermissionMenu, T> {
private static final long serialVersionUID = 1L;}
- public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationPermissions, T> {
+ public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationPermissionMenu, T> {
private static final long serialVersionUID = 1L;}
- public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationPermissions> {
+ public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationPermissionMenu> {
private static final long serialVersionUID = 1L;}
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermissions.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermissions.java
deleted file mode 100644
index 549eca9..0000000
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermissions.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.extensions.secman.jdo.dom.permission;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.annotation.RestrictTo;
-import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.extensions.secman.api.SecurityModule;
-import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionMode;
-import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionRule;
-import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionValue;
-import org.apache.isis.extensions.secman.jdo.dom.role.ApplicationRole;
-import org.apache.isis.extensions.secman.jdo.dom.user.ApplicationUser;
-import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureId;
-import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureType;
-
-/**
- * @deprecated - use {@link ApplicationPermissionRepository} or {@link ApplicationPermissionMenu}.
- */
-@Deprecated
-@DomainService(nature = NatureOfService.DOMAIN)
-public class ApplicationPermissions {
-
- // -- domain event classes
-
- public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationPermissions, T> {}
-
- public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationPermissions, T> {}
-
- public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationPermissions> {}
-
-
- // -- iconName
-
- public String iconName() {
- return "applicationPermission";
- }
-
-
-
- // -- findByRole (programmatic)
-
- /**
- * @deprecated - use {@link ApplicationPermissionRepository#findByRoleCached(ApplicationRole)} or {@link ApplicationPermissionRepository#findByRole(ApplicationRole)} instead.
- */
- @Deprecated
- @Programmatic
- public List<ApplicationPermission> findByRole(final ApplicationRole role) {
- return applicationPermissionRepository.findByRole(role);
- }
-
-
- // -- findByUser (programmatic)
-
- /**
- * @deprecated - use {@link ApplicationPermissionRepository#findByUserCached(ApplicationUser)} or {@link ApplicationPermissionRepository#findByUser(ApplicationUser)} instead.
- */
- @Deprecated
- @Programmatic
- public List<ApplicationPermission> findByUser(final ApplicationUser user) {
- return applicationPermissionRepository.findByUser(user);
- }
-
-
-
- // -- findByUserAndPermissionValue (programmatic)
- /**
- * @deprecated - use {@link ApplicationPermissionRepository#findByUserAndPermissionValue(String, ApplicationPermissionValue)} instead.
- */
- @Deprecated
- @Programmatic
- public ApplicationPermission findByUserAndPermissionValue(final String username, final ApplicationPermissionValue permissionValue) {
- return applicationPermissionRepository.findByUserAndPermissionValue(username, permissionValue);
- }
-
-
- // -- findByRoleAndRuleAndFeatureType (programmatic)
-
- /**
- * @deprecated - use {@link ApplicationPermissionRepository#findByRoleAndRuleAndFeatureTypeCached(ApplicationRole, ApplicationPermissionRule, ApplicationFeatureType)} or {@link ApplicationPermissionRepository#findByRoleAndRuleAndFeatureType(ApplicationRole, ApplicationPermissionRule, ApplicationFeatureType)} instead.
- */
- @Deprecated
- @Programmatic
- public List<ApplicationPermission> findByRoleAndRuleAndFeatureType(
- final ApplicationRole role, final ApplicationPermissionRule rule,
- final ApplicationFeatureType type) {
- return applicationPermissionRepository.findByRoleAndRuleAndFeatureType(role, rule, type);
- }
-
-
- // -- findByRoleAndRuleAndFeature (programmatic)
-
- /**
- * @deprecated - use {@link ApplicationPermissionRepository#findByRoleAndRuleAndFeatureCached(ApplicationRole, ApplicationPermissionRule, ApplicationFeatureType, String)} or {@link ApplicationPermissionRepository#findByRoleAndRuleAndFeature(ApplicationRole, ApplicationPermissionRule, ApplicationFeatureType, String)} instead.
- */
- @Deprecated
- @Programmatic
- public ApplicationPermission findByRoleAndRuleAndFeature(final ApplicationRole role, final ApplicationPermissionRule rule, final ApplicationFeatureType type, final String featureFqn) {
- return applicationPermissionRepository.findByRoleAndRuleAndFeature(role, rule, type, featureFqn);
- }
-
-
- // -- findByFeature (programmatic)
-
- /**
- * @deprecated - use {@link ApplicationPermissionRepository#findByFeatureCached(ApplicationFeatureId)} or {@link ApplicationPermissionRepository#findByFeature(ApplicationFeatureId)} instead.
- */
- @Deprecated
- @Programmatic
- public List<ApplicationPermission> findByFeature(final ApplicationFeatureId featureId) {
- return applicationPermissionRepository.findByFeature(featureId);
- }
-
-
- // -- newPermission (programmatic)
-
- /**
- * @deprecated - use {@link ApplicationPermissionRepository#newPermission(ApplicationRole, ApplicationPermissionRule, ApplicationPermissionMode, ApplicationFeatureType, String)} instead.
- */
- @Deprecated
- @Programmatic
- public ApplicationPermission newPermission(
- final ApplicationRole role,
- final ApplicationPermissionRule rule,
- final ApplicationPermissionMode mode,
- final ApplicationFeatureType featureType,
- final String featureFqn) {
- return applicationPermissionRepository.newPermission(role, rule, mode, featureType, featureFqn);
- }
-
- /**
- * @deprecated - use {@link ApplicationPermissionRepository#newPermissionNoCheck(ApplicationRole, ApplicationPermissionRule, ApplicationPermissionMode, ApplicationFeatureType, String)} instead.
- */
- @Deprecated
- @Programmatic
- public ApplicationPermission newPermissionNoCheck(
- final ApplicationRole role,
- final ApplicationPermissionRule rule,
- final ApplicationPermissionMode mode,
- final ApplicationFeatureType featureType,
- final String featureFqn) {
- return applicationPermissionRepository.newPermissionNoCheck(role, rule, mode, featureType, featureFqn);
- }
-
- /**
- * @deprecated - use {@link ApplicationPermissionRepository#newPermission(ApplicationRole, ApplicationPermissionRule, ApplicationPermissionMode, String, String, String)} instead.
- */
- @Deprecated
- @Programmatic
- public ApplicationPermission newPermission(
- final ApplicationRole role,
- final ApplicationPermissionRule rule,
- final ApplicationPermissionMode mode,
- final String featurePackage,
- final String featureClassName,
- final String featureMemberName) {
- return applicationPermissionRepository.newPermission(role, rule, mode, featurePackage, featureClassName, featureMemberName);
- }
-
-
- // -- allPermission (action)
- public static class AllPermissionsDomainEvent extends ActionDomainEvent {}
-
- /**
- * @deprecated - use {@link ApplicationPermissionMenu#allPermissions()}
- */
- @Deprecated
- @Action(
- domainEvent=AllPermissionsDomainEvent.class,
- semantics = SemanticsOf.SAFE,
- restrictTo = RestrictTo.PROTOTYPING
- )
- public List<ApplicationPermission> allPermissions() {
- return applicationPermissionRepository.allPermissions();
- }
-
-
- //region > injected
- @Inject
- ApplicationPermissionRepository applicationPermissionRepository;
-
-}
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.java
index b3854ea..22195b6 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.java
@@ -18,10 +18,12 @@
*/
package org.apache.isis.extensions.secman.jdo.dom.role;
+import java.util.Comparator;
import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;
+import javax.inject.Inject;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.InheritanceStrategy;
@@ -47,7 +49,10 @@ import org.apache.isis.applib.services.appfeat.ApplicationFeatureRepository;
import org.apache.isis.applib.services.appfeat.ApplicationMemberType;
import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.types.DescriptionType;
+import org.apache.isis.applib.util.Equality;
+import org.apache.isis.applib.util.Hashing;
import org.apache.isis.applib.util.ObjectContracts;
+import org.apache.isis.applib.util.ToString;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.extensions.secman.api.SecurityModule;
import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionMode;
@@ -686,41 +691,45 @@ implements org.apache.isis.extensions.secman.api.role.ApplicationRole, Comparabl
// -- equals, hashCode, compareTo, toString
- private final static String propertyNames = "name";
+
+ private final static Comparator<ApplicationRole> comparator =
+ Comparator.comparing(ApplicationRole::getName);
+
+ private final static Equality<ApplicationRole> equality =
+ ObjectContracts.checkEquals(ApplicationRole::getName);
+
+ private final static Hashing<ApplicationRole> hashing =
+ ObjectContracts.hashing(ApplicationRole::getName);
+
+ private final static ToString<ApplicationRole> toString =
+ ObjectContracts.toString("name", ApplicationRole::getName);
+
@Override
public int compareTo(final ApplicationRole o) {
- return ObjectContracts.compare(this, o, propertyNames);
+ return comparator.compare(this, o);
}
@Override
public boolean equals(final Object obj) {
- return ObjectContracts.equals(this, obj, propertyNames);
+ return equality.equals(this, obj);
}
@Override
public int hashCode() {
- return ObjectContracts.hashCode(this, propertyNames);
+ return hashing.hashCode(this);
}
@Override
public String toString() {
- return ObjectContracts.toString(this, propertyNames);
+ return toString.toString(this);
}
-
-
- //region > (injected)
- @javax.inject.Inject
- RepositoryService repository;
- @javax.inject.Inject
- ApplicationFeatureRepository applicationFeatureRepository;
- @javax.inject.Inject
- ApplicationPermissionRepository applicationPermissionRepository;
- @javax.inject.Inject
- ApplicationUserRepository applicationUserRepository;
- @javax.inject.Inject
- ApplicationRoleRepository applicationRoleRepository;
+ @Inject RepositoryService repository;
+ @Inject ApplicationFeatureRepository applicationFeatureRepository;
+ @Inject ApplicationPermissionRepository applicationPermissionRepository;
+ @Inject ApplicationUserRepository applicationUserRepository;
+ @Inject ApplicationRoleRepository applicationRoleRepository;
}
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancies.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancies.java
deleted file mode 100644
index c5b32f5..0000000
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancies.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.extensions.secman.jdo.dom.tenancy;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.applib.annotation.ParameterLayout;
-import org.apache.isis.applib.annotation.RestrictTo;
-import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.extensions.secman.api.SecurityModule;
-
-/**
- * @deprecated - replaced by {@link ApplicationTenancyMenu}
- */
-@Deprecated
-@DomainService(nature = NatureOfService.DOMAIN)
-public class ApplicationTenancies {
-
- // -- domain event classes
- public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationTenancies, T> {}
-
- public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationTenancies, T> {}
-
- public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationTenancies> {}
-
-
- // -- iconName
- public String iconName() {
- return "applicationTenancy";
- }
-
-
- // -- findTenancyByName
- public static class FindTenancyByNameDomainEvent extends ActionDomainEvent {
- }
-
- /**
- * @deprecated - use {@link ApplicationTenancyMenu#findTenancies(String)} instead.
- */
- @Deprecated
- @Action(
- domainEvent = FindTenancyByNameDomainEvent.class,
- semantics = SemanticsOf.SAFE,
- hidden = Where.EVERYWHERE // since deprecated
- )
- public ApplicationTenancy findTenancyByName(
- @Parameter(maxLength = ApplicationTenancy.MAX_LENGTH_NAME)
- @ParameterLayout(named = "Name", typicalLength = ApplicationTenancy.TYPICAL_LENGTH_NAME)
- final String name) {
- return applicationTenancyRepository.findByName(name);
- }
-
-
- // -- findTenancyByPath
-
- public static class FindTenancyByPathDomainEvent extends ActionDomainEvent {}
-
- /**
- * @deprecated - use {@link ApplicationTenancyMenu#findTenancies(String)} instead.
- */
- @Deprecated
- @Action(
- domainEvent = FindTenancyByPathDomainEvent.class,
- semantics = SemanticsOf.SAFE,
- hidden = Where.EVERYWHERE // since deprecated
- )
- public ApplicationTenancy findTenancyByPath(
- @Parameter(maxLength = ApplicationTenancy.MAX_LENGTH_PATH)
- @ParameterLayout(named = "Path")
- final String path) {
- return applicationTenancyRepository.findByPath(path);
- }
-
-
- // -- newTenancy
- public static class NewTenancyDomainEvent extends ActionDomainEvent {
- }
-
- /**
- * @deprecated - use {@link ApplicationTenancyMenu#newTenancy(String, String, ApplicationTenancy)} instead.
- */
- @Action(
- domainEvent = NewTenancyDomainEvent.class,
- semantics = SemanticsOf.IDEMPOTENT,
- hidden = Where.EVERYWHERE
- )
- public ApplicationTenancy newTenancy(
- @Parameter(maxLength = ApplicationTenancy.MAX_LENGTH_NAME)
- @ParameterLayout(named = "Name", typicalLength = ApplicationTenancy.TYPICAL_LENGTH_NAME)
- final String name,
- @Parameter(maxLength = ApplicationTenancy.MAX_LENGTH_PATH)
- @ParameterLayout(named = "Path")
- final String path,
- @Parameter(optionality = Optionality.OPTIONAL)
- @ParameterLayout(named = "Parent")
- final ApplicationTenancy parent) {
- return applicationTenancyRepository.newTenancy(name, path, parent);
- }
-
-
- // -- allTenancies
- public static class AllTenanciesDomainEvent extends ActionDomainEvent {
- }
-
- /**
- * @deprecated - use {@link ApplicationTenancyMenu#allTenancies()} instead.
- */
- @Action(
- domainEvent = AllTenanciesDomainEvent.class,
- semantics = SemanticsOf.SAFE,
- restrictTo = RestrictTo.PROTOTYPING,
- hidden = Where.EVERYWHERE
- )
- @MemberOrder(sequence = "100.30.4")
- public List<ApplicationTenancy> allTenancies() {
- return applicationTenancyRepository.allTenancies();
- }
-
-
-
- // -- injected
- @Inject
- ApplicationTenancyRepository applicationTenancyRepository;
-
-
-}
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancy.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancy.java
index 74c03df..bfc6e39 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancy.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancy.java
@@ -18,10 +18,12 @@
*/
package org.apache.isis.extensions.secman.jdo.dom.tenancy;
+import java.util.Comparator;
import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;
+import javax.inject.Inject;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.InheritanceStrategy;
@@ -46,7 +48,10 @@ import org.apache.isis.applib.annotation.Title;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.applib.util.Equality;
+import org.apache.isis.applib.util.Hashing;
import org.apache.isis.applib.util.ObjectContracts;
+import org.apache.isis.applib.util.ToString;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.extensions.secman.api.SecurityModule;
import org.apache.isis.extensions.secman.jdo.dom.user.ApplicationUser;
@@ -346,7 +351,8 @@ public class ApplicationTenancy implements Comparable<ApplicationTenancy> {
// -- removeChild (action)
- public static class RemoveChildDomainEvent extends ActionDomainEvent {}
+ public static class RemoveChildDomainEvent extends ActionDomainEvent {
+ private static final long serialVersionUID = 1L;}
@Action(
domainEvent = RemoveChildDomainEvent.class,
@@ -384,28 +390,45 @@ public class ApplicationTenancy implements Comparable<ApplicationTenancy> {
}
- // -- compareTo
+ // -- CONTRACT
+
+ private final static Equality<ApplicationTenancy> equality =
+ ObjectContracts.checkEquals(ApplicationTenancy::getPath);
+
+ private final static Hashing<ApplicationTenancy> hashing =
+ ObjectContracts.hashing(ApplicationTenancy::getPath);
+
+ private final static ToString<ApplicationTenancy> toString =
+ ObjectContracts.toString("path", ApplicationTenancy::getPath)
+ .thenToString("name", ApplicationTenancy::getName);
+
+ private final static Comparator<ApplicationTenancy> comparator =
+ Comparator.comparing(ApplicationTenancy::getPath);
@Override
+ public boolean equals(final Object other) {
+ return equality.equals(this, other);
+ }
+
+ @Override
+ public int hashCode() {
+ return hashing.hashCode(this);
+ }
+
+ @Override
public String toString() {
- return ObjectContracts.toString(this, "path,name");
+ return toString.toString(this);
}
@Override
public int compareTo(final ApplicationTenancy o) {
- return ObjectContracts.compare(this, o, "path");
+ return comparator.compare(this, o);
}
-
- //region > (injected)
- @javax.inject.Inject
- ApplicationUserRepository applicationUserRepository;
- @javax.inject.Inject
- ApplicationTenancyRepository applicationTenancyRepository;
- @javax.inject.Inject
- FactoryService factoryService;
- @javax.inject.Inject
- RepositoryService repository;
+ @Inject ApplicationUserRepository applicationUserRepository;
+ @Inject ApplicationTenancyRepository applicationTenancyRepository;
+ @Inject FactoryService factoryService;
+ @Inject RepositoryService repository;
}
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancyMenu.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancyMenu.java
index 34869f2..ad6431f 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancyMenu.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancyMenu.java
@@ -46,13 +46,13 @@ import org.apache.isis.extensions.secman.api.SecurityModule;
public class ApplicationTenancyMenu {
// -- domain event classes
- public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationTenancies, T> {
+ public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationTenancyMenu, T> {
private static final long serialVersionUID = 1L;}
- public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationTenancies, T> {
+ public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationTenancyMenu, T> {
private static final long serialVersionUID = 1L;}
- public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationTenancies> {
+ public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationTenancyMenu> {
private static final long serialVersionUID = 1L;}
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancyPathEvaluator.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancyPathEvaluator.java
deleted file mode 100644
index 3a039ca..0000000
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancyPathEvaluator.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.extensions.secman.jdo.dom.tenancy;
-
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.extensions.secman.jdo.dom.user.ApplicationUser;
-
-/**
- * Optional SPI interface to be implemented by a domain service, providing an alternative mechanism for evaluating the
- * application tenancy of the object being interacted with (the "what") and optionally also the tenancy of the user
- * making the call (the "who").
- *
- * @see #handles(Class)
- * @see #applicationTenancyPathFor(Object)
- *
- * @deprecated - replaced by {@link ApplicationTenancyEvaluator}.
- */
-@Deprecated
-public interface ApplicationTenancyPathEvaluator {
-
- /**
- * Whether this evaluator can determine the tenancy of the specified domain entity (such as <tt>ToDoItem</tt>)
- * being interacted with (the "what").
- *
- * <p>
- * This method is also called to determine if the evaluator is also able to determine the tenancy of the
- * security module's own {@link org.apache.isis.extensions.secman.jdo.dom.user.ApplicationUser}, ie the "who" is
- * doing the interacting. If the evaluator does not handle the class, then the fallback behaviour is
- * to invoke {@link ApplicationUser#getAtPath()} getAtPath} on the {@link ApplicationUser} and use the
- * path from that.
- * </p>
- */
- @Programmatic
- boolean handles(Class<?> cls);
-
- /**
- * Return the tenancy path for the target domain object being interacted with, either the "what" (a domain entity
- * such as <tt>ToDoItem</tt>, say) and optionally the "who", ie the security module's own
- * {@link org.apache.isis.extensions.secman.jdo.dom.user.ApplicationUser}. This latter depends on the result of the
- * earlier call to {@link #handles(Class)}.
- */
- @Programmatic
- String applicationTenancyPathFor(final Object domainObject);
-
-}
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java
index bc7deb1..82081ed 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java
@@ -23,6 +23,7 @@ import java.util.Objects;
import java.util.SortedSet;
import java.util.TreeSet;
+import javax.inject.Inject;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.InheritanceStrategy;
@@ -998,28 +999,18 @@ public class ApplicationUser implements Comparable<ApplicationUser>, HasUsername
return contract.toString(this);
}
-
-
- //region > (injected)
- @javax.inject.Inject
- ApplicationRoleRepository applicationRoleRepository;
- @javax.inject.Inject
- ApplicationUserRepository applicationUserRepository;
- @javax.inject.Inject
- ApplicationPermissionRepository applicationPermissionRepository;
- @javax.inject.Inject
- PasswordEncryptionService passwordEncryptionService;
- @javax.inject.Inject
- RepositoryService repository;
- @javax.inject.Inject
- UserService userService;
+ @Inject ApplicationRoleRepository applicationRoleRepository;
+ @Inject ApplicationUserRepository applicationUserRepository;
+ @Inject ApplicationPermissionRepository applicationPermissionRepository;
+ @Inject PasswordEncryptionService passwordEncryptionService;
+ @Inject RepositoryService repository;
+ @Inject UserService userService;
/**
* Optional service, if configured then is used to evaluate permissions within
* {@link org.apache.isis.extensions.secman.api.permission.ApplicationPermissionValueSet#evaluate(ApplicationFeatureId, ApplicationPermissionMode)}
* else will fallback to a {@link org.apache.isis.extensions.secman.api.permission.PermissionsEvaluationService#DEFAULT default}
* implementation.
*/
- @javax.inject.Inject
- PermissionsEvaluationService permissionsEvaluationService;
+ @Inject PermissionsEvaluationService permissionsEvaluationService;
}
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/HasUsername_open.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/HasUsername_open.java
index e4ab535..b4a3db6 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/HasUsername_open.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/HasUsername_open.java
@@ -30,17 +30,15 @@ import org.apache.isis.applib.services.HasUsername;
import org.apache.isis.applib.services.i18n.TranslatableString;
import org.apache.isis.extensions.secman.api.SecurityModule;
-@Mixin(method = "exec")
-public class HasUsername_open {
-
- private final HasUsername hasUsername;
+import lombok.RequiredArgsConstructor;
- public HasUsername_open(final HasUsername hasUsername) {
- this.hasUsername = hasUsername;
- }
+@Mixin(method = "exec") @RequiredArgsConstructor
+public class HasUsername_open {
+ private final HasUsername holder;
- public static class ActionDomainEvent extends SecurityModule.ActionDomainEvent<HasUsername_open> {}
+ public static class ActionDomainEvent extends SecurityModule.ActionDomainEvent<HasUsername_open> {
+ private static final long serialVersionUID = 1L;}
@Action(
semantics = SemanticsOf.SAFE,
@@ -51,17 +49,17 @@ public class HasUsername_open {
)
@MemberOrder(name = "User", sequence = "1") // associate with a 'User' property (if any)
public ApplicationUser exec() {
- if (hasUsername == null || hasUsername.getUsername() == null) {
+ if (holder == null || holder.getUsername() == null) {
return null;
}
- return applicationUserRepository.findByUsername(hasUsername.getUsername());
+ return applicationUserRepository.findByUsername(holder.getUsername());
}
public boolean hideExec() {
- return hasUsername instanceof ApplicationUser;
+ return holder instanceof ApplicationUser;
}
public TranslatableString disableExec() {
- if (hasUsername == null || hasUsername.getUsername() == null) {
+ if (holder == null || holder.getUsername() == null) {
return TranslatableString.tr("No username");
}
return null;
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/facets/ApplicationTenancyEvaluatorUsingPaths.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/facets/ApplicationTenancyEvaluatorUsingPaths.java
deleted file mode 100644
index e10737f..0000000
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/facets/ApplicationTenancyEvaluatorUsingPaths.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.extensions.secman.jdo.facets;
-
-import java.util.concurrent.Callable;
-
-import javax.inject.Inject;
-
-import org.apache.isis.applib.services.queryresultscache.QueryResultsCache;
-import org.apache.isis.extensions.secman.jdo.dom.tenancy.ApplicationTenancyEvaluator;
-import org.apache.isis.extensions.secman.jdo.dom.tenancy.ApplicationTenancyPathEvaluator;
-import org.apache.isis.extensions.secman.jdo.dom.user.ApplicationUser;
-
-class ApplicationTenancyEvaluatorUsingPaths implements ApplicationTenancyEvaluator {
-
- private final ApplicationTenancyPathEvaluator evaluator;
- ApplicationTenancyEvaluatorUsingPaths(final ApplicationTenancyPathEvaluator pathEvaluator) {
- this.evaluator = pathEvaluator;
- }
-
- @Override
- public boolean handles(Class<?> cls) {
- return evaluator.handles(cls);
- }
-
- @Override
- public String hides(Object domainObject, ApplicationUser applicationUser) {
-
- // eg /x/y
- String objectTenancyPath = applicationTenancyPathForCached(domainObject);
- if (objectTenancyPath == null) {
- return null;
- }
-
- // eg /x or /x/y/z
- String userTenancyPath = userTenancyPathForCached(applicationUser);
- if (userTenancyPath == null) {
- return "User has no tenancy";
- }
-
- if (objectVisibleToUser(objectTenancyPath, userTenancyPath)) {
- return null;
- }
-
- // it's ok to return this info, because it isn't actually rendered (helpful if debugging)
- return String.format(
- "User with tenancy '%s' is not permitted to view object with tenancy '%s'",
- userTenancyPath,
- objectTenancyPath);
- }
-
- @Override
- public String disables(Object domainObject, ApplicationUser applicationUser) {
-
- // eg /x/y
- String objectTenancyPath = applicationTenancyPathForCached(domainObject);
- if (objectTenancyPath == null) {
- return null;
- }
-
- // eg /x or /x/y/z
- String userTenancyPath = userTenancyPathForCached(applicationUser);
- if (userTenancyPath == null) {
- return "User has no tenancy";
- }
-
- if (objectEnabledForUser(objectTenancyPath, userTenancyPath)) {
- return null;
- }
-
- return String.format(
- "User with tenancy '%s' is not permitted to edit object with tenancy '%s'",
- userTenancyPath,
- objectTenancyPath);
- }
-
- /**
- * Protected visibility so can be overridden if required, eg using wildcard matches.
- */
- protected boolean objectVisibleToUser(String objectTenancyPath, String userTenancyPath) {
- // if in "same hierarchy"
- return objectTenancyPath.startsWith(userTenancyPath) ||
- userTenancyPath.startsWith(objectTenancyPath);
- }
-
-
- /**
- * Protected visibility so can be overridden if required, eg using wildcard matches
- */
- protected boolean objectEnabledForUser(String objectTenancyPath, String userTenancyPath) {
- // if user's tenancy "above" object's tenancy in the hierarchy
- return objectTenancyPath.startsWith(userTenancyPath);
- }
-
- /**
- * Per {@link #applicationTenancyPathFor(Object)}, with result cached for the remainder of the request using the {@link QueryResultsCache}.
- */
- protected String applicationTenancyPathForCached(final Object domainObject) {
- return queryResultsCache.execute(new Callable<String>() {
- @Override
- public String call() throws Exception {
- return applicationTenancyPathFor(domainObject);
- }
- }, TenantedAuthorizationFacetDefault.class, "applicationTenancyPathFor", domainObject);
- }
-
- protected String applicationTenancyPathFor(final Object domainObject) {
- return evaluator.applicationTenancyPathFor(domainObject);
- }
-
- /**
- * Per {@link #userTenancyPathFor(ApplicationUser)}, with result cached for the remainder of the request using the {@link QueryResultsCache}.
- */
- protected String userTenancyPathForCached(final ApplicationUser applicationUser) {
- return queryResultsCache.execute(new Callable<String>() {
- @Override
- public String call() throws Exception {
- return userTenancyPathFor(applicationUser);
- }
- }, TenantedAuthorizationFacetDefault.class, "userTenancyPathFor", applicationUser);
- }
-
- protected String userTenancyPathFor(final ApplicationUser applicationUser) {
- if (evaluator.handles(applicationUser.getClass())) {
- return evaluator.applicationTenancyPathFor(applicationUser);
- }
- return applicationUser.getAtPath();
- }
-
-
- @Inject
- QueryResultsCache queryResultsCache;
-
-}
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/AbstractTenancyFixtureScript.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/AbstractTenancyFixtureScript.java
index 9c8e6b5..02524d2 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/AbstractTenancyFixtureScript.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/AbstractTenancyFixtureScript.java
@@ -18,6 +18,8 @@
*/
package org.apache.isis.extensions.secman.jdo.seed.scripts;
+import javax.inject.Inject;
+
import org.apache.isis.extensions.fixtures.legacy.fixturescripts.FixtureScript;
import org.apache.isis.extensions.secman.jdo.dom.tenancy.ApplicationTenancy;
import org.apache.isis.extensions.secman.jdo.dom.tenancy.ApplicationTenancyRepository;
@@ -46,7 +48,6 @@ public abstract class AbstractTenancyFixtureScript extends FixtureScript {
return applicationTenancy;
}
- @javax.inject.Inject
- private ApplicationTenancyRepository applicationTenancyRepository;
+ @Inject private ApplicationTenancyRepository applicationTenancyRepository;
}