diff --git a/src/main/java/org/codelibs/fess/app/web/admin/user/CreateForm.java b/src/main/java/org/codelibs/fess/app/web/admin/user/CreateForm.java index 87176ca8c..985e71a2e 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/user/CreateForm.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/user/CreateForm.java @@ -19,6 +19,7 @@ import java.io.Serializable; import javax.validation.constraints.Size; +import org.hibernate.validator.constraints.Email; import org.lastaflute.web.validation.Required; import org.lastaflute.web.validation.theme.conversion.ValidateTypeFailure; @@ -50,6 +51,10 @@ public class CreateForm implements Serializable { @Size(max = 1000) public String givenName; + @Email + @Size(max = 1000) + public String mail; + public String[] roles; public String[] groups; diff --git a/src/main/java/org/codelibs/fess/ldap/LdapManager.java b/src/main/java/org/codelibs/fess/ldap/LdapManager.java index 010b56fa8..dca8c8f54 100644 --- a/src/main/java/org/codelibs/fess/ldap/LdapManager.java +++ b/src/main/java/org/codelibs/fess/ldap/LdapManager.java @@ -359,6 +359,11 @@ public class LdapManager { .ifPresent(s -> modifyReplaceEntry(modifyList, attrGivenName, s)) .orElse(() -> getAttributeValueList(result, attrGivenName).stream().forEach( v -> modifyDeleteEntry(modifyList, attrGivenName, v))); + final String attrMail = fessConfig.getLdapAttrMail(); + OptionalUtil.ofNullable(user.getMail()).filter(s -> StringUtil.isNotBlank(s)) + .ifPresent(s -> modifyReplaceEntry(modifyList, attrMail, s)) + .orElse(() -> getAttributeValueList(result, attrMail).stream().forEach(v -> modifyDeleteEntry(modifyList, attrMail, v))); + modify(userDN, modifyList, adminEnv); } @@ -370,6 +375,8 @@ public class LdapManager { .ifPresent(s -> entry.put(new BasicAttribute(fessConfig.getLdapAttrSurname(), s))); OptionalUtil.ofNullable(user.getGivenName()).filter(s -> StringUtil.isNotBlank(s)) .ifPresent(s -> entry.put(new BasicAttribute(fessConfig.getLdapAttrGivenName(), s))); + OptionalUtil.ofNullable(user.getMail()).filter(s -> StringUtil.isNotBlank(s)) + .ifPresent(s -> entry.put(new BasicAttribute(fessConfig.getLdapAttrMail(), s))); } public void delete(final User user) { diff --git a/src/main/resources/fess_label.properties b/src/main/resources/fess_label.properties index 05ff77ee1..5333c3759 100644 --- a/src/main/resources/fess_label.properties +++ b/src/main/resources/fess_label.properties @@ -684,3 +684,5 @@ labels.user_given_name=First Name labels.givenName=First Name labels.user_surname=Last Name labels.surame=Last Name +labels.user_mail=E-Mail +labels.mail=E-Mail diff --git a/src/main/resources/fess_label_en.properties b/src/main/resources/fess_label_en.properties index 05ff77ee1..5333c3759 100644 --- a/src/main/resources/fess_label_en.properties +++ b/src/main/resources/fess_label_en.properties @@ -684,3 +684,5 @@ labels.user_given_name=First Name labels.givenName=First Name labels.user_surname=Last Name labels.surame=Last Name +labels.user_mail=E-Mail +labels.mail=E-Mail diff --git a/src/main/resources/fess_label_ja.properties b/src/main/resources/fess_label_ja.properties index 4d082450b..464be7c58 100644 --- a/src/main/resources/fess_label_ja.properties +++ b/src/main/resources/fess_label_ja.properties @@ -684,3 +684,5 @@ labels.user_given_name=\u540d\u524d(\u540d) labels.givenName=\u540d\u524d(\u540d) labels.user_surname=\u540d\u524d(\u59d3) labels.surame=\u540d\u524d(\u59d3) +labels.user_mail=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9 +labels.mail=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9 diff --git a/src/main/webapp/WEB-INF/view/admin/user/admin_user_details.jsp b/src/main/webapp/WEB-INF/view/admin/user/admin_user_details.jsp index 499f8a02a..299624eae 100644 --- a/src/main/webapp/WEB-INF/view/admin/user/admin_user_details.jsp +++ b/src/main/webapp/WEB-INF/view/admin/user/admin_user_details.jsp @@ -58,6 +58,10 @@ ${f:h(givenName)} + + + ${f:h(mail)} + +
+ +
+ + +
+