}
@Override
public void validate(final Form< ? > form)
{
final LdapUserValues values = new LdapUserValues();
values.setUidNumber(uidNumberField.getConvertedInput());
values.setGidNumber(gidNumberField.getConvertedInput());
values.setHomeDirectory(homeDirectoryField.getConvertedInput());
values.setLoginShell(loginShellField.getConvertedInput());
if (StringUtils.isBlank(data.getLdapValues()) == true && values.isPosixValuesEmpty() == true) {
// Nothing to validate: all fields are zero and posix account wasn't set for this user before.
return;
}
if (values.getUidNumber() == null) {
uidNumberField.error(getLocalizedMessage(WebConstants.I18N_KEY_FIELD_REQUIRED, getString("ldap.uidNumber")));
} else {
if (LdapPosixAccountsUtils.isGivenNumberFree(data, values.getUidNumber()) == false) {
uidNumberField.error(getLocalizedMessage("ldap.uidNumber.alreadyInUse", LdapPosixAccountsUtils.getNextFreeUidNumber()));
}
}
if (values.getGidNumber() == null) {
gidNumberField.error(getLocalizedMessage(WebConstants.I18N_KEY_FIELD_REQUIRED, getString("ldap.gidNumber")));
}
if (StringUtils.isBlank(values.getHomeDirectory()) == true) {
homeDirectoryField.error(getLocalizedMessage(WebConstants.I18N_KEY_FIELD_REQUIRED, getString("ldap.homeDirectory")));
}
if (StringUtils.isBlank(values.getLoginShell()) == true) {
loginShellField.error(getLocalizedMessage(WebConstants.I18N_KEY_FIELD_REQUIRED, getString("ldap.loginShell")));
}
}
});
}
if (sambaConfigured == true) {
add(new IFormValidator() {
@Override
public FormComponent< ? >[] getDependentFormComponents()
{
return dependentLdapSambaFormComponentsList.toArray(new FormComponent[0]);
}
@Override
public void validate(final Form< ? > form)
{
final LdapUserValues values = new LdapUserValues();
values.setSambaSIDNumber(sambaSIDNumberField.getConvertedInput());
values.setSambaPrimaryGroupSIDNumber(sambaPrimaryGroupSIDNumberField.getConvertedInput());
if (StringUtils.isBlank(data.getLdapValues()) == true && values.isSambaValuesEmpty() == true) {
// Nothing to validate: all fields are zero and posix account wasn't set for this user before.
return;
}
if (values.getSambaSIDNumber() == null) {
sambaSIDNumberField.error(getLocalizedMessage(WebConstants.I18N_KEY_FIELD_REQUIRED, getString("ldap.sambaSID")));
} else {
if (LdapSambaAccountsUtils.isGivenNumberFree(data, values.getSambaSIDNumber()) == false) {
sambaSIDNumberField.error(getLocalizedMessage("ldap.sambaSID.alreadyInUse",
LdapSambaAccountsUtils.getNextFreeSambaSIDNumber()));
}
}
if (values.getSambaPrimaryGroupSIDNumber() != null && values.getSambaSIDNumber() == null) {
sambaSIDNumberField.error(getLocalizedMessage(WebConstants.I18N_KEY_FIELD_REQUIRED, getString("ldap.sambaSID")));
}
}
});
}