public IList <ConfigParameterDefinition> GetConfigParameters(KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            List <ConfigParameterDefinition> configParametersDefinitions = new List <ConfigParameterDefinition>();

            switch (page)
            {
            case ConfigParameterPage.Connectivity:
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(ConfigParameterNames.TenantUrl, string.Empty));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateEncryptedStringParameter(ConfigParameterNames.ApiKey, string.Empty));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(ConfigParameterNames.LogFileName, string.Empty));
                break;

            case ConfigParameterPage.Global:
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateCheckBoxParameter(ConfigParameterNames.IncludeBuiltInGroups, false));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateCheckBoxParameter(ConfigParameterNames.IncludeAppGroups, false));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateDropDownParameter(ConfigParameterNames.UserDeprovisioningAction, new string[] { "Delete", "Deactivate" }, false, "Deactivate"));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateCheckBoxParameter(ConfigParameterNames.ActivateNewUsers, false));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateCheckBoxParameter(ConfigParameterNames.SendActivationEmailToNewUsers, false));

                break;

            case ConfigParameterPage.Partition:
                break;

            case ConfigParameterPage.RunStep:
                break;
            }

            return(configParametersDefinitions);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the list of configuration parameters for the management agent
        /// </summary>
        /// <param name="configParameters">The list of configuration parameters</param>
        /// <param name="page">The page to get the configuration parameters for</param>
        /// <returns>A list of ConfigParameterDefinition objects</returns>
        public IList <ConfigParameterDefinition> GetConfigParameters(KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            List <ConfigParameterDefinition> configParametersDefinitions = new List <ConfigParameterDefinition>();

            switch (page)
            {
            case ConfigParameterPage.Connectivity:
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(MAParameterNames.LogPath, string.Empty));
                break;

            case ConfigParameterPage.Global:
                break;

            case ConfigParameterPage.Partition:
                break;

            case ConfigParameterPage.RunStep:
                break;

            case ConfigParameterPage.Capabilities:
                break;
            }

            return(configParametersDefinitions);
        }
Exemplo n.º 3
0
        public void GetConfigParameters(KeyedCollection <string, ConfigParameter> existingParameters, IList <ConfigParameterDefinition> newDefinitions, ConfigParameterPage page)
        {
            switch (page)
            {
            case ConfigParameterPage.Connectivity:
                newDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(ConfigParameterNames.TenantDomain, string.Empty));
                newDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(ConfigParameterNames.ClientId, string.Empty));
                newDefinitions.Add(ConfigParameterDefinition.CreateEncryptedStringParameter(ConfigParameterNames.Secret, string.Empty));
                break;

            case ConfigParameterPage.Global:
                newDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter(ConfigParameterNames.FilterQueryDescription));
                newDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(ConfigParameterNames.FilterQuery, string.Empty));
                newDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                newDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter(ConfigParameterNames.ChannelNameFilterDescription));
                newDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(ConfigParameterNames.ChannelNameFilter, string.Empty));
                newDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                newDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter(ConfigParameterNames.RandomizeChannelNameOnDeleteDecription));
                newDefinitions.Add(ConfigParameterDefinition.CreateCheckBoxParameter(ConfigParameterNames.RandomizeChannelNameOnDelete, false));
                newDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                newDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter(ConfigParameterNames.UsersToIgnoreDescription));
                newDefinitions.Add(ConfigParameterDefinition.CreateTextParameter(ConfigParameterNames.UsersToIgnore));
                newDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                newDefinitions.Add(ConfigParameterDefinition.CreateCheckBoxParameter(ConfigParameterNames.SetSpoReadOnly, false));
                break;

            case ConfigParameterPage.Partition:
                break;

            case ConfigParameterPage.RunStep:
                break;
            }
        }
Exemplo n.º 4
0
        public IList <ConfigParameterDefinition> GetConfigParameters(
            KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            var configParametersDefinitions = new List <ConfigParameterDefinition>();

            if (page == ConfigParameterPage.Global)
            {
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateCheckBoxParameter("Use mockup data"));
            }

            IList <ConfigParameterDefinition> customParameters = GetEzmaConfigParameters(configParameters, page);

            if (customParameters != null)
            {
                configParametersDefinitions.AddRange(customParameters);
            }

            //NOTE: need this because ezmas are seemingly requierd to have at least one connection attribute
            if (page == ConfigParameterPage.Connectivity && configParametersDefinitions.Count == 0)
            {
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("RequiredEmptyParameter", null, "IgnoreThisValue"));
            }

            return(configParametersDefinitions);
        }
Exemplo n.º 5
0
        IList <ConfigParameterDefinition> IMAExtensible2GetParameters.GetConfigParameters(System.Collections.ObjectModel.KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            Tracer.Enter("getconfigparameters");
            Tracer.Indent();
            try
            {
                List <ConfigParameterDefinition> configParametersDefinitions = new List <ConfigParameterDefinition>();
                switch (page)
                {
                case ConfigParameterPage.Connectivity:
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("The Schema script is called to retrieve the object and attribute definitions. This script should be accessible to the FIM Synchronization Service service account during configuration and refreshes of the schema."));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Constants.Parameters.SchemaScript, ""));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("Authentication (optional): These credentials are passed as parameters to all scripts."));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Constants.Parameters.Username, ""));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateEncryptedStringParameter(Constants.Parameters.Password, ""));

                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("Impersonation (optional): If username and password below are specified (domain optional), the specified user is used to run all scripts. If not specified,  the scripts are run in the security context of the FIM Synchronization Service service account."));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Constants.Parameters.ImpersonationDomain, ""));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Constants.Parameters.ImpersonationUsername, ""));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateEncryptedStringParameter(Constants.Parameters.ImpersonationPassword, ""));

                    break;

                case ConfigParameterPage.Global:
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("Scripts"));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("These are the PowerShell scripts that are run on the different operations. You should specify the full path of the scripts. Path cannot include spaces or similar whitespaces."));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Constants.Parameters.ImportScript, ""));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Constants.Parameters.ExportScript, ""));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateCheckBoxParameter(Constants.Parameters.UsePagedImport, false));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("If you enable Password Management, this script is called for both password change and set (requires PCNS)."));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Constants.Parameters.PasswordManagementScript, ""));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("The objects piped to the export script will normally be of type PSCustomObject. If you uncheck this, you will get objects of more complex type CSEntryChange instead (legacy behaviour). For more information on the CSEntryChange object type, please see MSDN Library."));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateCheckBoxParameter(Constants.Parameters.ExportSimpleObjects, true));
                    break;

                case ConfigParameterPage.Partition:
                    break;

                case ConfigParameterPage.RunStep:
                    break;
                }

                return(configParametersDefinitions);
            }
            catch (Exception ex)
            {
                Tracer.TraceError("getconfigparameters", ex);
                throw;
            }
            finally
            {
                Tracer.Exit("getconfigparameters");
            }
        }
Exemplo n.º 6
0
        internal static void AddBuiltInLoggingParameters(ConfigParameterPage page, List <ConfigParameterDefinition> configParameterDefinitions)
        {
            if (page == ConfigParameterPage.Connectivity)
            {
                ISettingsProvider settings = InterfaceManager.GetProviderOrDefault <ISettingsProvider>();

                if (!settings?.HandleOwnLogConfiguration ?? false)
                {
                    configParameterDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Logging.LogFileParameterName, string.Empty));
                    configParameterDefinitions.Add(ConfigParameterDefinition.CreateDropDownParameter(Logging.LogLevelParameterName, LogLevel.AllLevels.Reverse().Select(t => t.Name).ToArray(), false, "Info"));
                    configParameterDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Logging.LogDaysParameterName, string.Empty));
                    configParameterDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                }
            }
        }
Exemplo n.º 7
0
        public IList <ConfigParameterDefinition> GetConfigParameters(KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            List <ConfigParameterDefinition> configParametersDefinitions = new List <ConfigParameterDefinition>();

            switch (page)
            {
            case ConfigParameterPage.Connectivity:
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(_BASE_URI, "", "https://api.themoviedb.org/3/"));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(_API_KEY, ""));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(_LANG, "", "en-GB"));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(_NOPAGESRTN, "", "40"));
                break;

            default:
                break;
            }
            return(configParametersDefinitions);
        }
        /// <summary>
        /// Get an array of values indicating the configuration parameter definitions supported by the
        /// management agent. This method is called to display the parameters user interface page for
        /// configuring Connectivity, Global, Partitions, and Run-Step parameters.
        /// </summary>
        /// <param name="configParameters">A collection of <see cref="ConfigParameter"/> objects.</param>
        /// <param name="page">The <see cref="ConfigParameterPage"/> which contains the parameters.</param>
        /// <returns>A list of child <see cref="ConfigParameterDefinition"/> objects.</returns>
        public IList <ConfigParameterDefinition> GetConfigParameters(
            KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            List <ConfigParameterDefinition> parameterDefinitionList = new List <ConfigParameterDefinition>();

            if (page == ConfigParameterPage.Connectivity)
            {
                parameterDefinitionList.Add(
                    ConfigParameterDefinition.CreateStringParameter("AppId", string.Empty));
                parameterDefinitionList.Add(
                    ConfigParameterDefinition.CreateEncryptedStringParameter("AppSecret", string.Empty));
                parameterDefinitionList.Add(
                    ConfigParameterDefinition.CreateStringParameter("Username", string.Empty));
                parameterDefinitionList.Add(
                    ConfigParameterDefinition.CreateEncryptedStringParameter("Password", string.Empty));
            }

            return(parameterDefinitionList);
        }
Exemplo n.º 9
0
        // Get Parameters
        public IList <ConfigParameterDefinition> GetConfigParameters(KeyedCollection <string, ConfigParameter> _configParameters, ConfigParameterPage _page)
        {
            utils.Logger(TraceEventType.Information,
                         ConstDefinition.ID0200_START_GETCONFIGPARAMETERS,
                         ConstDefinition.MSG0200_START_GETCONFIGPARAMETERS);
            var _configParametersDefinitions = new List <ConfigParameterDefinition>();

            try
            {
                switch (_page)
                {
                case ConfigParameterPage.Capabilities:
                    break;

                case ConfigParameterPage.Connectivity:
                    _configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("Connection parameters"));
                    _configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(ConstDefinition.CFG_RESOURCE_URI, ""));
                    _configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(ConstDefinition.CFG_AUTH_TOKEN, ""));
                    break;

                case ConfigParameterPage.Global:
                    break;

                case ConfigParameterPage.Partition:
                    break;

                case ConfigParameterPage.RunStep:
                    break;

                case ConfigParameterPage.Schema:
                    break;
                }
            }
            catch (Exception ex)
            {
                utils.Logger(TraceEventType.Error,
                             ConstDefinition.ID0299_ERROR_GETCONFIGPARAMETERS,
                             ConstDefinition.MSG0299_ERROR_GETCONFIGPARAMETERS + ex.Message);
                throw new ExtensibleExtensionException(ConstDefinition.MSG0299_ERROR_GETCONFIGPARAMETERS + ex.Message);
            }
            return(_configParametersDefinitions);
        }
Exemplo n.º 10
0
        public IList <ConfigParameterDefinition> GetConfigParameters(KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            List <ConfigParameterDefinition> configParametersDefinitions = new List <ConfigParameterDefinition>();

            switch (page)
            {
            case ConfigParameterPage.Connectivity:
                //configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("imUrl", ""));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("exUrl", ""));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("webServiceUsername", ""));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("webServicePassword", ""));
                break;
                //case ConfigParameterPage.Global:
                //    break;
                //case ConfigParameterPage.Partition:
                //    break;
                //case ConfigParameterPage.RunStep:
                //    break;
            }
            return(configParametersDefinitions);
        }
Exemplo n.º 11
0
        public IList <ConfigParameterDefinition> GetConfigParameters(KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            List <ConfigParameterDefinition> configParametersDefinitions = new List <ConfigParameterDefinition>();

            switch (page)
            {
            case ConfigParameterPage.Connectivity:

                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("RSA Server", ""));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("Administrative User Name", ""));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateEncryptedStringParameter("Administrative Password", string.Empty));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("Command Client User Name", ""));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateEncryptedStringParameter("Command Client Password", string.Empty));

                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("RSA Realm", ""));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("Default Shell", ""));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("Identity Source", ""));

                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("Other Token Receivers", ""));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("Sender", ""));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("Errors Mail", ""));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("SMTP Host", ""));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("Token File Path", ""));

                break;

            case ConfigParameterPage.Global:
                break;

            case ConfigParameterPage.Partition:
                break;

            case ConfigParameterPage.RunStep:
                break;
            }

            return(configParametersDefinitions);
        }
Exemplo n.º 12
0
        /// <summary>
        /// Gets the list of configuration parameters for the management agent
        /// </summary>
        /// <param name="configParameters">The list of configuration parameters</param>
        /// <param name="page">The page to get the configuration parameters for</param>
        /// <returns>A list of ConfigParameterDefinition objects</returns>
        IList <ConfigParameterDefinition> IMAExtensible2GetParameters.GetConfigParameters(KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            List <ConfigParameterDefinition> configParametersDefinitions = new List <ConfigParameterDefinition>();

            switch (page)
            {
            case ConfigParameterPage.Connectivity:
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(MAParameterNames.HostName, string.Empty, string.Empty));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(MAParameterNames.Port, string.Empty, "22"));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(MAParameterNames.MAConfigurationFile, string.Empty, "Lithnet.SSHMA.config.xml"));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateDropDownParameter(
                                                    MAParameterNames.AuthenticationMode,
                                                    new string[] { "Username/Password", "Username/Key" },
                                                    false));

                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(MAParameterNames.PrivateKeyFile, string.Empty));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(MAParameterNames.Username, string.Empty, string.Empty));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateEncryptedStringParameter(MAParameterNames.PasswordOrPassphrase, string.Empty, string.Empty));
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(MAParameterNames.LogPath, string.Empty, string.Empty));
                // configParametersDefinitions.Add(ConfigParameterDefinition.CreateCheckBoxParameter(MAParameterNames.DebugEnabled, false));
                //configParametersDefinitions.Add(ConfigParameterDefinition.CreateCheckBoxParameter(MAParameterNames.LaunchDebuggerOnException, false));
                break;

            case ConfigParameterPage.Global:
                break;

            case ConfigParameterPage.Partition:
                break;

            case ConfigParameterPage.RunStep:
                break;
            }

            return(configParametersDefinitions);
        }
        public System.Collections.Generic.IList <ConfigParameterDefinition> GetConfigParameters(System.Collections.ObjectModel.KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            List <ConfigParameterDefinition> configParametersDefinitions = new List <ConfigParameterDefinition>();

            switch (page)
            {
            case ConfigParameterPage.Connectivity:
                //we have to configure the MAs being seletected in the Connectivity page so that the information
                //will be available to us when fetching the schema for the items selected
                configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("Enable provisioning for the following types:"));

                //look up MAs and list them as check boxes for provisioning enablement
                DataSet mas = FIMConfiguration.GetManagementAgents(null);

                foreach (DataRow ma in mas.Tables["Config"].Rows)
                {
                    string maName = ma["ma_name"].ToString();
                    string maType = ma["ma_type"].ToString();
                    string maList = ma["ma_listname"].ToString();

                    if (maType.Equals("FIM", StringComparison.InvariantCultureIgnoreCase) ||
                        maList.Equals("Provisioning Management Agent (Insight)", StringComparison.InvariantCultureIgnoreCase))
                    {
                        continue;
                    }

                    //our data will come back as XML data, we will need to parse it for what we need
                    XmlDocument xmldoc = FIMConfiguration.GetConfigXML(maName, "ma_schema_xml");

                    XmlNamespaceManager xmlnsManager = new XmlNamespaceManager(xmldoc.NameTable);
                    xmlnsManager.AddNamespace("dsml", "http://www.dsml.org/DSML");
                    xmlnsManager.AddNamespace("ms-dsml", "http://www.microsoft.com/MMS/DSML");

                    //TODO:  what happens when a sql column defines the object type?
                    XmlNodeList objectTypes = xmldoc.SelectNodes("//dsml:directory-schema/dsml:class", xmlnsManager);

                    foreach (XmlNode ot in objectTypes)
                    {
                        //add the object type as a selection
                        ConfigParameterDefinition conf = ConfigParameterDefinition.CreateCheckBoxParameter(maName + " - " + ot.Attributes["id"].Value.Replace(" - ", " _ "));
                        configParametersDefinitions.Add(conf);
                    }

                    //TODO:  what happens to the UI when we have a alot of entries?
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                }

                break;

            case ConfigParameterPage.Global:
                break;

            case ConfigParameterPage.Partition:
                break;

            case ConfigParameterPage.RunStep:
                break;
            }

            return(configParametersDefinitions);
        }
        public static IList <ConfigParameterDefinition> GetParameters(KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            List <ConfigParameterDefinition> parameters = new List <ConfigParameterDefinition>();

            switch (page)
            {
            case ConfigParameterPage.Capabilities:
                break;

            case ConfigParameterPage.Connectivity:
                parameters.Add(ConfigParameterDefinition.CreateLabelParameter("Credentials"));
                parameters.Add(ConfigParameterDefinition.CreateStringParameter(ManagementAgentParametersBase.CustomerIDParameter, null, "my_customer"));
                parameters.Add(ConfigParameterDefinition.CreateStringParameter(ManagementAgentParametersBase.DomainParameter, null, null));
                parameters.Add(ConfigParameterDefinition.CreateStringParameter(ManagementAgentParametersBase.ServiceAccountEmailAddressParameter, null, null));
                parameters.Add(ConfigParameterDefinition.CreateStringParameter(ManagementAgentParametersBase.UserEmailAddressParameter, null, null));
                parameters.Add(ConfigParameterDefinition.CreateStringParameter(ManagementAgentParametersBase.KeyFilePathParameter, null));
                parameters.Add(ConfigParameterDefinition.CreateEncryptedStringParameter(ManagementAgentParametersBase.KeyFilePasswordParameter, null, null));
                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());
                parameters.Add(ConfigParameterDefinition.CreateStringParameter(ManagementAgentParametersBase.LogFilePathParameter, null));
                break;

            case ConfigParameterPage.Global:
                parameters.Add(ConfigParameterDefinition.CreateStringParameter(ManagementAgentParametersBase.UserRegexFilterParameter, null, null));
                parameters.Add(ConfigParameterDefinition.CreateStringParameter(ManagementAgentParametersBase.GroupRegexFilterParameter, null, null));
                parameters.Add(ConfigParameterDefinition.CreateStringParameter(ManagementAgentParametersBase.ContactRegexFilterParameter, null, null));
                parameters.Add(ConfigParameterDefinition.CreateCheckBoxParameter(ManagementAgentParametersBase.ExcludeUserCreatedGroupsParameter, false));
                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());
                parameters.Add(ConfigParameterDefinition.CreateLabelParameter("The Google API supports filtering users based on query parameters. For example, to filter on org unit, type 'orgUnitPath=/MyOrgUnit'. Refer to the API documentation at https://developers.google.com/admin-sdk/directory/v1/guides/search-users for more information"));
                parameters.Add(ConfigParameterDefinition.CreateStringParameter(ManagementAgentParametersBase.UserQueryFilterParameter, null, null));

                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());
                parameters.Add(ConfigParameterDefinition.CreateCheckBoxParameter(ManagementAgentParametersBase.InheritGroupRolesParameter, false));
                parameters.Add(ConfigParameterDefinition.CreateLabelParameter("Inheriting group roles forces the MA to include owners in the managers list, and managers in the members list"));
                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());
                parameters.Add(ConfigParameterDefinition.CreateCheckBoxParameter(ManagementAgentParametersBase.CalendarSendNotificationOnPermissionChangeParameter, false));
                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());
                parameters.Add(ConfigParameterDefinition.CreateStringParameter(ManagementAgentParametersBase.ContactsPrefixParameter, null, "contact:"));
                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());
                parameters.Add(ConfigParameterDefinition.CreateCheckBoxParameter(ManagementAgentParametersBase.SkipMemberImportOnArchivedCoursesParameter, false));
                parameters.Add(ConfigParameterDefinition.CreateLabelParameter("Skipping import of students and teachers on ARCHIVED Courses can speed up import if you have many Archived course objects."));

                break;

            case ConfigParameterPage.Partition:
                break;

            case ConfigParameterPage.RunStep:
                parameters.Add(ConfigParameterDefinition.CreateCheckBoxParameter(ManagementAgentParametersBase.DoNotGenerateDeltaParameter, false));

                break;

            case ConfigParameterPage.Schema:
                parameters.Add(ConfigParameterDefinition.CreateLabelParameter("The values from the following objects are flattened based on the type of object specified. Enter the types you wish to expose, each on a separate line (ctrl-enter for a new line). For example, entering 'work' and 'home' in the phone numbers text box will expose the attributes phones_work and phones_home"));
                parameters.Add(ConfigParameterDefinition.CreateTextParameter(ManagementAgentParametersBase.PhonesFixedTypeFormatParameter, null));
                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());

                parameters.Add(ConfigParameterDefinition.CreateTextParameter(ManagementAgentParametersBase.OrganizationsFixedTypeFormatParameter, null));
                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());

                parameters.Add(ConfigParameterDefinition.CreateTextParameter(ManagementAgentParametersBase.IMsFixedTypeFormatParameter, null));
                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());

                parameters.Add(ConfigParameterDefinition.CreateTextParameter(ManagementAgentParametersBase.ExternalIDsFixedTypeFormatParameter, null));
                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());

                parameters.Add(ConfigParameterDefinition.CreateTextParameter(ManagementAgentParametersBase.RelationsFixedTypeFormatParameter, null));
                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());

                parameters.Add(ConfigParameterDefinition.CreateTextParameter(ManagementAgentParametersBase.AddressesFixedTypeFormatParameter, null));
                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());

                parameters.Add(ConfigParameterDefinition.CreateTextParameter(ManagementAgentParametersBase.EmailsFixedTypeFormatParameter, null));
                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());

                parameters.Add(ConfigParameterDefinition.CreateTextParameter(ManagementAgentParametersBase.WebsitesFixedTypeFormatParameter, null));
                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());

                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());
                parameters.Add(ConfigParameterDefinition.CreateDropDownParameter(ManagementAgentParametersBase.CalendarBuildingAttributeTypeParameter, new string[] { "String", "Reference" }, false, "String"));
                parameters.Add(ConfigParameterDefinition.CreateDropDownParameter(ManagementAgentParametersBase.CalendarFeatureAttributeTypeParameter, new string[] { "String", "Reference" }, false, "String"));
                parameters.Add(ConfigParameterDefinition.CreateDropDownParameter(ManagementAgentParametersBase.GroupMemberAttributeTypeParameter, new string[] { "String", "Reference" }, false, "Reference"));

                parameters.Add(ConfigParameterDefinition.CreateDividerParameter());
                parameters.Add(ConfigParameterDefinition.CreateLabelParameter("Specify additional custom user object classes to expose. (Press ctrl+enter for each new line)"));
                parameters.Add(ConfigParameterDefinition.CreateTextParameter(ManagementAgentParametersBase.CustomUserObjectClassesParameter, null));

                var config = new ManagementAgentParameters(configParameters);

                if (config.KeyFilePath != null && !string.IsNullOrEmpty(config.KeyFilePassword) && config.Certificate != null)
                {
                    parameters.Add(ConfigParameterDefinition.CreateDividerParameter());
                    parameters.Add(ConfigParameterDefinition.CreateCheckBoxParameter(ManagementAgentParametersBase.EnableAdvancedUserAttributesParameter, false));
                    parameters.Add(ConfigParameterDefinition.CreateLabelParameter("Enabling advanced user attributes enables managing delegate and send-as settings, however this can significantly slow down the speed of full imports. A separate API call must be made for every user during the import process for each of these selected attributes."));
                    parameters.Add(ConfigParameterDefinition.CreateCheckBoxParameter(ManagementAgentParametersBase.MakeNewSendAsAddressesDefaultParameter, false));
                }

                break;

            default:
                break;
            }

            return(parameters);
        }
Exemplo n.º 15
0
        IList <ConfigParameterDefinition> IMAExtensible2GetParameters.GetConfigParameters(KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            Tracer.Enter(nameof(IMAExtensible2GetParameters.GetConfigParameters));
            try
            {
                List <ConfigParameterDefinition> configParametersDefinitions = new List <ConfigParameterDefinition>();
                switch (page)
                {
                case ConfigParameterPage.Connectivity:
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateTextParameter(Configuration.Parameters.ConnectionString, Configuration.ConnectionString));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("Authentication (optional): These credentials are replaced in the connection string."));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateDropDownParameter(Configuration.Parameters.TypeOfAuthentication, Configuration.Parameters.AuthenticationTypeSQL + "," + Configuration.Parameters.AuthenticationTypeWindows, false, Configuration.Parameters.AuthenticationTypeSQL));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.Username, "", Configuration.UserName));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateEncryptedStringParameter(Configuration.Parameters.Password, "", ""));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.Domain, "", Configuration.Domain));

                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.TableNameSingleValue, "", Configuration.TableNameSingle));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.TableNameMultiValue, "", ""));

                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateDropDownParameter(Configuration.Parameters.TypeOfObjectClass, "Column,Fixed", false, ObjectClassType.Column.ToString()));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.ColumnOrValueObjectClass, "", Configuration.ObjectClass));

                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.ColumnAnchor, "", Configuration.AnchorColumn));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.ColumnDN, "", Configuration.DNColumn));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.ColumnIsDeleted, "", ""));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.ColumnMVAnchorReference, "", ""));

                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateDropDownParameter(Configuration.Parameters.TypeOfDelta, "Rowversion,DateTime", false, DeltaColumnType.Rowversion.ToString()));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.ColumnDelta, "", ""));

                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.DateFormat, "", Configuration.DateFormat));

                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("Below you can specify SQL schema related XML configuration."));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateTextParameter(Configuration.Parameters.SchemaConfiguration, DefaultSchemaXml));
                    break;

                case ConfigParameterPage.Global:
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("Optionally, you can specify the names of Stored Procedures to run before and after imports and exports. If a parameter is left blank, no action is taken for that step."));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("Import Stored Procedures"));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.ImportCommandBefore, Configuration.ImportCommandBefore));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.ImportCommandAfter, Configuration.ImportCommandAfter));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateDividerParameter());
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateLabelParameter("Export Stored Procedures"));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.ExportCommandBefore, Configuration.ExportCommandBefore));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.ExportCommandAfter, Configuration.ExportCommandAfter));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.ExportObjectCommandBefore, Configuration.ExportObjectCommandBefore));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter(Configuration.Parameters.ExportObjectCommandAfter, Configuration.ExportObjectCommandAfter));

                    break;

                case ConfigParameterPage.Partition:
                    break;

                case ConfigParameterPage.RunStep:
                    break;
                }
                return(configParametersDefinitions);
            }
            catch (Exception ex)
            {
                Tracer.TraceError(nameof(IMAExtensible2GetParameters.GetConfigParameters), ex);
                throw;
            }
            finally
            {
                Tracer.Exit(nameof(IMAExtensible2GetParameters.GetConfigParameters));
            }
        }