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 2022/05/23 18:03:09 UTC
[isis] 02/02: ISIS-3062: introduces Nq utility class, also for secman
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-3062
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 9487682bc0dab524278a5c8de2ded4048d127286
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon May 23 19:02:56 2022 +0100
ISIS-3062: introduces Nq utility class, also for secman
---
.../permission/dom/ApplicationPermission.java | 15 +++++++-----
.../ApplicationPermissionRepositoryAbstract.java | 12 +++++-----
.../secman/applib/role/dom/ApplicationRole.java | 9 +++++--
.../dom/ApplicationRoleRepositoryAbstract.java | 4 ++--
.../applib/tenancy/dom/ApplicationTenancy.java | 11 ++++++---
.../dom/ApplicationTenancyRepositoryAbstract.java | 6 ++---
.../secman/applib/user/dom/ApplicationUser.java | 14 ++++++-----
.../dom/ApplicationUserRepositoryAbstract.java | 8 +++----
.../jdo/permission/dom/ApplicationPermission.java | 13 +++++-----
.../secman/jdo/role/dom/ApplicationRole.java | 4 ++--
.../secman/jdo/tenancy/dom/ApplicationTenancy.java | 6 ++---
.../secman/jdo/user/dom/ApplicationUser.java | 8 +++----
.../jpa/permission/dom/ApplicationPermission.java | 12 +++++-----
.../secman/jpa/role/dom/ApplicationRole.java | 4 ++--
.../secman/jpa/tenancy/dom/ApplicationTenancy.java | 6 ++---
.../secman/jpa/user/dom/ApplicationUser.java | 8 +++----
.../isis/sessionlog/jdo/dom/SessionLogEntry.java | 28 +++++++++++-----------
17 files changed, 92 insertions(+), 76 deletions(-)
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/permission/dom/ApplicationPermission.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/permission/dom/ApplicationPermission.java
index f284451c39..7a2d928110 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/permission/dom/ApplicationPermission.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/permission/dom/ApplicationPermission.java
@@ -89,12 +89,15 @@ public abstract class ApplicationPermission implements Comparable<ApplicationPer
public static final String SCHEMA = IsisModuleExtSecmanApplib.SCHEMA;
public static final String TABLE = "ApplicationPermission";
- public static final String NAMED_QUERY_FIND_BY_FEATURE = "ApplicationPermission.findByFeature";
- public static final String NAMED_QUERY_FIND_BY_ROLE = "ApplicationPermission.findByRole";
- public static final String NAMED_QUERY_FIND_BY_ROLE_RULE_FEATURE = "ApplicationPermission.findByRoleAndRuleAndFeature";
- public static final String NAMED_QUERY_FIND_BY_ROLE_RULE_FEATURE_FQN = "ApplicationPermission.findByRoleAndRuleAndFeatureAndFqn";
- public static final String NAMED_QUERY_FIND_BY_USER = "ApplicationPermission.findByUser";
- public static final String NAMED_QUERY_FIND_BY_ROLE_NAMES = "ApplicationPermission.findByRoleNames";
+ @UtilityClass
+ public static class Nq {
+ public static final String FIND_BY_FEATURE = ApplicationPermission.LOGICAL_TYPE_NAME + ".findByFeature";
+ public static final String FIND_BY_ROLE = ApplicationPermission.LOGICAL_TYPE_NAME + ".findByRole";
+ public static final String FIND_BY_ROLE_RULE_FEATURE = ApplicationPermission.LOGICAL_TYPE_NAME + ".findByRoleAndRuleAndFeature";
+ public static final String FIND_BY_ROLE_RULE_FEATURE_FQN = ApplicationPermission.LOGICAL_TYPE_NAME + ".findByRoleAndRuleAndFeatureAndFqn";
+ public static final String FIND_BY_USER = ApplicationPermission.LOGICAL_TYPE_NAME + ".findByUser";
+ public static final String FIND_BY_ROLE_NAMES = ApplicationPermission.LOGICAL_TYPE_NAME + ".findByRoleNames";
+ }
@Inject transient ApplicationFeatureRepository featureRepository;
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/permission/dom/ApplicationPermissionRepositoryAbstract.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/permission/dom/ApplicationPermissionRepositoryAbstract.java
index b56f0a5200..4035605680 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/permission/dom/ApplicationPermissionRepositoryAbstract.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/permission/dom/ApplicationPermissionRepositoryAbstract.java
@@ -80,7 +80,7 @@ implements ApplicationPermissionRepository {
public List<ApplicationPermission> findByRole(final @NonNull ApplicationRole role) {
return _Casts.uncheckedCast(
repository.allMatches(
- Query.named(this.applicationPermissionClass, ApplicationPermission.NAMED_QUERY_FIND_BY_ROLE)
+ Query.named(this.applicationPermissionClass, ApplicationPermission.Nq.FIND_BY_ROLE)
.withParameter("role", role))
);
}
@@ -106,7 +106,7 @@ implements ApplicationPermissionRepository {
public List<ApplicationPermission> findByRoleNames(final @NonNull List<String> roleNames) {
return _Casts.uncheckedCast(
repository.allMatches(
- Query.named(this.applicationPermissionClass, ApplicationPermission.NAMED_QUERY_FIND_BY_ROLE_NAMES)
+ Query.named(this.applicationPermissionClass, ApplicationPermission.Nq.FIND_BY_ROLE_NAMES)
.withParameter("roleNames", roleNames))
);
}
@@ -114,7 +114,7 @@ implements ApplicationPermissionRepository {
private List<ApplicationPermission> findByUser(final String username) {
return _Casts.uncheckedCast(
repository.allMatches(
- Query.named(this.applicationPermissionClass, ApplicationPermission.NAMED_QUERY_FIND_BY_USER)
+ Query.named(this.applicationPermissionClass, ApplicationPermission.Nq.FIND_BY_USER)
.withParameter("username", username))
);
}
@@ -179,7 +179,7 @@ implements ApplicationPermissionRepository {
final ApplicationPermissionRule rule,
final ApplicationFeatureSort featureSort) {
return repository.allMatches(Query.named(
- this.applicationPermissionClass, ApplicationPermission.NAMED_QUERY_FIND_BY_ROLE_RULE_FEATURE)
+ this.applicationPermissionClass, ApplicationPermission.Nq.FIND_BY_ROLE_RULE_FEATURE)
.withParameter("role", role)
.withParameter("rule", rule)
.withParameter("featureSort", featureSort))
@@ -210,7 +210,7 @@ implements ApplicationPermissionRepository {
return _Casts.uncheckedCast(
repository
.uniqueMatch(Query.named(
- this.applicationPermissionClass, ApplicationPermission.NAMED_QUERY_FIND_BY_ROLE_RULE_FEATURE_FQN)
+ this.applicationPermissionClass, ApplicationPermission.Nq.FIND_BY_ROLE_RULE_FEATURE_FQN)
.withParameter("role", role)
.withParameter("rule", rule)
.withParameter("featureSort", featureSort)
@@ -231,7 +231,7 @@ implements ApplicationPermissionRepository {
public Collection<ApplicationPermission> findByFeature(final ApplicationFeatureId featureId) {
return repository.allMatches(
Query.named(
- this.applicationPermissionClass, ApplicationPermission.NAMED_QUERY_FIND_BY_FEATURE)
+ this.applicationPermissionClass, ApplicationPermission.Nq.FIND_BY_FEATURE)
.withParameter("featureSort", featureId.getSort())
.withParameter("featureFqn", featureId.getFullyQualifiedName()))
.stream()
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/dom/ApplicationRole.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/dom/ApplicationRole.java
index c408a4d868..7ca7df7207 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/dom/ApplicationRole.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/dom/ApplicationRole.java
@@ -47,6 +47,8 @@ import org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermis
import org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermissionRepository;
import org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser;
+import lombok.experimental.UtilityClass;
+
/**
* @since 2.0 {@index}
*/
@@ -59,8 +61,11 @@ public abstract class ApplicationRole implements Comparable<ApplicationRole> {
public static final String SCHEMA = IsisModuleExtSecmanApplib.SCHEMA;
public static final String TABLE = "ApplicationRole";
- public static final String NAMED_QUERY_FIND_BY_NAME = "ApplicationRole.findByName";
- public static final String NAMED_QUERY_FIND_BY_NAME_CONTAINING = "ApplicationRole.findByNameContaining";
+ @UtilityClass
+ public static class Nq {
+ public static final String FIND_BY_NAME = ApplicationRole.LOGICAL_TYPE_NAME + ".findByName";
+ public static final String FIND_BY_NAME_CONTAINING = ApplicationRole.LOGICAL_TYPE_NAME + ".findByNameContaining";
+ }
@Inject transient private ApplicationPermissionRepository applicationPermissionRepository;
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/dom/ApplicationRoleRepositoryAbstract.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/dom/ApplicationRoleRepositoryAbstract.java
index 60b96b766a..434fb3076f 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/dom/ApplicationRoleRepositoryAbstract.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/dom/ApplicationRoleRepositoryAbstract.java
@@ -83,7 +83,7 @@ implements ApplicationRoleRepository {
return Optional.empty();
}
return _Casts.uncheckedCast(
- repository.uniqueMatch(Query.named(applicationRoleClass, ApplicationRole.NAMED_QUERY_FIND_BY_NAME)
+ repository.uniqueMatch(Query.named(applicationRoleClass, ApplicationRole.Nq.FIND_BY_NAME)
.withParameter("name", name))
);
}
@@ -94,7 +94,7 @@ implements ApplicationRoleRepository {
if(search != null && search.length() > 0) {
val nameRegex = regexReplacer.asRegex(search);
return repository.allMatches(
- Query.named(applicationRoleClass, ApplicationRole.NAMED_QUERY_FIND_BY_NAME_CONTAINING)
+ Query.named(applicationRoleClass, ApplicationRole.Nq.FIND_BY_NAME_CONTAINING)
.withParameter("regex", nameRegex))
.stream()
.collect(_Sets.toUnmodifiableSorted());
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/dom/ApplicationTenancy.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/dom/ApplicationTenancy.java
index 264659e6ab..026ce820ab 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/dom/ApplicationTenancy.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/dom/ApplicationTenancy.java
@@ -41,6 +41,8 @@ import org.apache.isis.applib.util.ObjectContracts;
import org.apache.isis.applib.util.ToString;
import org.apache.isis.extensions.secman.applib.IsisModuleExtSecmanApplib;
+import lombok.experimental.UtilityClass;
+
/**
* @since 2.0 {@index}
*/
@@ -53,9 +55,12 @@ public abstract class ApplicationTenancy implements Comparable<ApplicationTenanc
public static final String SCHEMA = IsisModuleExtSecmanApplib.SCHEMA;
public static final String TABLE = "ApplicationTenancy";
- public static final String NAMED_QUERY_FIND_BY_NAME = "ApplicationTenancy.findByName";
- public static final String NAMED_QUERY_FIND_BY_PATH = "ApplicationTenancy.findByPath";
- public static final String NAMED_QUERY_FIND_BY_NAME_OR_PATH_MATCHING = "ApplicationTenancy.findByNameOrPathMatching";
+ @UtilityClass
+ public static class Nq {
+ public static final String FIND_BY_NAME = ApplicationTenancy.LOGICAL_TYPE_NAME + ".findByName";
+ public static final String FIND_BY_PATH = ApplicationTenancy.LOGICAL_TYPE_NAME + ".findByPath";
+ public static final String FIND_BY_NAME_OR_PATH_MATCHING = ApplicationTenancy.LOGICAL_TYPE_NAME + ".findByNameOrPathMatching";
+ }
// -- DOMAIN EVENTS
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.java
index 81381b6e95..bc441a40a4 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.java
@@ -70,7 +70,7 @@ implements ApplicationTenancyRepository {
return Collections.emptySortedSet();
}
val regex = regexReplacer.asRegex(search);
- return repository.allMatches(Query.named(this.applicationTenancyClass, ApplicationTenancy.NAMED_QUERY_FIND_BY_NAME_OR_PATH_MATCHING)
+ return repository.allMatches(Query.named(this.applicationTenancyClass, ApplicationTenancy.Nq.FIND_BY_NAME_OR_PATH_MATCHING)
.withParameter("regex", regex))
.stream()
.collect(_Sets.toUnmodifiableSorted());
@@ -86,7 +86,7 @@ implements ApplicationTenancyRepository {
}
public ApplicationTenancy findByName(final String name) {
- return repository.uniqueMatch(Query.named(this.applicationTenancyClass, ApplicationTenancy.NAMED_QUERY_FIND_BY_NAME)
+ return repository.uniqueMatch(Query.named(this.applicationTenancyClass, ApplicationTenancy.Nq.FIND_BY_NAME)
.withParameter("name", name)).orElse(null);
}
@@ -105,7 +105,7 @@ implements ApplicationTenancyRepository {
if (path == null) {
return null;
}
- return repository.uniqueMatch(Query.named(this.applicationTenancyClass, ApplicationTenancy.NAMED_QUERY_FIND_BY_PATH)
+ return repository.uniqueMatch(Query.named(this.applicationTenancyClass, ApplicationTenancy.Nq.FIND_BY_PATH)
.withParameter("path", path))
.orElse(null);
}
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/dom/ApplicationUser.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/dom/ApplicationUser.java
index 27c12b0393..d692c6f5fa 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/dom/ApplicationUser.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/dom/ApplicationUser.java
@@ -63,6 +63,7 @@ import org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole;
import org.apache.isis.extensions.secman.applib.tenancy.dom.HasAtPath;
import lombok.val;
+import lombok.experimental.UtilityClass;
/**
* @since 2.0 {@index}
@@ -77,6 +78,13 @@ public abstract class ApplicationUser
public static final String SCHEMA = IsisModuleExtSecmanApplib.SCHEMA;
public static final String TABLE = "ApplicationUser";
+ @UtilityClass
+ public static class Nq {
+ public static final String FIND_BY_USERNAME = ApplicationUser.LOGICAL_TYPE_NAME + ".findByUsername";
+ public static final String FIND_BY_EMAIL_ADDRESS = ApplicationUser.LOGICAL_TYPE_NAME + ".findByEmailAddress";
+ public static final String FIND = ApplicationUser.LOGICAL_TYPE_NAME + ".find";
+ public static final String FIND_BY_ATPATH = ApplicationUser.LOGICAL_TYPE_NAME + ".findByAtPath";
+ }
@Inject private transient ApplicationUserRepository applicationUserRepository;
@Inject private transient ApplicationPermissionRepository applicationPermissionRepository;
@@ -109,12 +117,6 @@ public abstract class ApplicationUser
return config.getExtensions().getSecman();
}
- // -- CONSTANTS
-
- public static final String NAMED_QUERY_FIND_BY_USERNAME = "ApplicationUser.findByUsername";
- public static final String NAMED_QUERY_FIND_BY_EMAIL_ADDRESS = "ApplicationUser.findByEmailAddress";
- public static final String NAMED_QUERY_FIND = "ApplicationUser.find";
- public static final String NAMED_QUERY_FIND_BY_ATPATH = "ApplicationUser.findByAtPath";
// -- DOMAIN EVENTS
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/dom/ApplicationUserRepositoryAbstract.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/dom/ApplicationUserRepositoryAbstract.java
index c89325853f..e8e0664c43 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/dom/ApplicationUserRepositoryAbstract.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/dom/ApplicationUserRepositoryAbstract.java
@@ -104,7 +104,7 @@ implements ApplicationUserRepository {
@Override
public Optional<ApplicationUser> findByUsername(final String username) {
return _Casts.uncheckedCast(
- repository.uniqueMatch(Query.named(this.applicationUserClass, ApplicationUser.NAMED_QUERY_FIND_BY_USERNAME)
+ repository.uniqueMatch(Query.named(this.applicationUserClass, ApplicationUser.Nq.FIND_BY_USERNAME)
.withParameter("username", username))
);
}
@@ -119,7 +119,7 @@ implements ApplicationUserRepository {
@Override
public Optional<ApplicationUser> findByEmailAddress(final String emailAddress) {
return _Casts.uncheckedCast(
- repository.uniqueMatch(Query.named(this.applicationUserClass, ApplicationUser.NAMED_QUERY_FIND_BY_EMAIL_ADDRESS)
+ repository.uniqueMatch(Query.named(this.applicationUserClass, ApplicationUser.Nq.FIND_BY_EMAIL_ADDRESS)
.withParameter("emailAddress", emailAddress))
);
}
@@ -129,7 +129,7 @@ implements ApplicationUserRepository {
@Override
public Collection<ApplicationUser> find(final @Nullable String _search) {
val regex = regexReplacer.asRegex(_search);
- return repository.allMatches(Query.named(this.applicationUserClass, ApplicationUser.NAMED_QUERY_FIND)
+ return repository.allMatches(Query.named(this.applicationUserClass, ApplicationUser.Nq.FIND)
.withParameter("regex", regex))
.stream()
.collect(_Sets.toUnmodifiableSorted());
@@ -140,7 +140,7 @@ implements ApplicationUserRepository {
@Override
public Collection<ApplicationUser> findByAtPath(final String atPath) {
- return repository.allMatches(Query.named(this.applicationUserClass, ApplicationUser.NAMED_QUERY_FIND_BY_ATPATH)
+ return repository.allMatches(Query.named(this.applicationUserClass, ApplicationUser.Nq.FIND_BY_ATPATH)
.withParameter("atPath", atPath))
.stream()
.collect(_Sets.toUnmodifiableSorted());
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/permission/dom/ApplicationPermission.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/permission/dom/ApplicationPermission.java
index 0a43517161..7059e8d12a 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/permission/dom/ApplicationPermission.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/permission/dom/ApplicationPermission.java
@@ -38,6 +38,7 @@ import org.apache.isis.applib.annotation.DomainObjectLayout;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.services.appfeat.ApplicationFeatureSort;
import org.apache.isis.commons.internal.base._Casts;
+import org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.Nq;
import org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermissionMode;
import org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermissionRule;
import org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole;
@@ -55,29 +56,29 @@ import org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole;
column = "version")
@Queries( {
@Query(
- name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.NAMED_QUERY_FIND_BY_ROLE,
+ name = Nq.FIND_BY_ROLE,
value = "SELECT "
+ "FROM " + ApplicationPermission.FQCN
+ " WHERE role == :role"),
@Query(
- name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.NAMED_QUERY_FIND_BY_USER,
+ name = Nq.FIND_BY_USER,
value = "SELECT "
+ "FROM " + ApplicationPermission.FQCN
+ " WHERE (u.roles.contains(role) && u.username == :username) "
+ "VARIABLES org.apache.isis.extensions.secman.jdo.user.dom.ApplicationUser u"),
@Query(
- name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.NAMED_QUERY_FIND_BY_ROLE_NAMES,
+ name = Nq.FIND_BY_ROLE_NAMES,
value = "SELECT "
+ "FROM " + ApplicationPermission.FQCN
+ " WHERE :roleNames.contains(role.name) "),
@Query(
- name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.NAMED_QUERY_FIND_BY_FEATURE,
+ name = Nq.FIND_BY_FEATURE,
value = "SELECT "
+ "FROM " + ApplicationPermission.FQCN
+ " WHERE featureSort == :featureSort "
+ " && featureFqn == :featureFqn"),
@Query(
- name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.NAMED_QUERY_FIND_BY_ROLE_RULE_FEATURE_FQN,
+ name = Nq.FIND_BY_ROLE_RULE_FEATURE_FQN,
value = "SELECT "
+ "FROM " + ApplicationPermission.FQCN
+ " WHERE role == :role "
@@ -85,7 +86,7 @@ import org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole;
+ " && featureSort == :featureSort "
+ " && featureFqn == :featureFqn "),
@Query(
- name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.NAMED_QUERY_FIND_BY_ROLE_RULE_FEATURE,
+ name = Nq.FIND_BY_ROLE_RULE_FEATURE,
value = "SELECT "
+ "FROM " + ApplicationPermission.FQCN
+ " WHERE role == :role "
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/role/dom/ApplicationRole.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/role/dom/ApplicationRole.java
index 7e511239a8..40c92d7047 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/role/dom/ApplicationRole.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/role/dom/ApplicationRole.java
@@ -56,12 +56,12 @@ import org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser;
})
@Queries({
@Query(
- name = org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole.NAMED_QUERY_FIND_BY_NAME,
+ name = org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole.Nq.FIND_BY_NAME,
value = "SELECT "
+ "FROM " + ApplicationRole.FQCN
+ " WHERE name == :name"),
@Query(
- name = org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole.NAMED_QUERY_FIND_BY_NAME_CONTAINING,
+ name = org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole.Nq.FIND_BY_NAME_CONTAINING,
value = "SELECT "
+ "FROM " + ApplicationRole.FQCN
+ " WHERE name.matches(:regex) ")
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java
index 99263f0537..d3a4c2f9c6 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java
@@ -60,17 +60,17 @@ import org.apache.isis.commons.internal.base._Casts;
})
@Queries( {
@Query(
- name = org.apache.isis.extensions.secman.applib.tenancy.dom.ApplicationTenancy.NAMED_QUERY_FIND_BY_PATH,
+ name = org.apache.isis.extensions.secman.applib.tenancy.dom.ApplicationTenancy.Nq.FIND_BY_PATH,
value = "SELECT "
+ "FROM " + ApplicationTenancy.FQCN
+ " WHERE path == :path"),
@Query(
- name = org.apache.isis.extensions.secman.applib.tenancy.dom.ApplicationTenancy.NAMED_QUERY_FIND_BY_NAME,
+ name = org.apache.isis.extensions.secman.applib.tenancy.dom.ApplicationTenancy.Nq.FIND_BY_NAME,
value = "SELECT "
+ "FROM " + ApplicationTenancy.FQCN
+ " WHERE name == :name"),
@Query(
- name = org.apache.isis.extensions.secman.applib.tenancy.dom.ApplicationTenancy.NAMED_QUERY_FIND_BY_NAME_OR_PATH_MATCHING,
+ name = org.apache.isis.extensions.secman.applib.tenancy.dom.ApplicationTenancy.Nq.FIND_BY_NAME_OR_PATH_MATCHING,
value = "SELECT "
+ "FROM " + ApplicationTenancy.FQCN
+ " WHERE name.matches(:regex) || path.matches(:regex) ")})
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/user/dom/ApplicationUser.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/user/dom/ApplicationUser.java
index 519c8773a6..ffb017db28 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/user/dom/ApplicationUser.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/user/dom/ApplicationUser.java
@@ -67,22 +67,22 @@ import lombok.Setter;
})
@Queries( {
@Query(
- name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.NAMED_QUERY_FIND_BY_USERNAME,
+ name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.Nq.FIND_BY_USERNAME,
value = "SELECT "
+ "FROM " + ApplicationUser.FQCN
+ " WHERE username == :username"),
@Query(
- name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.NAMED_QUERY_FIND_BY_EMAIL_ADDRESS,
+ name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.Nq.FIND_BY_EMAIL_ADDRESS,
value = "SELECT "
+ "FROM " + ApplicationUser.FQCN
+ " WHERE emailAddress == :emailAddress"),
@Query(
- name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.NAMED_QUERY_FIND_BY_ATPATH,
+ name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.Nq.FIND_BY_ATPATH,
value = "SELECT "
+ "FROM " + ApplicationUser.FQCN
+ " WHERE atPath == :atPath"),
@Query(
- name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.NAMED_QUERY_FIND,
+ name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.Nq.FIND,
value = "SELECT "
+ "FROM " + ApplicationUser.FQCN
+ " WHERE username.matches(:regex)"
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/permission/dom/ApplicationPermission.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/permission/dom/ApplicationPermission.java
index f53e04dc95..34a55e88b8 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/permission/dom/ApplicationPermission.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/permission/dom/ApplicationPermission.java
@@ -55,31 +55,31 @@ import org.apache.isis.persistence.jpa.applib.integration.IsisEntityListener;
)
@NamedQueries({
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.NAMED_QUERY_FIND_BY_ROLE,
+ name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.Nq.FIND_BY_ROLE,
query = "SELECT p "
+ " FROM ApplicationPermission p "
+ " WHERE p.role = :role"),
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.NAMED_QUERY_FIND_BY_USER,
+ name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.Nq.FIND_BY_USER,
query = "SELECT perm "
+ "FROM ApplicationPermission perm "
+ "JOIN perm.role role "
+ "JOIN role.users user "
+ "WHERE user.username = :username"),
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.NAMED_QUERY_FIND_BY_ROLE_NAMES,
+ name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.Nq.FIND_BY_ROLE_NAMES,
query = "SELECT perm "
+ "FROM ApplicationPermission perm "
+ "JOIN perm.role role "
+ "WHERE role.name IN :roleNames"),
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.NAMED_QUERY_FIND_BY_FEATURE,
+ name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.Nq.FIND_BY_FEATURE,
query = "SELECT p "
+ " FROM ApplicationPermission p "
+ " WHERE p.featureSort = :featureSort "
+ " AND p.featureFqn = :featureFqn"),
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.NAMED_QUERY_FIND_BY_ROLE_RULE_FEATURE_FQN,
+ name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.Nq.FIND_BY_ROLE_RULE_FEATURE_FQN,
query = "SELECT p "
+ " FROM ApplicationPermission p "
+ " WHERE p.role = :role "
@@ -87,7 +87,7 @@ import org.apache.isis.persistence.jpa.applib.integration.IsisEntityListener;
+ " AND p.featureSort = :featureSort "
+ " AND p.featureFqn = :featureFqn "),
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.NAMED_QUERY_FIND_BY_ROLE_RULE_FEATURE,
+ name = org.apache.isis.extensions.secman.applib.permission.dom.ApplicationPermission.Nq.FIND_BY_ROLE_RULE_FEATURE,
query = "SELECT p "
+ " FROM ApplicationPermission p "
+ " WHERE p.role = :role "
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/role/dom/ApplicationRole.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/role/dom/ApplicationRole.java
index 0155444c67..c2af986b04 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/role/dom/ApplicationRole.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/role/dom/ApplicationRole.java
@@ -53,12 +53,12 @@ import org.apache.isis.persistence.jpa.applib.integration.IsisEntityListener;
)
@NamedQueries({
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole.NAMED_QUERY_FIND_BY_NAME,
+ name = org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole.Nq.FIND_BY_NAME,
query = "SELECT r "
+ "FROM ApplicationRole r "
+ "WHERE r.name = :name"),
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole.NAMED_QUERY_FIND_BY_NAME_CONTAINING,
+ name = org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole.Nq.FIND_BY_NAME_CONTAINING,
query = "SELECT r "
+ "FROM ApplicationRole r "
+ "WHERE r.name LIKE :regex"),
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/tenancy/dom/ApplicationTenancy.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/tenancy/dom/ApplicationTenancy.java
index 1254d41d11..9638edf051 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/tenancy/dom/ApplicationTenancy.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/tenancy/dom/ApplicationTenancy.java
@@ -51,17 +51,17 @@ import org.apache.isis.commons.internal.base._Casts;
)
@NamedQueries({
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.tenancy.dom.ApplicationTenancy.NAMED_QUERY_FIND_BY_PATH,
+ name = org.apache.isis.extensions.secman.applib.tenancy.dom.ApplicationTenancy.Nq.FIND_BY_PATH,
query = "SELECT t "
+ " FROM ApplicationTenancy t "
+ " WHERE t.path = :path"),
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.tenancy.dom.ApplicationTenancy.NAMED_QUERY_FIND_BY_NAME,
+ name = org.apache.isis.extensions.secman.applib.tenancy.dom.ApplicationTenancy.Nq.FIND_BY_NAME,
query = "SELECT t "
+ " FROM ApplicationTenancy t "
+ " WHERE t.name = :name"),
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.tenancy.dom.ApplicationTenancy.NAMED_QUERY_FIND_BY_NAME_OR_PATH_MATCHING,
+ name = org.apache.isis.extensions.secman.applib.tenancy.dom.ApplicationTenancy.Nq.FIND_BY_NAME_OR_PATH_MATCHING,
query = "SELECT t "
+ " FROM ApplicationTenancy t "
+ " WHERE t.name LIKE :regex "
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/user/dom/ApplicationUser.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/user/dom/ApplicationUser.java
index 724ffe16c9..5db24e9554 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/user/dom/ApplicationUser.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/user/dom/ApplicationUser.java
@@ -61,22 +61,22 @@ import lombok.Setter;
)
@NamedQueries({
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.NAMED_QUERY_FIND_BY_USERNAME,
+ name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.Nq.NAMED_QUERY_FIND_BY_USERNAME,
query = "SELECT u "
+ " FROM ApplicationUser u "
+ " WHERE u.username = :username"),
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.NAMED_QUERY_FIND_BY_EMAIL_ADDRESS,
+ name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.Nq.NAMED_QUERY_FIND_BY_EMAIL_ADDRESS,
query = "SELECT u "
+ " FROM ApplicationUser u "
+ " WHERE u.emailAddress = :emailAddress"),
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.NAMED_QUERY_FIND_BY_ATPATH,
+ name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.Nq.NAMED_QUERY_FIND_BY_ATPATH,
query = "SELECT u "
+ " FROM ApplicationUser u "
+ " WHERE u.atPath = :atPath"),
@NamedQuery(
- name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.NAMED_QUERY_FIND,
+ name = org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser.Nq.NAMED_QUERY_FIND,
query = "SELECT u "
+ " FROM ApplicationUser u "
+ " WHERE u.username LIKE :regex"
diff --git a/extensions/security/sessionlog/persistence-jdo/src/main/java/org/apache/isis/sessionlog/jdo/dom/SessionLogEntry.java b/extensions/security/sessionlog/persistence-jdo/src/main/java/org/apache/isis/sessionlog/jdo/dom/SessionLogEntry.java
index 0030d78472..b94397c6f6 100644
--- a/extensions/security/sessionlog/persistence-jdo/src/main/java/org/apache/isis/sessionlog/jdo/dom/SessionLogEntry.java
+++ b/extensions/security/sessionlog/persistence-jdo/src/main/java/org/apache/isis/sessionlog/jdo/dom/SessionLogEntry.java
@@ -142,20 +142,20 @@ public class SessionLogEntry implements HasUsername, Comparable<SessionLogEntry>
public static final String TABLE = "SessionLogEntry";
@UtilityClass
- static class Nq {
- static final String FIND_BY_SESSION_ID = "findBySessionId";
- static final String FIND_BY_USER_AND_TIMESTAMP_BETWEEN = "findByUserAndTimestampBetween";
- static final String FIND_BY_USER_AND_TIMESTAMP_AFTER = "findByUserAndTimestampAfter";
- static final String FIND_BY_USER_AND_TIMESTAMP_BEFORE = "findByUserAndTimestampBefore";
- static final String FIND_BY_USER = "findByUser";
- static final String FIND_BY_TIMESTAMP_BETWEEN = "findByTimestampBetween";
- static final String FIND_BY_TIMESTAMP_AFTER = "findByTimestampAfter";
- static final String FIND_BY_TIMESTAMP_BEFORE = "findByTimestampBefore";
- static final String FIND = "find";
- static final String FIND_BY_USER_AND_TIMESTAMP_STRICTLY_BEFORE = "findByUserAndTimestampStrictlyBefore";
- static final String FIND_BY_USER_AND_TIMESTAMP_STRICTLY_AFTER = "findByUserAndTimestampStrictlyAfter";
- static final String FIND_ACTIVE_SESSIONS = "findActiveSessions";
- static final String FIND_RECENT_BY_USER = "findRecentByUser";
+ public static class Nq {
+ public static final String FIND_BY_SESSION_ID = SessionLogEntry.LOGICAL_TYPE_NAME + ".findBySessionId";
+ public static final String FIND_BY_USER_AND_TIMESTAMP_BETWEEN = SessionLogEntry.LOGICAL_TYPE_NAME + ".findByUserAndTimestampBetween";
+ public static final String FIND_BY_USER_AND_TIMESTAMP_AFTER = SessionLogEntry.LOGICAL_TYPE_NAME + ".findByUserAndTimestampAfter";
+ public static final String FIND_BY_USER_AND_TIMESTAMP_BEFORE = SessionLogEntry.LOGICAL_TYPE_NAME + ".findByUserAndTimestampBefore";
+ public static final String FIND_BY_USER = SessionLogEntry.LOGICAL_TYPE_NAME + ".findByUser";
+ public static final String FIND_BY_TIMESTAMP_BETWEEN = SessionLogEntry.LOGICAL_TYPE_NAME + ".findByTimestampBetween";
+ public static final String FIND_BY_TIMESTAMP_AFTER = SessionLogEntry.LOGICAL_TYPE_NAME + ".findByTimestampAfter";
+ public static final String FIND_BY_TIMESTAMP_BEFORE = SessionLogEntry.LOGICAL_TYPE_NAME + ".findByTimestampBefore";
+ public static final String FIND = SessionLogEntry.LOGICAL_TYPE_NAME + ".find";
+ public static final String FIND_BY_USER_AND_TIMESTAMP_STRICTLY_BEFORE = SessionLogEntry.LOGICAL_TYPE_NAME + ".findByUserAndTimestampStrictlyBefore";
+ public static final String FIND_BY_USER_AND_TIMESTAMP_STRICTLY_AFTER = SessionLogEntry.LOGICAL_TYPE_NAME + ".findByUserAndTimestampStrictlyAfter";
+ public static final String FIND_ACTIVE_SESSIONS = SessionLogEntry.LOGICAL_TYPE_NAME + ".findActiveSessions";
+ public static final String FIND_RECENT_BY_USER = SessionLogEntry.LOGICAL_TYPE_NAME + ".findRecentByUser";
}
public static abstract class PropertyDomainEvent<T> extends IsisModuleExtSessionLogApplib.PropertyDomainEvent<SessionLogEntry, T> { }