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=e400e99d92f879de8fcfed6f289e96b9cfe1482b;hb=a8233e9378854fc9ed1f4186095d06866cbea9f8;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..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,9 +16,19 @@ 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 { +@Deprecated +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 +67,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; + } + }