public override void DeployModel(object modelHost, DefinitionBase model) { var webModelHost = modelHost.WithAssertAndCast <WebModelHost>("modelHost", value => value.RequireNotNull()); var definition = model.WithAssertAndCast <AnonymousAccessSettingsDefinition>("model", value => value.RequireNotNull()); var web = webModelHost.HostWeb; TraceService.Warning((int)LogEventId.ModelProvisionCoreCall, "AnonymousAccessSettingsDefinition is not supported by CSOM API. Doing nothing."); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = web, ObjectType = typeof(Web), ObjectDefinition = definition, ModelHost = modelHost }); // port from SSOM // just do notihng, so that the provision would not fail //if (!web.HasUniqueRoleAssignments) //{ // TraceService.Information((int)LogEventId.ModelProvisionCoreCall, // "web.HasUniqueRoleAssignments = false. Breaking with false-false options."); // web.BreakRoleInheritance(false, false); //} //var anonState = (SPWeb.WebAnonymousState)Enum.Parse(typeof(SPWeb.WebAnonymousState), definition.AnonymousState); //web.AnonymousState = anonState; //if (definition.AnonymousPermMask64.Any()) //{ // var permissions = SPBasePermissions.EmptyMask; // foreach (var permissionString in definition.AnonymousPermMask64) // permissions = permissions | (SPBasePermissions)Enum.Parse(typeof(SPBasePermissions), permissionString); // web.AnonymousPermMask64 = permissions; //} InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = web, ObjectType = typeof(Web), ObjectDefinition = definition, ModelHost = modelHost }); web.Update(); }