/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.security.userstore.connector.config; import java.util.ArrayList; import java.util.List; import java.util.Properties; public class UserStoreConnectorConfig { private String name; private List<String> errorMessages = new ArrayList<String>(); private UserPolicyConfig userPolicy; private GroupPolicyConfig groupPolicy; private String pluginType; private Properties pluginProperties; private boolean resurrectDeletedUsers = false; private boolean resurrectDeletedGroups = false; public UserStoreConnectorConfig( String name, String pluginType, UserPolicyConfig userPolicy, GroupPolicyConfig groupPolicy ) { this( name, pluginType, userPolicy, groupPolicy, null, null ); } public UserStoreConnectorConfig( String name, String pluginType, UserPolicyConfig userPolicy, GroupPolicyConfig groupPolicy, Boolean resurrectDeletedUsers, Boolean resurrectDeletedGroups ) { this.name = name; this.pluginType = pluginType; this.userPolicy = userPolicy; this.groupPolicy = groupPolicy; if ( resurrectDeletedUsers != null ) { this.resurrectDeletedUsers = resurrectDeletedUsers; } if ( resurrectDeletedGroups != null ) { this.resurrectDeletedGroups = resurrectDeletedGroups; } } public String getName() { return name; } public void addErrorMessage( String message ) { errorMessages.add( message ); } public boolean hasErrors() { return errorMessages.size() > 0; } public List<String> getErrorMessages() { return errorMessages; } public boolean canCreateUser() { return userPolicy.canCreate(); } public boolean canUpdateUser() { return userPolicy.canUpdate(); } public boolean canUpdateUserPassword() { return userPolicy.canUpdatePassword(); } public boolean canDeleteUser() { return userPolicy.canDelete(); } public boolean canCreateGroup() { return groupPolicy.canCreate(); } public boolean canReadGroup() { return groupPolicy.canRead(); } public boolean canUpdateGroup() { return groupPolicy.canUpdate(); } public boolean canDeleteGroup() { return groupPolicy.canDelete(); } public boolean groupsStoredLocal() { return groupPolicy.useLocal(); } public boolean groupsStoredRemote() { return groupPolicy.useRemote(); } public String getPluginType() { return pluginType; } public boolean resurrectDeletedUsers() { return resurrectDeletedUsers; } public boolean resurrectDeletedGroups() { return resurrectDeletedGroups; } public Properties getPluginProperties() { return pluginProperties; } public void addProperties( final Properties properties ) { if ( this.pluginProperties == null ) { this.pluginProperties = properties; } else { this.pluginProperties.putAll( properties ); } } }