/** * Sets next free SambaSID or, if free and given the same id as the posix UID. * * @param ldapUserValues * @param user */ public void setDefaultValues(final LdapUserValues ldapUserValues, final PFUserDO user) { final LdapConfig ldapConfig = ldapService.getLdapConfig(); LdapSambaAccountsConfig ldapSambaAccountsConfig = ldapConfig != null ? ldapConfig.getSambaAccountsConfig() : null; if (ldapSambaAccountsConfig == null) { ldapSambaAccountsConfig = new LdapSambaAccountsConfig(); } if (ldapUserValues.getUidNumber() != null && isGivenNumberFree(user, ldapUserValues.getUidNumber()) == true) { ldapUserValues.setSambaSIDNumber(ldapUserValues.getUidNumber()); } else { ldapUserValues.setSambaSIDNumber(getNextFreeSambaSIDNumber()); } if (ldapSambaAccountsConfig.getDefaultSambaPrimaryGroupSID() != null) { ldapUserValues.setSambaPrimaryGroupSIDNumber(ldapSambaAccountsConfig.getDefaultSambaPrimaryGroupSID()); } }
@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"))); } } });