/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.security.userstore.connector.config; import java.util.Collection; import org.jdom.Document; import org.jdom.Element; /** * Aug 21, 2009 */ public class UserStoreConnectorConfigXmlCreator { public static Document createUserStoreConnectorConfigsDocument( Collection<UserStoreConnectorConfig> configs ) { final Element rootEl = new Element( "userstore-connector-configs" ); for ( final UserStoreConnectorConfig config : configs ) { rootEl.addContent( doCreateConnectorConfigElement( config ) ); } return new Document( rootEl ); } public static Element createConnectorConfigElement( UserStoreConnectorConfig config ) { return doCreateConnectorConfigElement( config ); } private static Element doCreateConnectorConfigElement( UserStoreConnectorConfig config ) { Element configEl = new Element( "config" ); configEl.setAttribute( "name", config.getName() ); configEl.setAttribute( "groups-stored-local", String.valueOf( config.groupsStoredLocal() ) ); configEl.setAttribute( "groups-stored-remote", String.valueOf( config.groupsStoredRemote() ) ); if ( config.getPluginType() != null ) { configEl.setAttribute( "plugin-type", config.getPluginType() ); } configEl.addContent( doCreateUserPolicyElement( config ) ); configEl.addContent( doCreateGroupPolicyElement( config ) ); configEl.addContent( doCreateErrorsElement( config ) ); return configEl; } private static Element doCreateGroupPolicyElement( UserStoreConnectorConfig config ) { Element groupPolicyEl = new Element( "group-policy" ); groupPolicyEl.setAttribute( "can-read", String.valueOf( config.canReadGroup() ) ); groupPolicyEl.setAttribute( "can-create", String.valueOf( config.canCreateGroup() ) ); groupPolicyEl.setAttribute( "can-update", String.valueOf( config.canUpdateGroup() ) ); groupPolicyEl.setAttribute( "can-delete", String.valueOf( config.canDeleteGroup() ) ); return groupPolicyEl; } private static Element doCreateUserPolicyElement( UserStoreConnectorConfig config ) { Element userPolicyEl = new Element( "user-policy" ); userPolicyEl.setAttribute( "can-create", String.valueOf( config.canCreateUser() ) ); userPolicyEl.setAttribute( "can-update", String.valueOf( config.canUpdateUser() ) ); userPolicyEl.setAttribute( "can-delete", String.valueOf( config.canDeleteUser() ) ); userPolicyEl.setAttribute( "can-update-password", String.valueOf( config.canUpdateUserPassword() ) ); return userPolicyEl; } private static Element doCreateErrorsElement( UserStoreConnectorConfig config ) { Element errorsEl = new Element( "errors" ); for ( String errorMessage : config.getErrorMessages() ) { Element errorEl = new Element( "error" ); errorEl.setText( errorMessage ); errorsEl.addContent( errorEl ); } return errorsEl; } }