X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=security%2Fruntime%2Forg.argeo.security.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fnature%2FSimpleUserNature.java;h=a10ac4dbde9dcc002d95721c8d185ea3828fd5f1;hb=78aeeca8095f9f1f0829cf09930708d6b4be636c;hp=408f2adb51ed79be537bdfaa77cda1ad39f0b19a;hpb=490d9907457c43acfa965e7979ce5974bc1ba6ca;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 408f2adb5..a10ac4dbd 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,9 +16,18 @@ package org.argeo.security.nature; +import org.argeo.ArgeoException; +import org.argeo.security.AbstractUserNature; +import org.argeo.security.ArgeoUser; import org.argeo.security.UserNature; -public class SimpleUserNature extends UserNature { +public class SimpleUserNature extends AbstractUserNature { + /** + * No PAI, for internal use within the Argeo Security framework. Will + * probably be removed. + */ + public final static String TYPE = "simpleUser"; + private static final long serialVersionUID = 1L; private String email; private String firstName; @@ -57,4 +66,36 @@ public class SimpleUserNature extends UserNature { 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; + } + }