Search in sources :

Example 6 with CustomScriptType

use of org.xdi.model.custom.script.CustomScriptType in project oxCore by GluuFederation.

the class AbstractCustomScriptService method findCustomScripts.

public List<CustomScript> findCustomScripts(List<CustomScriptType> customScriptTypes, String... returnAttributes) {
    String baseDn = baseDn();
    if ((customScriptTypes == null) || (customScriptTypes.size() == 0)) {
        return findAllCustomScripts(returnAttributes);
    }
    List<Filter> customScriptTypeFilters = new ArrayList<Filter>();
    for (CustomScriptType customScriptType : customScriptTypes) {
        Filter customScriptTypeFilter = Filter.createEqualityFilter("oxScriptType", customScriptType.getValue());
        customScriptTypeFilters.add(customScriptTypeFilter);
    }
    Filter filter = Filter.createORFilter(customScriptTypeFilters);
    List<CustomScript> result = ldapEntryManager.findEntries(baseDn, CustomScript.class, returnAttributes, filter);
    return result;
}
Also used : CustomScript(org.xdi.model.custom.script.model.CustomScript) Filter(com.unboundid.ldap.sdk.Filter) CustomScriptType(org.xdi.model.custom.script.CustomScriptType) ArrayList(java.util.ArrayList)

Example 7 with CustomScriptType

use of org.xdi.model.custom.script.CustomScriptType in project oxTrust by GluuFederation.

the class ManageCustomScriptAction method save.

public String save() {
    try {
        List<CustomScript> oldCustomScripts = customScriptService.findCustomScripts(Arrays.asList(this.applianceService.getCustomScriptTypes()), "dn", "inum");
        List<String> updatedInums = new ArrayList<String>();
        for (Entry<CustomScriptType, List<CustomScript>> customScriptsByType : this.customScriptsByTypes.entrySet()) {
            List<CustomScript> customScripts = customScriptsByType.getValue();
            for (CustomScript customScript : customScripts) {
                String configId = customScript.getName();
                if (StringHelper.equalsIgnoreCase(configId, OxConstants.SCRIPT_TYPE_INTERNAL_RESERVED_NAME)) {
                    facesMessages.add(FacesMessage.SEVERITY_ERROR, "'{}' is reserved script name", configId);
                    return OxTrustConstants.RESULT_FAILURE;
                }
                customScript.setRevision(customScript.getRevision() + 1);
                boolean update = true;
                String dn = customScript.getDn();
                String customScriptId = customScript.getInum();
                if (StringHelper.isEmpty(dn)) {
                    String basedInum = organizationService.getOrganizationInum();
                    customScriptId = basedInum + "!" + INumGenerator.generate(2);
                    dn = customScriptService.buildDn(customScriptId);
                    customScript.setDn(dn);
                    customScript.setInum(customScriptId);
                    update = false;
                }
                ;
                customScript.setDn(dn);
                customScript.setInum(customScriptId);
                if (ScriptLocationType.LDAP == customScript.getLocationType()) {
                    customScript.removeModuleProperty(CustomScript.LOCATION_PATH_MODEL_PROPERTY);
                }
                if (customScript.getConfigurationProperties().size() == 0) {
                    customScript.setConfigurationProperties(null);
                }
                if (customScript.getModuleProperties().size() == 0) {
                    customScript.setModuleProperties(null);
                }
                updatedInums.add(customScriptId);
                if (update) {
                    customScriptService.update(customScript);
                } else {
                    customScriptService.add(customScript);
                }
            }
        }
        // Remove removed scripts
        for (CustomScript oldCustomScript : oldCustomScripts) {
            if (!updatedInums.contains(oldCustomScript.getInum())) {
                customScriptService.remove(oldCustomScript);
            }
        }
    } catch (LdapMappingException ex) {
        log.error("Failed to update custom scripts", ex);
        return OxTrustConstants.RESULT_FAILURE;
    }
    reset();
    return OxTrustConstants.RESULT_SUCCESS;
}
Also used : AuthenticationCustomScript(org.xdi.model.custom.script.model.auth.AuthenticationCustomScript) CustomScript(org.xdi.model.custom.script.model.CustomScript) CustomScriptType(org.xdi.model.custom.script.CustomScriptType) LdapMappingException(org.gluu.site.ldap.persistence.exception.LdapMappingException) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List)

Aggregations

CustomScriptType (org.xdi.model.custom.script.CustomScriptType)7 ArrayList (java.util.ArrayList)4 List (java.util.List)3 CustomScript (org.xdi.model.custom.script.model.CustomScript)3 LdapEntryManager (org.gluu.site.ldap.persistence.LdapEntryManager)2 LdapMappingException (org.gluu.site.ldap.persistence.exception.LdapMappingException)2 AuthenticationCustomScript (org.xdi.model.custom.script.model.auth.AuthenticationCustomScript)2 Filter (com.unboundid.ldap.sdk.Filter)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 IOException (java.io.IOException)1 InputStream (java.io.InputStream)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 HashMap (java.util.HashMap)1 PyLong (org.python.core.PyLong)1 PyObject (org.python.core.PyObject)1 PythonException (org.xdi.exception.PythonException)1 SimpleCustomProperty (org.xdi.model.SimpleCustomProperty)1 CustomScriptConfiguration (org.xdi.model.custom.script.conf.CustomScriptConfiguration)1 BaseExternalType (org.xdi.model.custom.script.type.BaseExternalType)1 GluuLdapConfiguration (org.xdi.model.ldap.GluuLdapConfiguration)1