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
        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());
                }
            }
        }
        /// <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 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.º 5
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));
            }
        }