X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=security%2Fruntime%2Forg.argeo.security.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fnature%2FSimpleUserNature.java;h=e400e99d92f879de8fcfed6f289e96b9cfe1482b;hb=a8233e9378854fc9ed1f4186095d06866cbea9f8;hp=7d7723e33f599df7c320e42b80a3e50750e8814c;hpb=dc6f911c680574a9b57c34dcf515ac8f9aa808da;p=lgpl%2Fargeo-commons.git diff --git a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/nature/SimpleUserNature.java b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/nature/SimpleUserNature.java index 7d7723e33..e400e99d9 100644 --- a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/nature/SimpleUserNature.java +++ b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/nature/SimpleUserNature.java @@ -16,8 +16,12 @@ package org.argeo.security.nature; +import org.argeo.ArgeoException; import org.argeo.security.AbstractUserNature; +import org.argeo.security.ArgeoUser; +import org.argeo.security.UserNature; +@Deprecated public class SimpleUserNature extends AbstractUserNature { /** * No PAI, for internal use within the Argeo Security framework. Will @@ -63,4 +67,36 @@ public class SimpleUserNature extends AbstractUserNature { this.description = description; } + /* + * SECURITY UTILITIES + */ + /** + * Finds a user nature extending {@link SimpleUserNature} in the provided + * user. + * + * @param user + * the user to scan + * @param simpleNatureType + * the type under which a {@link SimpleUserNature} is registered, + * useful if there are many. can be null. + * @return the {@link SimpleUserNature} + * @throws ArgeoException + * if no simple user nature was found + */ + public final static SimpleUserNature findSimpleUserNature(ArgeoUser user, + String simpleNatureType) { + SimpleUserNature simpleNature = null; + if (simpleNatureType != null) + simpleNature = (SimpleUserNature) user.getUserNatures().get( + simpleNatureType); + else + for (UserNature userNature : user.getUserNatures().values()) + if (userNature instanceof SimpleUserNature) + simpleNature = (SimpleUserNature) userNature; + + if (simpleNature == null) + throw new ArgeoException("No simple user nature in user " + user); + return simpleNature; + } + }