private static void MapPeoplePickerSettings(SPPeoplePickerSettings settings, PeoplePickerSettingsDefinition definition)
        {
            if (!string.IsNullOrEmpty(definition.ActiveDirectoryCustomFilter))
            {
                settings.ActiveDirectoryCustomFilter = definition.ActiveDirectoryCustomFilter;
            }

            if (!string.IsNullOrEmpty(definition.ActiveDirectoryCustomQuery))
            {
                settings.ActiveDirectoryCustomQuery = definition.ActiveDirectoryCustomQuery;
            }

            if (definition.ActiveDirectoryRestrictIsolatedNameLevel.HasValue)
            {
                settings.ActiveDirectoryRestrictIsolatedNameLevel = definition.ActiveDirectoryRestrictIsolatedNameLevel.Value;
            }

            if (definition.ActiveDirectorySearchTimeout.HasValue)
            {
                settings.ActiveDirectorySearchTimeout = definition.ActiveDirectorySearchTimeout.Value;
            }

            if (definition.AllowLocalAccount.HasValue)
            {
                settings.AllowLocalAccount = definition.AllowLocalAccount.Value;
            }

            if (definition.NoWindowsAccountsForNonWindowsAuthenticationMode.HasValue)
            {
                settings.NoWindowsAccountsForNonWindowsAuthenticationMode = definition.NoWindowsAccountsForNonWindowsAuthenticationMode.Value;
            }

            if (definition.OnlySearchWithinSiteCollection.HasValue)
            {
                settings.OnlySearchWithinSiteCollection = definition.OnlySearchWithinSiteCollection.Value;
            }

            if (definition.PeopleEditorOnlyResolveWithinSiteCollection.HasValue)
            {
                settings.PeopleEditorOnlyResolveWithinSiteCollection = definition.PeopleEditorOnlyResolveWithinSiteCollection.Value;
            }
        }
 public static TModelNode AddPeoplePickerSettings <TModelNode>(this TModelNode model, PeoplePickerSettingsDefinition definition,
                                                               Action <PeoplePickerSettingsModelNode> action)
     where TModelNode : ModelNode, IModuleFileHostModelNode, new()
 {
     return(model.AddTypedDefinitionNode(definition, action));
 }
        private void DeployPeoplePickerSettings(object modelHost, SPWebApplication webApplication, PeoplePickerSettingsDefinition definition)
        {
            var settings = GetCurrentPeoplePickerSettings(webApplication);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioning,
                Object           = settings,
                ObjectType       = typeof(SPPeoplePickerSettings),
                ObjectDefinition = definition,
                ModelHost        = modelHost
            });

            MapPeoplePickerSettings(settings, definition);

            // reSP doesn't like updating SPWebApplication here, don't see an other way though
            webApplication.Update();

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioned,
                Object           = settings,
                ObjectType       = typeof(SPPeoplePickerSettings),
                ObjectDefinition = definition,
                ModelHost        = modelHost
            });
        }
 public static TModelNode AddPeoplePickerSettings <TModelNode>(this TModelNode model, PeoplePickerSettingsDefinition definition)
     where TModelNode : ModelNode, IModuleFileHostModelNode, new()
 {
     return(AddPeoplePickerSettings(model, definition, null));
 }