edu.internet2.middleware.grouper.app.duo.DuoProvisioningStartWith Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of grouper Show documentation
Show all versions of grouper Show documentation
Internet2 Groups Management Toolkit
package edu.internet2.middleware.grouper.app.duo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import edu.internet2.middleware.grouper.app.config.GrouperConfigurationModuleAttribute;
import edu.internet2.middleware.grouper.app.provisioning.ProvisionerStartWithBase;
import edu.internet2.middleware.grouper.app.provisioning.ProvisioningConfiguration;
import edu.internet2.middleware.grouper.cfg.text.GrouperTextContainer;
import edu.internet2.middleware.grouper.util.GrouperUtil;
import org.apache.commons.lang3.StringUtils;
public class DuoProvisioningStartWith extends ProvisionerStartWithBase {
@Override
public String getPropertyValueThatIdentifiesThisConfig() {
return "duoCommon";
}
@Override
public void populateProvisionerConfigurationValuesFromStartWith(
Map startWithSuffixToValue,
Map provisionerSuffixToValue) {
provisionerSuffixToValue.put("duoExternalSystemConfigId", startWithSuffixToValue.get("duoExternalSystemConfigId"));
if (StringUtils.equals(startWithSuffixToValue.get("userAttributesType"), "entityResolver") || StringUtils.equals(startWithSuffixToValue.get("userAttributesType"), "subjectSourceAndEntityResolver")) {
provisionerSuffixToValue.put("entityResolver.entityAttributesNotInSubjectSource", "true");
}
if (StringUtils.equals(startWithSuffixToValue.get("userAttributesType"), "subjectSource")
|| StringUtils.equals(startWithSuffixToValue.get("userAttributesType"), "subjectSourceAndEntityResolver")) {
provisionerSuffixToValue.put("operateOnGrouperEntities", "true");
String attributesCommaSeparated = startWithSuffixToValue.get("subjectSourceEntityResolverAttributes");
if (StringUtils.isNotBlank(attributesCommaSeparated)) {
provisionerSuffixToValue.put("entityAttributeValueCacheHas", "true");
String[] attributes = GrouperUtil.splitTrim(attributesCommaSeparated, ",");
// by this time the validation is already done that there are no more than 2 attributes
for (int i=0; i screenRedraw(Map suffixToValue,
Set suffixesUserJustChanged) {
Map result = new HashMap<>();
for (String suffixUserJustChanged: suffixesUserJustChanged) {
if (StringUtils.equals(suffixUserJustChanged, "duoPattern")) {
String valueUserEnteredOnScreen = suffixToValue.get(suffixUserJustChanged);
if (StringUtils.equals(valueUserEnteredOnScreen, "manageGroupsManageEntities")) {
result.put("manageGroups", "true");
result.put("manageEntities", "true");
result.put("selectAllGroups", "true");
} else if (StringUtils.equals(valueUserEnteredOnScreen, "manageGroupsReadonlyEntities")) {
result.put("manageGroups", "true");
result.put("manageEntities", "false");
result.put("selectAllGroups", "true");
} else if (StringUtils.equals(valueUserEnteredOnScreen, "manageEntities")) {
result.put("manageGroups", "false");
result.put("manageEntities", "true");
result.put("selectAllGroups", "false");
}
else if (StringUtils.equals(valueUserEnteredOnScreen, "other")) {
result.clear();
}
}
}
return result;
}
@Override
public void validatePreSave(boolean isInsert, List errorsToDisplay, Map validationErrorsToDisplay) {
super.validatePreSave(isInsert, errorsToDisplay, validationErrorsToDisplay);
if (errorsToDisplay.size() > 0 || validationErrorsToDisplay.size() > 0) {
return;
}
GrouperConfigurationModuleAttribute subjectSourceEntityResoverModuleAttribute = this.retrieveAttributes().get("subjectSourceEntityResolverAttributes");
if (subjectSourceEntityResoverModuleAttribute != null && StringUtils.isNotBlank(subjectSourceEntityResoverModuleAttribute.getValue())) {
String commaSeparatedResolverAttributes = subjectSourceEntityResoverModuleAttribute.getValue();
List list = GrouperUtil.splitTrimToList(commaSeparatedResolverAttributes, ",");
if (list.size() > 2) {
String errorMessage = GrouperTextContainer.textOrNull("subjectSourceEntityResolverAttributesTooManyAttributes");
validationErrorsToDisplay.put(subjectSourceEntityResoverModuleAttribute.getHtmlForElementIdHandle(), errorMessage);
}
}
}
@Override
public Class extends ProvisioningConfiguration> getProvisioningConfiguration() {
return DuoProvisionerConfiguration.class;
}
}