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/01/26 21:13:02 UTC
[isis] branch master updated: ISIS-2431: SecMan use logical names
when seeding initial permissions
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 496a768 ISIS-2431: SecMan use logical names when seeding initial permissions
496a768 is described below
commit 496a7689e5698e33c0b429a2ca71e425e12261d3
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Jan 26 22:12:47 2021 +0100
ISIS-2431: SecMan use logical names when seeding initial permissions
---
.../appfeat/ApplicationFeatureRepository.java | 2 --
.../appfeat/ApplicationFeatureRepositoryDefault.java | 11 -----------
.../extensions/secman/api/SecmanConfiguration.java | 2 +-
.../AbstractRoleAndPermissionsFixtureScript.java | 20 ++++++++++++++++----
4 files changed, 17 insertions(+), 18 deletions(-)
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/appfeat/ApplicationFeatureRepository.java b/api/applib/src/main/java/org/apache/isis/applib/services/appfeat/ApplicationFeatureRepository.java
index d0b17b1..edd1d5b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/appfeat/ApplicationFeatureRepository.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/appfeat/ApplicationFeatureRepository.java
@@ -25,8 +25,6 @@ import java.util.SortedSet;
* @since 1.x {@index}
*/
public interface ApplicationFeatureRepository {
-
- SortedSet<String> namespaces();
SortedSet<String> packageNames();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
index fe6c5fc..0c7baef 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
@@ -71,7 +71,6 @@ public class ApplicationFeatureRepositoryDefault implements ApplicationFeatureRe
private final SortedMap<ApplicationFeatureId, ApplicationFeature> propertyFeatures = _Maps.newTreeMap();
private final SortedMap<ApplicationFeatureId, ApplicationFeature> collectionFeatures = _Maps.newTreeMap();
private final SortedMap<ApplicationFeatureId, ApplicationFeature> actionFeatures = _Maps.newTreeMap();
- private final SortedSet<String> namespaces = _Sets.newTreeSet();
private final IsisConfiguration configuration;
private final SpecificationLoader specificationLoader;
@@ -177,8 +176,6 @@ public class ApplicationFeatureRepositoryDefault implements ApplicationFeatureRe
// add all of its parent packages
final ApplicationFeatureId classParentPackageId = addClassParent(classFeatureId);
addParents(classParentPackageId);
-
- namespaces.add(spec.getSpecId().getNamespace());
}
private static Class<?> correspondingClassFor(final ObjectSpecification objectSpec) {
@@ -475,14 +472,6 @@ public class ApplicationFeatureRepositoryDefault implements ApplicationFeatureRe
return actionFeatures.values();
}
- // -- namespaces
-
- @Override
- public SortedSet<String> namespaces() {
- initializeIfRequired();
- return Collections.unmodifiableSortedSet(namespaces);
- }
-
// -- packageNames, packageNamesContainingClasses, classNamesContainedIn, memberNamesOf
@Override
diff --git a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/SecmanConfiguration.java b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/SecmanConfiguration.java
index 59cb7aa..c66af4a 100644
--- a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/SecmanConfiguration.java
+++ b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/SecmanConfiguration.java
@@ -55,7 +55,7 @@ public class SecmanConfiguration {
*/
@Getter @Builder.Default @NonNull
final String[] adminStickyNamespacePermissions = new String[]{
- "secman"
+ "isis.ext.secman"
};
@Getter @Singular
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/AbstractRoleAndPermissionsFixtureScript.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/AbstractRoleAndPermissionsFixtureScript.java
index f84485c..f95f536 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/AbstractRoleAndPermissionsFixtureScript.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/AbstractRoleAndPermissionsFixtureScript.java
@@ -20,12 +20,16 @@ package org.apache.isis.extensions.secman.jdo.seed.scripts;
import java.util.Arrays;
import java.util.List;
+import java.util.Optional;
import java.util.stream.Collectors;
import javax.inject.Inject;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.core.metamodel.services.appfeat.ApplicationFeatureType;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
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.role.ApplicationRole;
@@ -39,6 +43,7 @@ public abstract class AbstractRoleAndPermissionsFixtureScript extends FixtureScr
@Inject private ApplicationRoleRepository applicationRoleRepository;
@Inject private ApplicationPermissionRepository applicationPermissionRepository;
+ @Inject private SpecificationLoader specificationLoader;
private final String roleName;
private final String roleDescription;
@@ -125,17 +130,24 @@ public abstract class AbstractRoleAndPermissionsFixtureScript extends FixtureScr
featureType, featureFqn);
}
}
+
+ private String asFeatureFqns(Class<?> cls) {
+ return Optional.ofNullable(specificationLoader.loadSpecification(cls))
+ .map(ObjectSpecification::getSpecId)
+ .map(ObjectSpecId::asString)
+ .orElseGet(()->cls.getName());
+ }
- private static List<String> asFeatureFqns(Class<?>[] classes) {
+ private List<String> asFeatureFqns(Class<?>[] classes) {
return _NullSafe.stream(classes)
- .map(Class::getName)
+ .map(this::asFeatureFqns)
.collect(Collectors.toList());
}
- private static Iterable<String> asFeatureFqns(final Class<?> cls, final String[] members) {
+ private Iterable<String> asFeatureFqns(final Class<?> cls, final String[] members) {
return _NullSafe.stream(members)
.map(memberName->{
- val buf = new StringBuilder(cls.getName());
+ val buf = new StringBuilder(asFeatureFqns(cls));
if(!memberName.startsWith("#")) {
buf.append("#");
}