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 2021/04/20 15:13:42 UTC
[isis] branch master updated: ISIS-2562: SecMan: provide all-user
table content via mixin;
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 80ba24d ISIS-2562: SecMan: provide all-user table content via mixin;
80ba24d is described below
commit 80ba24d2f1d76ce8618f2c040dd2aea6c56a06ab
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Apr 20 17:13:15 2021 +0200
ISIS-2562: SecMan: provide all-user table content via mixin;
allows the framework to recognize the concrete entity types and hence
properly render the tables in the UI
---
.../model/dom/user/ApplicationUserManager.java | 18 ++++------
...r.java => ApplicationUserManager_allUsers.java} | 37 +++++++++----------
.../dom/user/ApplicationUserManager_allUsers.java | 41 ++++++++++++++++++++++
.../ApplicationUserManager_newDelegateUser.java | 6 ++--
.../user/ApplicationUserManager_newLocalUser.java | 7 ++--
.../dom/user/ApplicationUserManager_allUsers.java | 41 ++++++++++++++++++++++
.../ApplicationUserManager_newDelegateUser.java | 6 ++--
.../user/ApplicationUserManager_newLocalUser.java | 6 ++--
8 files changed, 121 insertions(+), 41 deletions(-)
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserManager.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserManager.java
index 7bda584..b613f3b 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserManager.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserManager.java
@@ -18,13 +18,8 @@
*/
package org.apache.isis.extensions.secman.model.dom.user;
-import javax.inject.Inject;
-
-import org.apache.isis.applib.annotation.Collection;
import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.extensions.secman.api.user.ApplicationUser;
-import org.apache.isis.extensions.secman.api.user.ApplicationUserRepository;
@DomainObject(
nature = Nature.VIEW_MODEL,
@@ -32,15 +27,16 @@ import org.apache.isis.extensions.secman.api.user.ApplicationUserRepository;
)
public class ApplicationUserManager {
- @Inject private ApplicationUserRepository<? extends ApplicationUser> applicationUserRepository;
+// @Inject private ApplicationUserRepository<? extends ApplicationUser> applicationUserRepository;
public String title() {
return "ApplicationUserManager";
}
-
- @Collection
- public java.util.Collection<? extends ApplicationUser> getAllUsers() {
- return applicationUserRepository.allUsers();
- }
+
+//XXX provided via mixins, that is one specific to JPA the other specific to JDO
+// @Collection
+// public java.util.Collection<? extends ApplicationUser> getAllUsers() {
+// return applicationUserRepository.allUsers();
+// }
}
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserManager.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserManager_allUsers.java
similarity index 59%
copy from extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserManager.java
copy to extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserManager_allUsers.java
index 7bda584..671cbda 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserManager.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserManager_allUsers.java
@@ -18,29 +18,30 @@
*/
package org.apache.isis.extensions.secman.model.dom.user;
+import java.util.Collection;
+
import javax.inject.Inject;
-import org.apache.isis.applib.annotation.Collection;
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Nature;
import org.apache.isis.extensions.secman.api.user.ApplicationUser;
import org.apache.isis.extensions.secman.api.user.ApplicationUserRepository;
-@DomainObject(
- nature = Nature.VIEW_MODEL,
- objectType = "isis.ext.secman.ApplicationUserManager"
- )
-public class ApplicationUserManager {
-
- @Inject private ApplicationUserRepository<? extends ApplicationUser> applicationUserRepository;
-
- public String title() {
- return "ApplicationUserManager";
- }
+/**
+ * @apiNote This mixin requires concrete implementations associated with JPA and JDO,
+ * since action's type parameters are inspected for their compile time types
+ * and the ApplicationRole here is just an interface that the framework has not much
+ * meta-model information to derive UI behavior from.
+ *
+ * @implNote due to current limitations, both the main and its supporting methods have to be
+ * overridden with the concrete subclasses.
+ *
+ */
+public abstract class ApplicationUserManager_allUsers<U extends ApplicationUser> {
- @Collection
- public java.util.Collection<? extends ApplicationUser> getAllUsers() {
- return applicationUserRepository.allUsers();
- }
+ @Inject private ApplicationUserRepository<U> applicationUserRepository;
+ protected Collection<U> doColl() {
+ return applicationUserRepository.allUsers();
+ }
+
+
}
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserManager_allUsers.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserManager_allUsers.java
new file mode 100644
index 0000000..9d5be86
--- /dev/null
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserManager_allUsers.java
@@ -0,0 +1,41 @@
+/*
+ * 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.user;
+
+import java.util.Collection;
+
+import org.apache.isis.applib.annotation.MemberSupport;
+import org.apache.isis.extensions.secman.model.dom.user.ApplicationUserManager;
+
+import lombok.RequiredArgsConstructor;
+
+@org.apache.isis.applib.annotation.Collection
+@RequiredArgsConstructor
+public class ApplicationUserManager_allUsers
+extends org.apache.isis.extensions.secman.model.dom.user.ApplicationUserManager_allUsers<ApplicationUser>{
+
+ @SuppressWarnings("unused")
+ private final ApplicationUserManager target;
+
+ @MemberSupport
+ public Collection<ApplicationUser> coll() {
+ return super.doColl();
+ }
+
+}
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserManager_newDelegateUser.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserManager_newDelegateUser.java
index df09a02..09cd8f1 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserManager_newDelegateUser.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserManager_newDelegateUser.java
@@ -37,11 +37,10 @@ import lombok.RequiredArgsConstructor;
public class ApplicationUserManager_newDelegateUser
extends org.apache.isis.extensions.secman.model.dom.user.ApplicationUserManager_newDelegateUser<ApplicationRole>{
- @SuppressWarnings("unused")
private final ApplicationUserManager target;
@MemberSupport
- public ApplicationUser act(
+ public ApplicationUserManager act(
@Parameter(maxLength = ApplicationUser.MAX_LENGTH_USERNAME)
@ParameterLayout(named = "Name")
@@ -57,7 +56,8 @@ extends org.apache.isis.extensions.secman.model.dom.user.ApplicationUserManager_
) {
- return super.doAct(username, initialRole, enabled);
+ super.doAct(username, initialRole, enabled);
+ return target;
}
@MemberSupport
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserManager_newLocalUser.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserManager_newLocalUser.java
index 63be89b..3aa1286 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserManager_newLocalUser.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserManager_newLocalUser.java
@@ -38,11 +38,10 @@ import lombok.RequiredArgsConstructor;
public class ApplicationUserManager_newLocalUser
extends org.apache.isis.extensions.secman.model.dom.user.ApplicationUserManager_newLocalUser<ApplicationRole> {
- @SuppressWarnings("unused")
private final ApplicationUserManager target;
@MemberSupport
- public ApplicationUser act(
+ public ApplicationUserManager act(
@Parameter(maxLength = ApplicationUser.MAX_LENGTH_USERNAME)
@ParameterLayout(named = "Name")
final String username,
@@ -66,7 +65,9 @@ extends org.apache.isis.extensions.secman.model.dom.user.ApplicationUserManager_
@Parameter(optionality = Optionality.OPTIONAL)
@ParameterLayout(named = "Email Address")
final String emailAddress) {
- return super.doAct(username, password, passwordRepeat, initialRole, enabled, emailAddress);
+
+ super.doAct(username, password, passwordRepeat, initialRole, enabled, emailAddress);
+ return target;
}
@MemberSupport
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserManager_allUsers.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserManager_allUsers.java
new file mode 100644
index 0000000..6fc9b1e
--- /dev/null
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserManager_allUsers.java
@@ -0,0 +1,41 @@
+/*
+ * 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.jpa.dom.user;
+
+import java.util.Collection;
+
+import org.apache.isis.applib.annotation.MemberSupport;
+import org.apache.isis.extensions.secman.model.dom.user.ApplicationUserManager;
+
+import lombok.RequiredArgsConstructor;
+
+@org.apache.isis.applib.annotation.Collection
+@RequiredArgsConstructor
+public class ApplicationUserManager_allUsers
+extends org.apache.isis.extensions.secman.model.dom.user.ApplicationUserManager_allUsers<ApplicationUser>{
+
+ @SuppressWarnings("unused")
+ private final ApplicationUserManager target;
+
+ @MemberSupport
+ public Collection<ApplicationUser> coll() {
+ return super.doColl();
+ }
+
+}
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserManager_newDelegateUser.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserManager_newDelegateUser.java
index eb12063..c5039d7 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserManager_newDelegateUser.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserManager_newDelegateUser.java
@@ -37,11 +37,10 @@ import lombok.RequiredArgsConstructor;
public class ApplicationUserManager_newDelegateUser
extends org.apache.isis.extensions.secman.model.dom.user.ApplicationUserManager_newDelegateUser<ApplicationRole>{
- @SuppressWarnings("unused")
private final ApplicationUserManager target;
@MemberSupport
- public ApplicationUser act(
+ public ApplicationUserManager act(
@Parameter(maxLength = ApplicationUser.MAX_LENGTH_USERNAME)
@ParameterLayout(named = "Name")
@@ -57,7 +56,8 @@ extends org.apache.isis.extensions.secman.model.dom.user.ApplicationUserManager_
) {
- return super.doAct(username, initialRole, enabled);
+ super.doAct(username, initialRole, enabled);
+ return target;
}
@MemberSupport
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserManager_newLocalUser.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserManager_newLocalUser.java
index ac0173b..53b8bb0 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserManager_newLocalUser.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserManager_newLocalUser.java
@@ -38,11 +38,10 @@ import lombok.RequiredArgsConstructor;
public class ApplicationUserManager_newLocalUser
extends org.apache.isis.extensions.secman.model.dom.user.ApplicationUserManager_newLocalUser<ApplicationRole> {
- @SuppressWarnings("unused")
private final ApplicationUserManager target;
@MemberSupport
- public ApplicationUser act(
+ public ApplicationUserManager act(
@Parameter(maxLength = ApplicationUser.MAX_LENGTH_USERNAME)
@ParameterLayout(named = "Name")
final String username,
@@ -66,7 +65,8 @@ extends org.apache.isis.extensions.secman.model.dom.user.ApplicationUserManager_
@Parameter(optionality = Optionality.OPTIONAL)
@ParameterLayout(named = "Email Address")
final String emailAddress) {
- return super.doAct(username, password, passwordRepeat, initialRole, enabled, emailAddress);
+ super.doAct(username, password, passwordRepeat, initialRole, enabled, emailAddress);
+ return target;
}
@MemberSupport