]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/runtime/org.argeo.security.mvc/src/main/java/org/argeo/security/ldap/SimpleUserNatureMapper.java
First object model
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.mvc / src / main / java / org / argeo / security / ldap / SimpleUserNatureMapper.java
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 (file)
index 0000000..146ef4f
--- /dev/null
@@ -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;
+       }
+
+}