X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=security%2Fruntime%2Forg.argeo.security.mvc%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fldap%2FSimpleUserNatureMapper.java;fp=security%2Fruntime%2Forg.argeo.security.mvc%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fldap%2FSimpleUserNatureMapper.java;h=146ef4f952550981e7df7e82694c228a6293f5d6;hb=d295c1877a09dfd7bd0b80eaf94596125bc706c9;hp=0000000000000000000000000000000000000000;hpb=b79a562744f255ff239fe7800c9dabbb64e8f3c8;p=lgpl%2Fargeo-commons.git diff --git a/security/runtime/org.argeo.security.mvc/src/main/java/org/argeo/security/ldap/SimpleUserNatureMapper.java b/security/runtime/org.argeo.security.mvc/src/main/java/org/argeo/security/ldap/SimpleUserNatureMapper.java new file mode 100644 index 000000000..146ef4f95 --- /dev/null +++ b/security/runtime/org.argeo.security.mvc/src/main/java/org/argeo/security/ldap/SimpleUserNatureMapper.java @@ -0,0 +1,45 @@ +package org.argeo.security.ldap; + +import org.argeo.security.UserNature; +import org.argeo.security.core.SimpleUserNature; +import org.springframework.ldap.core.DirContextAdapter; +import org.springframework.ldap.core.DirContextOperations; + +public class SimpleUserNatureMapper implements UserNatureMapper { + + public UserNature mapUserInfoFromContext(DirContextOperations ctx) { + SimpleUserNature basicUserInfo = new SimpleUserNature(); + basicUserInfo.setLastName(ctx.getStringAttribute("sn")); + basicUserInfo.setFirstName(ctx.getStringAttribute("givenName")); + basicUserInfo.setEmail(ctx.getStringAttribute("mail")); + basicUserInfo.setDescription(ctx.getStringAttribute("description")); + basicUserInfo.setMobile(ctx.getStringAttribute("mobile")); + basicUserInfo.setTelephoneNumber(ctx + .getStringAttribute("telephoneNumber")); + return basicUserInfo; + } + + public void mapUserInfoToContext(UserNature userInfoArg, DirContextAdapter ctx) { + SimpleUserNature userInfo = (SimpleUserNature) userInfoArg; + ctx.setAttributeValue("cn", userInfo.getFullName()); + ctx.setAttributeValue("sn", userInfo.getLastName()); + ctx.setAttributeValue("givenName", userInfo.getFirstName()); + ctx.setAttributeValue("mail", userInfo.getEmail()); + if (userInfo.getDescription() != null) { + ctx.setAttributeValue("description", userInfo.getDescription()); + } + if (userInfo.getMobile() == null || !userInfo.getMobile().equals("")) { + ctx.setAttributeValue("mobile", userInfo.getMobile()); + } + if (userInfo.getTelephoneNumber() == null + || !userInfo.getTelephoneNumber().equals("")) { + ctx.setAttributeValue("telephoneNumber", userInfo + .getTelephoneNumber()); + } + } + + public Boolean supports(UserNature userInfo) { + return userInfo instanceof SimpleUserNature; + } + +}