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); }
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); }
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)); } }