138 List<CustomScript> oldCustomScripts =
customScriptService.findCustomScripts(Arrays.asList(
this.applianceService.getCustomScriptTypes()),
"dn",
"inum");
140 List<String> updatedInums =
new ArrayList<String>();
142 for (Entry<CustomScriptType, List<CustomScript>> customScriptsByType : this.
customScriptsByTypes.entrySet()) {
143 List<CustomScript> customScripts = customScriptsByType.getValue();
145 for (CustomScript customScript : customScripts) {
146 String configId = customScript.getName();
147 if (StringHelper.equalsIgnoreCase(configId, OxConstants.SCRIPT_TYPE_INTERNAL_RESERVED_NAME)) {
148 facesMessages.add(FacesMessage.SEVERITY_ERROR,
"'%s' is reserved script name", configId);
149 return OxTrustConstants.RESULT_FAILURE;
152 boolean nameValidation =
NAME_PATTERN.matcher(customScript.getName()).matches();
153 if (!nameValidation) {
154 facesMessages.add(FacesMessage.SEVERITY_ERROR,
"'%s' is invalid script name. Only alphabetic, numeric and underscore characters are allowed in Script Name", configId);
155 return OxTrustConstants.RESULT_FAILURE;
158 customScript.setRevision(customScript.getRevision() + 1);
160 boolean update =
true;
161 String dn = customScript.getDn();
162 String customScriptId = customScript.getInum();
163 if (StringHelper.isEmpty(dn)) {
165 customScriptId = basedInum +
"!" + INumGenerator.generate(2);
168 customScript.setDn(dn);
169 customScript.setInum(customScriptId);
173 customScript.setDn(dn);
174 customScript.setInum(customScriptId);
176 if (ScriptLocationType.LDAP == customScript.getLocationType()) {
177 customScript.removeModuleProperty(CustomScript.LOCATION_PATH_MODEL_PROPERTY);
180 if ((customScript.getConfigurationProperties() != null) && (customScript.getConfigurationProperties().size() == 0)) {
181 customScript.setConfigurationProperties(null);
184 if ((customScript.getConfigurationProperties() != null) && (customScript.getModuleProperties().size() == 0)) {
185 customScript.setModuleProperties(null);
188 updatedInums.add(customScriptId);
199 for (CustomScript oldCustomScript : oldCustomScripts) {
200 if (!updatedInums.contains(oldCustomScript.getInum())) {
204 }
catch (BasePersistenceException ex) {
205 log.error(
"Failed to update custom scripts", ex);
206 facesMessages.add(FacesMessage.SEVERITY_ERROR,
"Failed to update custom script configuration");
208 return OxTrustConstants.RESULT_FAILURE;
211 facesMessages.add(FacesMessage.SEVERITY_INFO,
"Custom script configuration updated successfully");
213 return OxTrustConstants.RESULT_SUCCESS;
String getOrganizationInum()
Definition: OrganizationService.java:202
Logger log
Definition: ManageCustomScriptAction.java:64
static final Pattern NAME_PATTERN
Definition: ManageCustomScriptAction.java:61
AbstractCustomScriptService customScriptService
Definition: ManageCustomScriptAction.java:79
FacesMessages facesMessages
Definition: ManageCustomScriptAction.java:67
Map< CustomScriptType, List< CustomScript > > customScriptsByTypes
Definition: ManageCustomScriptAction.java:84
OrganizationService organizationService
Definition: ManageCustomScriptAction.java:73